OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * @type {string} | 8 * @type {string} |
9 * @const | 9 * @const |
10 */ | 10 */ |
11 var FIRST_FILE_SYSTEM_ID = 'vanilla'; | 11 var FIRST_FILE_SYSTEM_ID = 'vanilla'; |
12 | 12 |
13 /** | 13 /** |
14 * @type {string} | 14 * @type {string} |
15 * @const | 15 * @const |
16 */ | 16 */ |
17 var SECOND_FILE_SYSTEM_ID = 'ice-cream'; | 17 var SECOND_FILE_SYSTEM_ID = 'ice-cream'; |
18 | 18 |
19 /** | 19 /** |
20 * Gets volume information for the provided file system. | |
21 * | |
22 * @param {string} fileSystemId Id of the provided file system. | |
23 * @param {function(Object)} callback Callback to be called on result, with the | |
24 * volume information object in case of success, or null if not found. | |
25 */ | |
26 function getVolumeInfo(fileSystemId, callback) { | |
27 chrome.fileBrowserPrivate.getVolumeMetadataList(function(volumeList) { | |
28 for (var i = 0; i < volumeList.length; i++) { | |
29 if (volumeList[i].extensionId == chrome.runtime.id && | |
30 volumeList[i].fileSystemId == fileSystemId) { | |
31 callback(volumeList[i]); | |
32 return; | |
33 } | |
34 } | |
35 callback(null); | |
36 }); | |
37 } | |
38 | |
39 /** | |
40 * Sets up the tests. Called once per all test cases. In case of a failure, | 20 * Sets up the tests. Called once per all test cases. In case of a failure, |
41 * the callback is not called. | 21 * the callback is not called. |
42 * | 22 * |
43 * @param {function()} callback Success callback. | 23 * @param {function()} callback Success callback. |
44 */ | 24 */ |
45 function setUp(callback) { | 25 function setUp(callback) { |
46 Promise.race([ | 26 Promise.race([ |
47 new Promise(function(fulfill, reject) { | 27 new Promise(function(fulfill, reject) { |
48 chrome.fileSystemProvider.mount( | 28 chrome.fileSystemProvider.mount( |
49 {fileSystemId: FIRST_FILE_SYSTEM_ID, displayName: 'vanilla.zip'}, | 29 {fileSystemId: FIRST_FILE_SYSTEM_ID, displayName: 'vanilla.zip'}, |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 // Not calling fileSystemProvider.unmount(), so the onMountCompleted | 101 // Not calling fileSystemProvider.unmount(), so the onMountCompleted |
122 // event will not be raised. | 102 // event will not be raised. |
123 chrome.fileSystemProvider.onUnmountRequested.removeListener( | 103 chrome.fileSystemProvider.onUnmountRequested.removeListener( |
124 onUnmountRequested); | 104 onUnmountRequested); |
125 onTestSuccess(); | 105 onTestSuccess(); |
126 }; | 106 }; |
127 | 107 |
128 chrome.fileSystemProvider.onUnmountRequested.addListener( | 108 chrome.fileSystemProvider.onUnmountRequested.addListener( |
129 onUnmountRequested); | 109 onUnmountRequested); |
130 | 110 |
131 getVolumeInfo(SECOND_FILE_SYSTEM_ID, function(volumeInfo) { | 111 test_util.getVolumeInfo(SECOND_FILE_SYSTEM_ID, function(volumeInfo) { |
132 chrome.test.assertTrue(!!volumeInfo); | 112 chrome.test.assertTrue(!!volumeInfo); |
133 chrome.fileBrowserPrivate.removeMount(volumeInfo.volumeId); | 113 chrome.fileBrowserPrivate.removeMount(volumeInfo.volumeId); |
134 }); | 114 }); |
135 }, | 115 }, |
136 | 116 |
137 // End to end test with a failure. Invokes fileSystemProvider.removeMount() | 117 // End to end test with a failure. Invokes fileSystemProvider.removeMount() |
138 // on a provided file system, and verifies (1) if the onMountRequested() | 118 // on a provided file system, and verifies (1) if the onMountRequested() |
139 // event is called with correct aguments, and (2) if calling onError(), | 119 // event is called with correct aguments, and (2) if calling onError(), |
140 // results in an unmount event fired from the VolumeManager instance. | 120 // results in an unmount event fired from the VolumeManager instance. |
141 function requestUnmountError() { | 121 function requestUnmountError() { |
(...skipping 22 matching lines...) Expand all Loading... |
164 chrome.fileBrowserPrivate.removeMount(SECOND_FILE_SYSTEM_ID); | 144 chrome.fileBrowserPrivate.removeMount(SECOND_FILE_SYSTEM_ID); |
165 chrome.fileBrowserPrivate.onMountCompleted.removeListener( | 145 chrome.fileBrowserPrivate.onMountCompleted.removeListener( |
166 onMountCompleted); | 146 onMountCompleted); |
167 onTestSuccess(); | 147 onTestSuccess(); |
168 }; | 148 }; |
169 | 149 |
170 chrome.fileSystemProvider.onUnmountRequested.addListener( | 150 chrome.fileSystemProvider.onUnmountRequested.addListener( |
171 onUnmountRequested); | 151 onUnmountRequested); |
172 chrome.fileBrowserPrivate.onMountCompleted.addListener(onMountCompleted); | 152 chrome.fileBrowserPrivate.onMountCompleted.addListener(onMountCompleted); |
173 | 153 |
174 getVolumeInfo(SECOND_FILE_SYSTEM_ID, function(volumeInfo) { | 154 test_util.getVolumeInfo(SECOND_FILE_SYSTEM_ID, function(volumeInfo) { |
175 chrome.test.assertTrue(!!volumeInfo); | 155 chrome.test.assertTrue(!!volumeInfo); |
176 chrome.fileBrowserPrivate.removeMount(volumeInfo.volumeId); | 156 chrome.fileBrowserPrivate.removeMount(volumeInfo.volumeId); |
177 }); | 157 }); |
178 } | 158 } |
179 ]); | 159 ]); |
180 } | 160 } |
181 | 161 |
182 // Setup and run all of the test cases. | 162 // Setup and run all of the test cases. |
183 setUp(runTests); | 163 setUp(runTests); |
OLD | NEW |