Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / media_galleries / read_access / test.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 var mediaGalleries = chrome.mediaGalleries;
6 var expectedGalleryEntryLength;
7
8 function TestFirstFilesystem(verifyFilesystem) {
9   function getMediaFileSystemsList() {
10     mediaGalleries.getMediaFileSystems(getMediaFileSystemsCallback);
11   }
12
13   function getMediaFileSystemsCallback(results) {
14     chrome.test.assertEq(1, results.length);
15     verifyFilesystem(results[0]);
16   }
17
18   getMediaFileSystemsList();
19 }
20
21 function ReadDirectoryTest() {
22   function verifyFilesystem(filesystem) {
23     verifyDirectoryEntry(filesystem.root, verify);
24   }
25
26   function verify(directoryEntry, entries) {
27     chrome.test.assertEq(1, entries.length);
28     chrome.test.assertFalse(entries[0].isDirectory);
29     chrome.test.assertEq("test.jpg", entries[0].name);
30     chrome.test.succeed();
31   }
32
33   TestFirstFilesystem(verifyFilesystem);
34 }
35
36 function ReadFileToBytesTest() {
37   function verifyFilesystem(filesystem) {
38     verifyJPEG(filesystem.root, "test.jpg", expectedGalleryEntryLength,
39                chrome.test.succeed);
40   }
41
42   TestFirstFilesystem(verifyFilesystem);
43 }
44
45 function GetMetadataTest() {
46   function verifyFilesystem(filesystem) {
47     filesystem.root.getFile("test.jpg", {create: false}, verifyFileEntry,
48       chrome.test.fail);
49   }
50
51   function verifyFileEntry(fileEntry) {
52     fileEntry.file(verifyFile, chrome.test.fail)
53   }
54
55   function verifyFile(file) {
56     mediaGalleries.getMetadata(file, {}, verifyMetadata);
57   }
58
59   function verifyMetadata(metadata) {
60     chrome.test.assertEq("image/jpeg", metadata.mimeType);
61     chrome.test.succeed();
62   }
63
64   TestFirstFilesystem(verifyFilesystem);
65 }
66
67 function GetMediaFileSystemMetadataTest() {
68   function verifyFilesystem(filesystem) {
69     var metadata = mediaGalleries.getMediaFileSystemMetadata(filesystem);
70     checkMetadata(metadata);
71     chrome.test.succeed();
72   }
73
74   TestFirstFilesystem(verifyFilesystem);
75 }
76
77 function GetAllMediaFileSystemMetadataTest() {
78   function verifyMetadataList(metadataList) {
79     chrome.test.assertEq(1, metadataList.length)
80     checkMetadata(metadataList[0]);
81     chrome.test.succeed();
82   }
83
84   mediaGalleries.getAllMediaFileSystemMetadata(verifyMetadataList);
85 }
86
87 function DropPermissionForMediaFileSystemTest() {
88   var droppedFilesystem;
89   var droppedGalleryId;
90
91   function callDropPermission(filesystem) {
92     var metadata = mediaGalleries.getMediaFileSystemMetadata(filesystem);
93     droppedFilesystem = filesystem;
94     droppedGalleryId = metadata.galleryId;
95     mediaGalleries.dropPermissionForMediaFileSystem(
96         droppedGalleryId,
97         chrome.test.callbackPass(onDropPermissionSucceeded));
98   }
99
100   function onDropPermissionSucceeded() {
101     var metadata = mediaGalleries.getMediaFileSystemMetadata(droppedFilesystem);
102     var notFoundMetadata = {
103       "name": "",
104       "galleryId": "",
105       "isRemovable": false,
106       "isMediaDevice": false,
107       "isAvailable": false,
108     }
109     chrome.test.assertEq(notFoundMetadata, metadata);
110     mediaGalleries.getMediaFileSystems(verifyNoFileSystemAccess);
111   }
112
113   function verifyNoFileSystemAccess(results) {
114     chrome.test.assertEq(0, results.length);
115     mediaGalleries.dropPermissionForMediaFileSystem(
116         droppedGalleryId,
117         chrome.test.callbackFail("Failed to set gallery permission.",
118                                  onDropPermissionFailed));
119   }
120
121   function onDropPermissionFailed() {
122     mediaGalleries.dropPermissionForMediaFileSystem(
123         "badid",
124         chrome.test.callbackFail("Invalid gallery id.",
125                                  onDropPermissionFailedForInvalidGallery));
126   }
127
128   function onDropPermissionFailedForInvalidGallery() {
129     mediaGalleries.dropPermissionForMediaFileSystem(
130         "99999",
131         chrome.test.callbackFail("Non-existent gallery id.",
132                                  chrome.test.succeed));
133   }
134
135   TestFirstFilesystem(callDropPermission);
136 }
137
138 CreateDummyWindowToPreventSleep();
139
140 chrome.test.getConfig(function(config) {
141   customArg = JSON.parse(config.customArg);
142   expectedGalleryEntryLength = customArg[0];
143
144   chrome.test.runTests([
145     ReadDirectoryTest,
146     ReadFileToBytesTest,
147     GetMetadataTest,
148     GetMediaFileSystemMetadataTest,
149     GetAllMediaFileSystemMetadataTest,
150     DropPermissionForMediaFileSystemTest,
151   ]);
152 })