Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(931)

Side by Side Diff: chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js

Issue 14241010: Checks for Javascript errors in Files.app's tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/file_manager/js/test_util.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 /** 5 /**
6 * Expected files before tests are performed. Entries for Local tests. 6 * Expected files before tests are performed. Entries for Local tests.
7 * @type {Array.<Array.<string>>} 7 * @type {Array.<Array.<string>>}
8 * @const 8 * @const
9 */ 9 */
10 var EXPECTED_FILES_BEFORE_LOCAL = [ 10 var EXPECTED_FILES_BEFORE_LOCAL = [
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 */ 57 */
58 function setupAndWaitUntilReady(path, callback) { 58 function setupAndWaitUntilReady(path, callback) {
59 callRemoteTestUtil('openMainWindow', null, [path], function(appId) { 59 callRemoteTestUtil('openMainWindow', null, [path], function(appId) {
60 callRemoteTestUtil('waitForFileListChange', appId, [0], function(files) { 60 callRemoteTestUtil('waitForFileListChange', appId, [0], function(files) {
61 callback(appId, files); 61 callback(appId, files);
62 }); 62 });
63 }); 63 });
64 } 64 }
65 65
66 /** 66 /**
67 * Verifies if there are no Javascript errors in any of the app windows.
68 * @param {function()} Completion callback.
69 */
70 function checkIfNoErrorsOccured(callback) {
71 callRemoteTestUtil('getErrorCount', null, [], function(count) {
72 chrome.test.assertEq(0, count);
73 callback();
74 });
75 }
76
77 /**
67 * Expected files shown in "Recent". Directories (e.g. 'photos') are not in this 78 * Expected files shown in "Recent". Directories (e.g. 'photos') are not in this
68 * list as they are not expected in "Recent". 79 * list as they are not expected in "Recent".
80 *
69 * @type {Array.<Array.<string>>} 81 * @type {Array.<Array.<string>>}
70 * @const 82 * @const
71 */ 83 */
72 var EXPECTED_FILES_IN_RECENT = [ 84 var EXPECTED_FILES_IN_RECENT = [
73 ['hello.txt', '123 bytes', 'Plain text', 'Sep 4, 1998 12:34 PM'], 85 ['hello.txt', '123 bytes', 'Plain text', 'Sep 4, 1998 12:34 PM'],
74 ['world.mpeg', '1,000 bytes', 'MPEG video', 'Jul 4, 2012 10:35 AM'], 86 ['world.mpeg', '1,000 bytes', 'MPEG video', 'Jul 4, 2012 10:35 AM'],
75 ['My Desktop Background.png', '1 KB', 'PNG image', 'Jan 18, 2038 1:02 AM'], 87 ['My Desktop Background.png', '1 KB', 'PNG image', 'Jan 18, 2038 1:02 AM'],
76 ['Test Document.gdoc','--','Google document','Apr 10, 2013 4:20 PM'], 88 ['Test Document.gdoc','--','Google document','Apr 10, 2013 4:20 PM'],
77 ].sort(); 89 ].sort();
78 90
(...skipping 29 matching lines...) Expand all
108 var expectedFilesAfter = 120 var expectedFilesAfter =
109 expectedFilesBefore.concat(EXPECTED_NEWLY_ADDED_FILE).sort(); 121 expectedFilesBefore.concat(EXPECTED_NEWLY_ADDED_FILE).sort();
110 122
111 setupAndWaitUntilReady(path, function(appId, actualFilesBefore) { 123 setupAndWaitUntilReady(path, function(appId, actualFilesBefore) {
112 chrome.test.assertEq(expectedFilesBefore, actualFilesBefore); 124 chrome.test.assertEq(expectedFilesBefore, actualFilesBefore);
113 chrome.test.sendMessage('initial check done', function(reply) { 125 chrome.test.sendMessage('initial check done', function(reply) {
114 chrome.test.assertEq('file added', reply); 126 chrome.test.assertEq('file added', reply);
115 callRemoteTestUtil( 127 callRemoteTestUtil(
116 'waitForFileListChange', 128 'waitForFileListChange',
117 appId, 129 appId,
118 [expectedFilesBefore.length], 130 [expectedFilesBefore.length], function(actualFilesAfter) {
119 chrome.test.callbackPass(function(actualFilesAfter) {
120 chrome.test.assertEq(expectedFilesAfter, actualFilesAfter); 131 chrome.test.assertEq(expectedFilesAfter, actualFilesAfter);
121 })); 132 checkIfNoErrorsOccured(chrome.test.succeed);
133 });
122 }); 134 });
123 }); 135 });
124 }; 136 };
125 137
126 /** 138 /**
127 * Tests copying a file to the same directory and waits until the file lists 139 * Tests copying a file to the same directory and waits until the file lists
128 * changes. 140 * changes.
129 * 141 *
130 * @param {string} path Directory path to be tested. 142 * @param {string} path Directory path to be tested.
131 */ 143 */
132 testcase.intermediate.keyboardCopy = function(path) { 144 testcase.intermediate.keyboardCopy = function(path, callback) {
133 setupAndWaitUntilReady(path, function(appId) { 145 setupAndWaitUntilReady(path, function(appId) {
134 callRemoteTestUtil('copyFile', appId, ['world.mpeg'], function(result) { 146 callRemoteTestUtil('copyFile', appId, ['world.mpeg'], function(result) {
135 chrome.test.assertFalse(!result); 147 chrome.test.assertFalse(!result);
136 callRemoteTestUtil('waitForFileListChange', 148 callRemoteTestUtil('waitForFileListChange',
137 appId, 149 appId,
138 [getExpectedFilesBefore(path == '/drive/root').length], 150 [getExpectedFilesBefore(path == '/drive/root').length],
139 chrome.test.succeed); 151 checkIfNoErrorsOccured.bind(null,
152 chrome.test.succeed));
140 }); 153 });
141 }); 154 });
142 }; 155 };
143 156
144 /** 157 /**
145 * Tests deleting a file and and waits until the file lists changes. 158 * Tests deleting a file and and waits until the file lists changes.
146 * @param {string} path Directory path to be tested. 159 * @param {string} path Directory path to be tested.
147 */ 160 */
148 testcase.intermediate.keyboardDelete = function(path) { 161 testcase.intermediate.keyboardDelete = function(path) {
149 setupAndWaitUntilReady(path, function(appId) { 162 setupAndWaitUntilReady(path, function(appId) {
150 callRemoteTestUtil('deleteFile', appId, ['world.mpeg'], function(result) { 163 callRemoteTestUtil('deleteFile', appId, ['world.mpeg'], function(result) {
151 chrome.test.assertFalse(!result); 164 chrome.test.assertFalse(!result);
152 callRemoteTestUtil('waitAndAcceptDialog', appId, [], function() { 165 callRemoteTestUtil('waitAndAcceptDialog', appId, [], function() {
153 callRemoteTestUtil( 166 callRemoteTestUtil(
154 'waitForFileListChange', 167 'waitForFileListChange',
155 appId, 168 appId,
156 [getExpectedFilesBefore(path == '/drive/root').length], 169 [getExpectedFilesBefore(path == '/drive/root').length],
157 chrome.test.succeed); 170 checkIfNoErrorsOccured.bind(null, chrome.test.succeed));
158 }); 171 });
159 }); 172 });
160 }); 173 });
161 }; 174 };
162 175
163 testcase.fileDisplayDownloads = function() { 176 testcase.fileDisplayDownloads = function() {
164 testcase.intermediate.fileDisplay('/Downloads'); 177 testcase.intermediate.fileDisplay('/Downloads');
165 }; 178 };
166 179
167 testcase.keyboardCopyDownloads = function() { 180 testcase.keyboardCopyDownloads = function() {
(...skipping 16 matching lines...) Expand all
184 testcase.intermediate.keyboardDelete('/drive/root'); 197 testcase.intermediate.keyboardDelete('/drive/root');
185 }; 198 };
186 199
187 /** 200 /**
188 * Tests opening the "Recent" on the sidebar navigation by clicking the icon, 201 * Tests opening the "Recent" on the sidebar navigation by clicking the icon,
189 * and verifies the directory contents. We test if there are only files, since 202 * and verifies the directory contents. We test if there are only files, since
190 * directories are not allowed in "Recent". This test is only available for 203 * directories are not allowed in "Recent". This test is only available for
191 * Drive. 204 * Drive.
192 */ 205 */
193 testcase.openSidebarRecent = function() { 206 testcase.openSidebarRecent = function() {
194 var onFileListChange = chrome.test.callbackPass(function(actualFilesAfter) { 207 var onFileListChange = function(actualFilesAfter) {
195 chrome.test.assertEq(EXPECTED_FILES_IN_RECENT, actualFilesAfter); 208 chrome.test.assertEq(EXPECTED_FILES_IN_RECENT, actualFilesAfter);
196 }); 209 checkIfNoErrorsOccured(chrome.test.succeed);
210 };
197 211
198 setupAndWaitUntilReady('/drive/root', function(appId) { 212 setupAndWaitUntilReady('/drive/root', function(appId) {
199 // Use the icon for a click target. 213 // Use the icon for a click target.
200 callRemoteTestUtil( 214 callRemoteTestUtil(
201 'fakeMouseClick', appId, ['[volume-type-icon=drive_recent]'], 215 'fakeMouseClick', appId, ['[volume-type-icon=drive_recent]'],
202 function(result) { 216 function(result) {
203 chrome.test.assertFalse(!result); 217 chrome.test.assertFalse(!result);
204 callRemoteTestUtil( 218 callRemoteTestUtil(
205 'waitForFileListChange', 219 'waitForFileListChange',
206 appId, 220 appId,
207 [getExpectedFilesBefore(true /* isDrive */).length], 221 [getExpectedFilesBefore(true /* isDrive */).length],
208 onFileListChange); 222 onFileListChange);
209 }); 223 });
210 }); 224 });
211 }; 225 };
212 226
213 /** 227 /**
214 * Tests opening the "Offline" on the sidebar navigation by clicking the icon, 228 * Tests opening the "Offline" on the sidebar navigation by clicking the icon,
215 * and checks contenets of the file list. Only the entries "available offline" 229 * and checks contenets of the file list. Only the entries "available offline"
216 * should be shown. "Available offline" entires are hosted documents and the 230 * should be shown. "Available offline" entires are hosted documents and the
217 * entries cached by DriveCache. 231 * entries cached by DriveCache.
218 */ 232 */
219 testcase.openSidebarOffline = function() { 233 testcase.openSidebarOffline = function() {
220 var onFileListChange = chrome.test.callbackPass(function(actualFilesAfter) { 234 var onFileListChange = function(actualFilesAfter) {
221 chrome.test.assertEq(EXPECTED_FILES_IN_OFFLINE, actualFilesAfter); 235 chrome.test.assertEq(EXPECTED_FILES_IN_OFFLINE, actualFilesAfter);
222 }); 236 checkIfNoErrorsOccured(chrome.test.succeed);
237 };
223 238
224 setupAndWaitUntilReady('/drive/root/', function(appId) { 239 setupAndWaitUntilReady('/drive/root/', function(appId) {
225 // Use the icon for a click target. 240 // Use the icon for a click target.
226 callRemoteTestUtil( 241 callRemoteTestUtil(
227 'fakeMouseClick', appId, ['[volume-type-icon=drive_offline]'], 242 'fakeMouseClick', appId, ['[volume-type-icon=drive_offline]'],
228 function(result) { 243 function(result) {
229 chrome.test.assertFalse(!result); 244 chrome.test.assertFalse(!result);
230 callRemoteTestUtil( 245 callRemoteTestUtil(
231 'waitForFileListChange', 246 'waitForFileListChange',
232 appId, 247 appId,
233 [getExpectedFilesBefore(true /* isDrive */).length], 248 [getExpectedFilesBefore(true /* isDrive */).length],
234 onFileListChange); 249 onFileListChange);
235 }); 250 });
236 }); 251 });
237 }; 252 };
238 253
239 /** 254 /**
240 * Tests autocomplete with a query 'hello'. This test is only available for 255 * Tests autocomplete with a query 'hello'. This test is only available for
241 * Drive. 256 * Drive.
242 */ 257 */
243 testcase.autocomplete = function() { 258 testcase.autocomplete = function() {
244 var EXPECTED_AUTOCOMPLETE_LIST = [ 259 var EXPECTED_AUTOCOMPLETE_LIST = [
245 '\'hello\' - search Drive\n', 260 '\'hello\' - search Drive\n',
246 'hello.txt\n', 261 'hello.txt\n',
247 ]; 262 ];
248 263
249 var onAutocompleteListShown = chrome.test.callbackPass( 264 var onAutocompleteListShown = function(autocompleteList) {
250 function(autocompleteList) { 265 chrome.test.assertEq(EXPECTED_AUTOCOMPLETE_LIST, autocompleteList);
251 chrome.test.assertEq(EXPECTED_AUTOCOMPLETE_LIST, autocompleteList); 266 checkIfNoErrorsOccured(chrome.test.succeed);
252 }); 267 };
253 268
254 setupAndWaitUntilReady('/drive/root', function(appId, list) { 269 setupAndWaitUntilReady('/drive/root', function(appId, list) {
255 callRemoteTestUtil('performAutocompleteAndWait', 270 callRemoteTestUtil('performAutocompleteAndWait',
256 appId, 271 appId,
257 ['hello', EXPECTED_AUTOCOMPLETE_LIST.length], 272 ['hello', EXPECTED_AUTOCOMPLETE_LIST.length],
258 onAutocompleteListShown); 273 onAutocompleteListShown);
259 }); 274 });
260 }; 275 };
OLDNEW
« no previous file with comments | « chrome/browser/resources/file_manager/js/test_util.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698