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

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

Issue 15809007: Clean up browser tests in Files.app. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js
diff --git a/chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js b/chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js
index d40121d96a1c625d8daf37ea863a406faa1aef93..059a33ce2cffb834a10b832abb7c642395381aef 100644
--- a/chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js
+++ b/chrome/test/data/extensions/api_test/file_manager_browsertest/test_cases.js
@@ -162,23 +162,40 @@ testcase.intermediate = {};
* @param {string} path Directory path to be tested.
*/
testcase.intermediate.fileDisplay = function(path) {
+ var appId;
+
var expectedFilesBefore = getExpectedFilesBefore(path == '/drive/root');
var expectedFilesAfter =
expectedFilesBefore.concat(EXPECTED_NEWLY_ADDED_FILE).sort();
- setupAndWaitUntilReady(path, function(appId, actualFilesBefore) {
- chrome.test.assertEq(expectedFilesBefore, actualFilesBefore);
- chrome.test.sendMessage('initial check done', function(reply) {
+ var steps = new StepsRunner();
+ steps.run([
hirono 2013/05/30 04:46:10 steps.run may be called multiple times by users of
mtomasz 2013/05/30 06:40:53 Great idea. Done.
+ function() {
+ setupAndWaitUntilReady(path, steps.next);
+ },
+ // Notify that the list has been verified and a new file can be added
+ // in file_manager_browsertest.cc.
+ function(inAppId, actualFilesBefore) {
+ appId = inAppId;
+ chrome.test.assertEq(expectedFilesBefore, actualFilesBefore);
+ chrome.test.sendMessage('initial check done', steps.next);
+ },
+ // Confirm that the file has been added externally and wait for it
+ // to appear in UI.
+ function(reply) {
chrome.test.assertEq('file added', reply);
callRemoteTestUtil(
'waitForFileListChange',
appId,
- [expectedFilesBefore.length], function(actualFilesAfter) {
- chrome.test.assertEq(expectedFilesAfter, actualFilesAfter);
- checkIfNoErrorsOccured(chrome.test.succeed);
- });
- });
- });
+ [expectedFilesBefore.length],
+ steps.next);
+ },
+ // Confirm the file list.
+ function(actualFilesAfter) {
+ chrome.test.assertEq(expectedFilesAfter, actualFilesAfter);
+ checkIfNoErrorsOccured(steps.next);
+ },
+ ]);
};
/**
@@ -189,41 +206,48 @@ testcase.intermediate.fileDisplay = function(path) {
*/
testcase.intermediate.galleryOpen = function(path) {
var appId;
- var steps = [
+
+ var steps = new StepsRunner();
+ steps.run([
function() {
- setupAndWaitUntilReady(path, steps.shift());
+ setupAndWaitUntilReady(path, steps.next);
},
+ // Resize the window to desired dimensions to avoid flakyness.
function(inAppId) {
appId = inAppId;
- // Resize the window to desired dimensions to avoid flakyness.
- callRemoteTestUtil('resizeWindow', appId, [320, 320], steps.shift());
+ callRemoteTestUtil('resizeWindow',
+ appId,
+ [320, 320],
+ steps.next);
},
+ // Select the image.
function(result) {
chrome.test.assertTrue(result);
- // Select the image.
- callRemoteTestUtil(
- 'selectFile', appId, ['My Desktop Background.png'], steps.shift());
+ callRemoteTestUtil('selectFile',
+ appId,
+ ['My Desktop Background.png'],
+ steps.next);
},
+ // Click on the label to enter the photo viewer.
function(result) {
chrome.test.assertTrue(result);
- // Click on the label to enter the photo viewer.
callRemoteTestUtil(
'fakeMouseClick',
appId,
['#file-list li.table-row[selected] .filename-label span'],
- steps.shift());
+ steps.next);
},
+ // Wait for the image in the gallery's screen image.
function(result) {
chrome.test.assertTrue(result);
- // Wait for the image in the gallery's screen image.
callRemoteTestUtil('waitForElement',
appId,
['.gallery .content canvas.image',
'iframe.overlay-pane'],
- steps.shift());
+ steps.next);
},
+ // Verify the gallery's screen image.
function(element) {
- // Verify the gallery's screen image.
chrome.test.assertEq('320', element.attributes.width);
chrome.test.assertEq('240', element.attributes.height);
// Get the full-resolution image.
@@ -231,17 +255,15 @@ testcase.intermediate.galleryOpen = function(path) {
appId,
['.gallery .content canvas.fullres',
'iframe.overlay-pane'],
- steps.shift());
+ steps.next);
},
+ // Verify the gallery's full resolution image.
function(element) {
- // Verify the gallery's screen image.
chrome.test.assertEq('800', element.attributes.width);
chrome.test.assertEq('600', element.attributes.height);
- chrome.test.succeed();
+ checkIfNoErrorsOccured(steps.next);
}
- ];
- steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
- steps.shift()();
+ ]);
};
/**
@@ -253,67 +275,67 @@ testcase.intermediate.galleryOpen = function(path) {
testcase.intermediate.audioOpen = function(path) {
var appId;
var audioAppId;
- var steps = [
+ var steps = new StepsRunner();
+ steps.run([
function() {
- setupAndWaitUntilReady(path, steps.shift());
+ setupAndWaitUntilReady(path, steps.next);
},
+ // Select the song.
function(inAppId) {
appId = inAppId;
- // Select the song.
callRemoteTestUtil(
- 'selectFile', appId, ['Beautiful Song.ogg'], steps.shift());
+ 'selectFile', appId, ['Beautiful Song.ogg'], steps.next);
},
+ // Click on the label to enter the audio player.
function(result) {
chrome.test.assertTrue(result);
- // Click on the label to enter the audio player.
callRemoteTestUtil(
'fakeMouseClick',
appId,
['#file-list li.table-row[selected] .filename-label span'],
- steps.shift());
+ steps.next);
},
+ // Wait for the audio player.
function(result) {
chrome.test.assertTrue(result);
- // Wait for the audio player.
callRemoteTestUtil('waitForWindow',
null,
['mediaplayer.html'],
- steps.shift());
+ steps.next);
},
+ // Wait for the audio tag and verify the source.
function(inAppId) {
audioAppId = inAppId;
- // Wait for the audio tag and verify the source.
callRemoteTestUtil('waitForElement',
audioAppId,
['audio[src]'],
- steps.shift());
+ steps.next);
},
+ // Get the title tag.
function(element) {
chrome.test.assertEq(
'filesystem:chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/' +
'external' + path + '/Beautiful%20Song.ogg',
element.attributes.src);
- // Get the title tag.
callRemoteTestUtil('waitForElement',
audioAppId,
['.data-title'],
- steps.shift());
+ steps.next);
},
+ // Get the artist tag.
function(element) {
chrome.test.assertEq('Beautiful Song', element.text);
- // Get the artist tag.
callRemoteTestUtil('waitForElement',
audioAppId,
['.data-artist'],
- steps.shift());
+ steps.next);
},
+ // Verify the artist and if there are no javascript errors.
function(element) {
chrome.test.assertEq('Unknown Artist', element.text);
- chrome.test.succeed();
+ checkIfNoErrorsOccured(steps.next);
}
- ];
- steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
- steps.shift()();
+ ]);
};
/**
@@ -408,37 +430,37 @@ testcase.intermediate.keyboardCopy = function(path, callback) {
return true;
}
return false;
- }
+ };
var filename = 'world.ogv';
var appId, fileListBefore;
- var steps = [
+ var steps = new StepsRunner();
+ steps.run([
// Set up File Manager.
function() {
- setupAndWaitUntilReady(path, steps.shift());
+ setupAndWaitUntilReady(path, steps.next);
},
// Copy the file.
function(inAppId, inFileListBefore) {
appId = inAppId;
fileListBefore = inFileListBefore;
chrome.test.assertFalse(isCopyPresent(filename, fileListBefore));
- callRemoteTestUtil('copyFile', appId, [filename], steps.shift());
+ callRemoteTestUtil('copyFile', appId, [filename], steps.next);
},
// Wait for a file list change.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitForFileListChange', appId,
- [fileListBefore.length], steps.shift());
+ callRemoteTestUtil('waitForFileListChange',
+ appId,
+ [fileListBefore.length],
+ steps.next);
},
// Verify the result.
function(fileList) {
chrome.test.assertTrue(isCopyPresent(filename, fileList));
- checkIfNoErrorsOccured(steps.shift());
- },
- function() {}
- ];
- steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
- steps.shift()();
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
/**
@@ -453,59 +475,61 @@ testcase.intermediate.keyboardDelete = function(path) {
return true;
}
return false;
- }
+ };
var filename = 'world.ogv';
var directoryName = 'photos';
var appId, fileListBefore;
- var steps = [
+ var steps = new StepsRunner();
+ steps.run([
// Set up File Manager.
function() {
- setupAndWaitUntilReady(path, steps.shift());
+ setupAndWaitUntilReady(path, steps.next);
},
// Delete the file.
function(inAppId, inFileListBefore) {
appId = inAppId;
fileListBefore = inFileListBefore;
chrome.test.assertTrue(isFilePresent(filename, fileListBefore));
- callRemoteTestUtil('deleteFile', appId, [filename], steps.shift());
+ callRemoteTestUtil(
+ 'deleteFile', appId, [filename], steps.next);
},
// Reply to a dialog.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitAndAcceptDialog', appId, [], steps.shift());
+ callRemoteTestUtil(
+ 'waitAndAcceptDialog', appId, [], steps.next);
},
// Wait for a file list change.
function() {
- callRemoteTestUtil('waitForFileListChange', appId,
- [fileListBefore.length], steps.shift());
+ callRemoteTestUtil('waitForFileListChange',
+ appId,
+ [fileListBefore.length],
+ steps.next);
},
// Delete the directory.
function(fileList) {
fileListBefore = fileList;
chrome.test.assertFalse(isFilePresent(filename, fileList));
chrome.test.assertTrue(isFilePresent(directoryName, fileList));
- callRemoteTestUtil('deleteFile', appId, [directoryName], steps.shift());
+ callRemoteTestUtil('deleteFile', appId, [directoryName], steps.next);
},
// Reply to a dialog.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitAndAcceptDialog', appId, [], steps.shift());
+ callRemoteTestUtil('waitAndAcceptDialog', appId, [], steps.next);
},
// Wait for a file list change.
function() {
callRemoteTestUtil('waitForFileListChange', appId,
- [fileListBefore.length], steps.shift());
+ [fileListBefore.length], steps.next);
},
// Verify the result.
function(fileList) {
chrome.test.assertFalse(isFilePresent(directoryName, fileList));
- checkIfNoErrorsOccured(steps.shift());
- },
- function() {}
- ];
- steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
- steps.shift()();
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
testcase.fileDisplayDownloads = function() {
@@ -563,24 +587,33 @@ testcase.keyboardDeleteDrive = function() {
* Drive.
*/
testcase.openSidebarRecent = function() {
- var onFileListChange = function(actualFilesAfter) {
- chrome.test.assertEq(EXPECTED_FILES_IN_RECENT, actualFilesAfter);
- checkIfNoErrorsOccured(chrome.test.succeed);
- };
-
- setupAndWaitUntilReady('/drive/root', function(appId) {
- // Use the icon for a click target.
- callRemoteTestUtil(
- 'selectVolume', appId, ['drive_recent'],
- function(result) {
- chrome.test.assertFalse(!result);
- callRemoteTestUtil(
- 'waitForFileListChange',
- appId,
- [getExpectedFilesBefore(true /* isDrive */).length],
- onFileListChange);
- });
- });
+ var appId;
+ var steps = new StepsRunner();
+ steps.run([
+ function() {
+ setupAndWaitUntilReady('/drive/root', steps.next);
+ },
+ // Click the icon of the Recent volume.
+ function(inAppId) {
+ appId = inAppId;
+ callRemoteTestUtil(
+ 'selectVolume', appId, ['drive_recent'], steps.next);
+ },
+ // Wait until the file list is updated.
+ function(result) {
+ chrome.test.assertFalse(!result);
+ callRemoteTestUtil(
+ 'waitForFileListChange',
+ appId,
+ [getExpectedFilesBefore(true /* isDrive */).length],
+ steps.next);
+ },
+ // Verify the file list.
+ function(actualFilesAfter) {
+ chrome.test.assertEq(EXPECTED_FILES_IN_RECENT, actualFilesAfter);
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
/**
@@ -590,24 +623,33 @@ testcase.openSidebarRecent = function() {
* entries cached by DriveCache.
*/
testcase.openSidebarOffline = function() {
- var onFileListChange = function(actualFilesAfter) {
- chrome.test.assertEq(EXPECTED_FILES_IN_OFFLINE, actualFilesAfter);
- checkIfNoErrorsOccured(chrome.test.succeed);
- };
-
- setupAndWaitUntilReady('/drive/root/', function(appId) {
- // Use the icon for a click target.
- callRemoteTestUtil(
- 'selectVolume', appId, ['drive_offline'],
- function(result) {
- chrome.test.assertFalse(!result);
- callRemoteTestUtil(
- 'waitForFileListChange',
- appId,
- [getExpectedFilesBefore(true /* isDrive */).length],
- onFileListChange);
- });
- });
+ var appId;
+ var steps = new StepsRunner();
+ steps.run([
+ function() {
+ setupAndWaitUntilReady('/drive/root/', steps.next)
+ },
+ // Click the icon of the Offline volume.
+ function(inAppId) {
+ appId = inAppId;
+ callRemoteTestUtil(
+ 'selectVolume', appId, ['drive_offline'], steps.next);
+ },
+ // Wait until the file list is updated.
+ function(result) {
+ chrome.test.assertFalse(!result);
+ callRemoteTestUtil(
+ 'waitForFileListChange',
+ appId,
+ [getExpectedFilesBefore(true /* isDrive */).length],
+ steps.next);
+ },
+ // Verify the file list.
+ function(actualFilesAfter) {
+ chrome.test.assertEq(EXPECTED_FILES_IN_OFFLINE, actualFilesAfter);
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
/**
@@ -616,23 +658,35 @@ testcase.openSidebarOffline = function() {
* "shared-with-me" should be shown.
*/
testcase.openSidebarSharedWithMe = function() {
- var onFileListChange = chrome.test.callbackPass(function(actualFilesAfter) {
- chrome.test.assertEq(EXPECTED_FILES_IN_SHARED_WITH_ME, actualFilesAfter);
- });
-
- setupAndWaitUntilReady('/drive/root/', function(appId) {
- // Use the icon for a click target.
- callRemoteTestUtil(
- 'selectVolume', appId, ['drive_shared_with_me'],
- function(result) {
- chrome.test.assertFalse(!result);
- callRemoteTestUtil(
- 'waitForFileListChange',
- appId,
- [getExpectedFilesBefore(true /* isDrive */).length],
- onFileListChange);
- });
- });
+ var appId;
+ var steps = new StepsRunner();
+ steps.run([
+ function() {
+ setupAndWaitUntilReady('/drive/root/', steps.next);
+ },
+ // Click the icon of the Shared With Me volume.
+ function(inAppId) {
+ appId = inAppId;
+ // Use the icon for a click target.
+ callRemoteTestUtil('selectVolume',
+ appId,
+ ['drive_shared_with_me'], steps.next);
+ },
+ // Wait until the file list is updated.
+ function(result) {
+ chrome.test.assertFalse(!result);
+ callRemoteTestUtil(
+ 'waitForFileListChange',
+ appId,
+ [getExpectedFilesBefore(true /* isDrive */).length],
+ steps.next);
+ },
+ // Verify the file list.
+ function(actualFilesAfter) {
+ chrome.test.assertEq(EXPECTED_FILES_IN_SHARED_WITH_ME, actualFilesAfter);
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
/**
@@ -645,17 +699,25 @@ testcase.autocomplete = function() {
'hello.txt\n',
];
- var onAutocompleteListShown = function(autocompleteList) {
- chrome.test.assertEq(EXPECTED_AUTOCOMPLETE_LIST, autocompleteList);
- checkIfNoErrorsOccured(chrome.test.succeed);
- };
-
- setupAndWaitUntilReady('/drive/root', function(appId, list) {
- callRemoteTestUtil('performAutocompleteAndWait',
- appId,
- ['hello', EXPECTED_AUTOCOMPLETE_LIST.length],
- onAutocompleteListShown);
- });
+ var steps = new StepsRunner();
+ steps.run([
+ function() {
+ setupAndWaitUntilReady('/drive/root', steps.next);
+ },
+ // Perform an auto complete test and wait until the list changes.
+ // TODO(mtomasz): Move the operation from test_util.js to tests_cases.js.
+ function(appId, list) {
+ callRemoteTestUtil('performAutocompleteAndWait',
+ appId,
+ ['hello', EXPECTED_AUTOCOMPLETE_LIST.length],
+ steps.next);
+ },
+ // Verify the list contents.
+ function(autocompleteList) {
+ chrome.test.assertEq(EXPECTED_AUTOCOMPLETE_LIST, autocompleteList);
+ checkIfNoErrorsOccured(steps.next);
+ }
+ ]);
};
/**
@@ -675,51 +737,60 @@ testcase.intermediate.copyBetweenVolumes = function(targetFile,
dstName,
dstContents) {
var appId;
- var steps = [
+ var steps = new StepsRunner();
+ steps.run([
// Set up File Manager.
function() {
- setupAndWaitUntilReady('/Downloads', steps.shift());
+ setupAndWaitUntilReady('/Downloads', steps.next);
},
// Select the source volume.
function(inAppId) {
appId = inAppId;
- callRemoteTestUtil('selectVolume', appId, [srcName], steps.shift());
+ callRemoteTestUtil(
+ 'selectVolume', appId, [srcName], steps.next);
},
// Wait for the expected files to appear in the file list.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitForFiles', appId, [srcContents], steps.shift());
+ callRemoteTestUtil(
+ 'waitForFiles', appId, [srcContents], steps.next);
},
// Select the source file.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('selectFile', appId, [targetFile], steps.shift());
+ callRemoteTestUtil(
+ 'selectFile', appId, [targetFile], steps.next);
},
// Copy the file.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('execCommand', appId, ['copy'], steps.shift());
+ callRemoteTestUtil('execCommand', appId, ['copy'], steps.next);
},
// Select the destination volume.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('selectVolume', appId, [dstName], steps.shift());
+ callRemoteTestUtil(
+ 'selectVolume', appId, [dstName], steps.next);
},
// Wait for the expected files to appear in the file list.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitForFiles', appId, [dstContents], steps.shift());
+ callRemoteTestUtil(
+ 'waitForFiles', appId, [dstContents], steps.next);
},
// Paste the file.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('execCommand', appId, ['paste'], steps.shift());
+ callRemoteTestUtil(
+ 'execCommand', appId, ['paste'], steps.next);
},
// Wait for the file list to change.
function(result) {
chrome.test.assertTrue(result);
- callRemoteTestUtil('waitForFileListChange', appId,
- [dstContents.length], steps.shift());
+ callRemoteTestUtil('waitForFileListChange',
+ appId,
+ [dstContents.length],
+ steps.next);
},
// Check the last contents of file list.
function(actualFilesAfter) {
@@ -751,15 +822,13 @@ testcase.intermediate.copyBetweenVolumes = function(targetFile,
if (actualFilesAfter[i][0] == copiedItem[0] &&
(ignoreSize || actualFilesAfter[i][1] == copiedItem[1]) &&
actualFilesAfter[i][2] == copiedItem[2]) {
- chrome.test.succeed();
+ checkIfNoErrorsOccured(steps.next);
return;
}
}
chrome.test.fail();
}
- ];
- steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
- steps.shift()();
+ ]);
};
/**

Powered by Google App Engine
This is Rietveld 408576698