| 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 1f5e5057aeee159b9c16e009f5839e87e413eb34..affbbf58bcde17a4fd94565eccd952023314a9df 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
|
| @@ -116,6 +116,33 @@ var EXPECTED_FILES_IN_SHARED_WITH_ME = [
|
| ];
|
|
|
| /**
|
| + * Returns the name of the given file list entry.
|
| + * @param {Array.<string>} file An entry in a file list.
|
| + * @return {string} Name of the file.
|
| + */
|
| +function getFileName(fileListEntry) {
|
| + return fileListEntry[0];
|
| +}
|
| +
|
| +/**
|
| + * Returns the size of the given file list entry.
|
| + * @param {Array.<string>} An entry in a file list.
|
| + * @return {string} Size of the file.
|
| + */
|
| +function getFileSize(fileListEntry) {
|
| + return fileListEntry[1];
|
| +}
|
| +
|
| +/**
|
| + * Returns the type of the given file list entry.
|
| + * @param {Array.<string>} An entry in a file list.
|
| + * @return {string} Type of the file.
|
| + */
|
| +function getFileType(fileListEntry) {
|
| + return fileListEntry[2];
|
| +}
|
| +
|
| +/**
|
| * Namespace for test cases.
|
| */
|
| var testcase = {};
|
| @@ -221,16 +248,57 @@ testcase.intermediate.galleryOpen = function(path) {
|
| * @param {string} path Directory path to be tested.
|
| */
|
| testcase.intermediate.keyboardCopy = function(path, callback) {
|
| - setupAndWaitUntilReady(path, function(appId) {
|
| - callRemoteTestUtil('copyFile', appId, ['world.ogv'], function(result) {
|
| - chrome.test.assertFalse(!result);
|
| - callRemoteTestUtil('waitForFileListChange',
|
| - appId,
|
| - [getExpectedFilesBefore(path == '/drive/root').length],
|
| - checkIfNoErrorsOccured.bind(null,
|
| - chrome.test.succeed));
|
| - });
|
| - });
|
| + // Returns true if |fileList| contains a copy of |filename|.
|
| + var isCopyPresent = function(filename, fileList) {
|
| + var originalEntry;
|
| + for (var i = 0; i < fileList.length; i++) {
|
| + if (getFileName(fileList[i]) == filename)
|
| + originalEntry = fileList[i];
|
| + }
|
| + if (!originalEntry)
|
| + return false;
|
| +
|
| + var baseName = filename.substring(0, filename.lastIndexOf('.'));
|
| + var extension = filename.substring(filename.lastIndexOf('.'));
|
| + var filenamePattern = new RegExp('^' + baseName + '.+' + extension + '$');
|
| + for (var i = 0; i < fileList.length; i++) {
|
| + // Check size, type and file name pattern to find a copy.
|
| + if (getFileSize(fileList[i]) == getFileSize(originalEntry) &&
|
| + getFileType(fileList[i]) == getFileType(originalEntry) &&
|
| + filenamePattern.exec(getFileName(fileList[i])))
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + var filename = 'world.ogv';
|
| + var appId, fileListBefore;
|
| + var steps = [
|
| + // Set up File Manager.
|
| + function() {
|
| + setupAndWaitUntilReady(path, steps.shift());
|
| + },
|
| + // Copy the file.
|
| + function(inAppId, inFileListBefore) {
|
| + appId = inAppId;
|
| + fileListBefore = inFileListBefore;
|
| + chrome.test.assertFalse(isCopyPresent(filename, fileListBefore));
|
| + callRemoteTestUtil('copyFile', appId, [filename], steps.shift());
|
| + },
|
| + // Wait for a file list change.
|
| + function(result) {
|
| + chrome.test.assertTrue(result);
|
| + callRemoteTestUtil('waitForFileListChange', appId,
|
| + [fileListBefore.length], steps.shift());
|
| + },
|
| + // Verify the result.
|
| + function(fileList) {
|
| + chrome.test.assertTrue(isCopyPresent(filename, fileList));
|
| + checkIfNoErrorsOccured(chrome.test.succeed);
|
| + }
|
| + ];
|
| + steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
|
| + steps.shift()();
|
| };
|
|
|
| /**
|
| @@ -238,18 +306,47 @@ testcase.intermediate.keyboardCopy = function(path, callback) {
|
| * @param {string} path Directory path to be tested.
|
| */
|
| testcase.intermediate.keyboardDelete = function(path) {
|
| - setupAndWaitUntilReady(path, function(appId) {
|
| - callRemoteTestUtil('deleteFile', appId, ['world.ogv'], function(result) {
|
| - chrome.test.assertFalse(!result);
|
| - callRemoteTestUtil('waitAndAcceptDialog', appId, [], function() {
|
| - callRemoteTestUtil(
|
| - 'waitForFileListChange',
|
| - appId,
|
| - [getExpectedFilesBefore(path == '/drive/root').length],
|
| - checkIfNoErrorsOccured.bind(null, chrome.test.succeed));
|
| - });
|
| - });
|
| - });
|
| + // Returns true if |fileList| contains |filename|.
|
| + var isFilePresent = function(filename, fileList) {
|
| + for (var i = 0; i < fileList.length; i++) {
|
| + if (getFileName(fileList[i]) == filename)
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + var filename = 'world.ogv';
|
| + var appId, fileListBefore;
|
| + var steps = [
|
| + // Set up File Manager.
|
| + function() {
|
| + setupAndWaitUntilReady(path, steps.shift());
|
| + },
|
| + // Delete the file.
|
| + function(inAppId, inFileListBefore) {
|
| + appId = inAppId;
|
| + fileListBefore = inFileListBefore;
|
| + chrome.test.assertTrue(isFilePresent(filename, fileListBefore));
|
| + callRemoteTestUtil('deleteFile', appId, [filename], steps.shift());
|
| + },
|
| + // Reply to a dialog.
|
| + function(result) {
|
| + chrome.test.assertTrue(result);
|
| + callRemoteTestUtil('waitAndAcceptDialog', appId, [], steps.shift());
|
| + },
|
| + // Wait for a file list change.
|
| + function() {
|
| + callRemoteTestUtil('waitForFileListChange', appId,
|
| + [fileListBefore.length], steps.shift());
|
| + },
|
| + // Verify the result.
|
| + function(fileList) {
|
| + chrome.test.assertFalse(isFilePresent(filename, fileList));
|
| + checkIfNoErrorsOccured(chrome.test.succeed);
|
| + }
|
| + ];
|
| + steps = steps.map(function(f) { return chrome.test.callbackPass(f); });
|
| + steps.shift()();
|
| };
|
|
|
| testcase.fileDisplayDownloads = function() {
|
|
|