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

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

Issue 13450004: drive: Make FileManagerBrowserTest more robust (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments 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 | « no previous file | 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 // These must match the files created in the C++ code. 5 // These must match the files created in the C++ code.
6 var EXPECTED_FILES_BEFORE = [ 6 var EXPECTED_FILES_BEFORE = [
7 ['hello.txt', '123 bytes', 'Plain text', 'Sep 4, 1998 12:34 PM'], 7 ['hello.txt', '123 bytes', 'Plain text', 'Sep 4, 1998 12:34 PM'],
8 ['world.mpeg', '1,000 bytes', 'MPEG video', 'Jul 4, 2012 10:35 AM'], 8 ['world.mpeg', '1,000 bytes', 'MPEG video', 'Jul 4, 2012 10:35 AM'],
9 ['My Desktop Background.png', '1 KB', 'PNG image', 'Jan 18, 2038 1:02 AM'], 9 ['My Desktop Background.png', '1 KB', 'PNG image', 'Jan 18, 2038 1:02 AM'],
10 ['photos', '--', 'Folder', 'Jan 1, 1980 11:59 PM'] 10 ['photos', '--', 'Folder', 'Jan 1, 1980 11:59 PM']
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 else 77 else
78 window.setTimeout(helper, 50); 78 window.setTimeout(helper, 50);
79 }); 79 });
80 } 80 }
81 helper(); 81 helper();
82 } 82 }
83 83
84 // Checks that the files initially added by the C++ side are displayed, and 84 // Checks that the files initially added by the C++ side are displayed, and
85 // that a subsequently added file shows up. 85 // that a subsequently added file shows up.
86 function testFileDisplay() { 86 function testFileDisplay() {
87 getFileList(function(actualFilesBefore) { 87 waitForFileListChange(
88 chrome.test.assertEq(EXPECTED_FILES_BEFORE, actualFilesBefore); 88 0,
89 chrome.test.sendMessage('initial check done', function(reply) { 89 function(actualFilesBefore) {
90 chrome.test.assertEq('file added', reply); 90 chrome.test.assertEq(EXPECTED_FILES_BEFORE, actualFilesBefore);
91 waitForFileListChange( 91 chrome.test.sendMessage('initial check done', function(reply) {
92 chrome.test.assertEq('file added', reply);
93 waitForFileListChange(
92 EXPECTED_FILES_BEFORE.length, 94 EXPECTED_FILES_BEFORE.length,
93 chrome.test.callbackPass(function(actualFilesAfter) { 95 chrome.test.callbackPass(function(actualFilesAfter) {
94 chrome.test.assertEq(EXPECTED_FILES_AFTER, actualFilesAfter); 96 chrome.test.assertEq(EXPECTED_FILES_AFTER, actualFilesAfter);
95 })); 97 }));
98 });
96 }); 99 });
97 });
98 } 100 }
99 101
100 // Injects the keyboard test code into the file manager tab and runs the 102 // Injects the keyboard test code into the file manager tab and runs the
101 // keyboard delete test. 103 // keyboard delete test.
102 function doKeyboardTestWithConfirmation(code) { 104 function doKeyboardTestWithConfirmation(code) {
103 chrome.tabs.executeScript(null, {file: 'fake_keypress.js'}, function(result) { 105 // Wait until the file list is rendered.
104 chrome.tabs.executeScript(null, {code: code}, function(result) { 106 waitForFileListChange(
105 chrome.test.assertFalse(!result[0]); 107 0,
106 waitAndAcceptDialog(function() { 108 function(unused) {
107 // Succeed here if anything happens; the C++ code checks what happened. 109 // Once the file list is rendered, start the keyboard test.
108 waitForFileListChange(EXPECTED_FILES_BEFORE.length, 110 chrome.tabs.executeScript(
109 chrome.test.succeed); 111 null, {file: 'fake_keypress.js'}, function(result) {
112 chrome.tabs.executeScript(null, {code: code}, function(result) {
113 chrome.test.assertFalse(!result[0]);
114 waitAndAcceptDialog(function() {
115 // Succeed here if anything happens; the C++ code checks what
116 // happened.
117 waitForFileListChange(EXPECTED_FILES_BEFORE.length,
118 chrome.test.succeed);
119 });
120 });
110 }); 121 });
111 }); 122 });
112 });
113 } 123 }
114 124
115 // Injects the keyboard test code into the file manager tab and runs the 125 // Injects the keyboard test code into the file manager tab and runs the
116 // keyboard copy test. 126 // keyboard copy test.
117 function doKeyboardTest(code) { 127 function doKeyboardTest(code) {
118 chrome.tabs.executeScript(null, {file: 'fake_keypress.js'}, function(result) { 128 waitForFileListChange(
119 chrome.tabs.executeScript(null, {code: code}, function(result) { 129 0,
120 chrome.test.assertFalse(!result[0]); 130 function(unused) {
121 // Succeed here if anything happens; the C++ code checks what happened. 131 chrome.tabs.executeScript(
122 waitForFileListChange(EXPECTED_FILES_BEFORE.length, chrome.test.succeed); 132 null, {file: 'fake_keypress.js'}, function(result) {
133 chrome.tabs.executeScript(null, {code: code}, function(result) {
134 chrome.test.assertFalse(!result[0]);
135 // Succeed here if anything happens; the C++ code checks what
136 // happened.
137 waitForFileListChange(EXPECTED_FILES_BEFORE.length,
138 chrome.test.succeed);
139 });
140 });
123 }); 141 });
124 });
125 } 142 }
126 143
127 chrome.test.runTests([ 144 chrome.test.runTests([
128 // Waits for the C++ code to send a string identifying a test, then runs that 145 // Waits for the C++ code to send a string identifying a test, then runs that
129 // test. 146 // test.
130 function testRunner() { 147 function testRunner() {
131 chrome.test.sendMessage('which test', function(reply) { 148 chrome.test.sendMessage('which test', function(reply) {
132 // These test names are provided by file_manager_browsertest.cc. 149 // These test names are provided by file_manager_browsertest.cc.
133 if (reply === 'file display') { 150 if (reply === 'file display') {
134 testFileDisplay(); 151 testFileDisplay();
135 } else if (reply === 'keyboard copy') { 152 } else if (reply === 'keyboard copy') {
136 doKeyboardTest('fakeFileCopy("world.mpeg");'); 153 doKeyboardTest('fakeFileCopy("world.mpeg");');
137 } else if (reply === 'keyboard delete') { 154 } else if (reply === 'keyboard delete') {
138 doKeyboardTestWithConfirmation('fakeFileDelete("world.mpeg");'); 155 doKeyboardTestWithConfirmation('fakeFileDelete("world.mpeg");');
139 } else { 156 } else {
140 chrome.test.fail('Bogus test name passed to testRunner()'); 157 chrome.test.fail('Bogus test name passed to testRunner()');
141 } 158 }
142 }); 159 });
143 } 160 }
144 ]); 161 ]);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698