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

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

Issue 230073002: Files.app: Reland r261616: Add a test to rename a file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix a test. Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/extensions/api_test/file_manager_browsertest/background.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/api_test/file_manager_browsertest/keyboard_operations.js
diff --git a/chrome/test/data/extensions/api_test/file_manager_browsertest/keyboard_operations.js b/chrome/test/data/extensions/api_test/file_manager_browsertest/keyboard_operations.js
index 8709bec3bdfd3ea46442db673fa89ecbb2ff0de6..286102d3970d49831cfa17be72c8dba8307edaf4 100644
--- a/chrome/test/data/extensions/api_test/file_manager_browsertest/keyboard_operations.js
+++ b/chrome/test/data/extensions/api_test/file_manager_browsertest/keyboard_operations.js
@@ -135,7 +135,8 @@ function testPromise(promise) {
promise.then(function() {
return new Promise(checkIfNoErrorsOccured);
}).then(chrome.test.callbackPass(function() {
- chrome.test.succeed();
+ // The callbacPass is necessary to avoid prematurely finishing tests.
+ // Don't put chrome.test.succeed() here to avoid doubled success log.
}), function(error) {
chrome.test.fail(error.stack || error);
});
@@ -183,6 +184,79 @@ function createNewFolder(path, initialEntrySet) {
});
};
+/**
+ * Renames a file.
+ * @param {string} windowId ID of the window.
+ * @param {string} oldName Old name of a file.
+ * @param {string} newName New name of a file.
+ * @return {Promise} Promise to be fulfilled on success.
+ */
+function renameFile(windowId, oldName, newName) {
+ return callRemoteTestUtil('selectFile', windowId, [oldName]).then(function() {
+ // Push Ctrl+Enter.
+ return fakeKeyDown(windowId, '#detail-table', 'Enter', true);
+ }).then(function() {
+ // Wait for rename text field.
+ return waitForElement(windowId, 'input.rename');
+ }).then(function() {
+ // Type new file name.
+ return callRemoteTestUtil('inputText', windowId, ['input.rename', newName]);
+ }).then(function() {
+ // Push Enter.
+ return fakeKeyDown(windowId, 'input.rename', 'Enter', false);
+ });
+}
+
+/**
+ * Test for renaming a file.
+ * @param {string} path Initial path.
+ * @param {Array.<TestEntryInfo>} initialEntrySet Initial set of entries.
+ * @return {Promise} Promise to be fulfilled on success.
+ */
+function testRenameFile(path, initialEntrySet) {
+ var windowId;
+
+ // Make expected rows.
+ var initialExpectedEntryRows = TestEntryInfo.getExpectedRows(initialEntrySet);
+ var expectedEntryRows = TestEntryInfo.getExpectedRows(initialEntrySet);
+ for (var i = 0; i < expectedEntryRows.length; i++) {
+ if (expectedEntryRows[i][0] === 'hello.txt') {
+ expectedEntryRows[i][0] = 'New File Name.txt';
+ break;
+ }
+ }
+ chrome.test.assertTrue(
+ i != expectedEntryRows.length, 'hello.txt is not found.');
+
+ // Open a window.
+ return new Promise(function(callback) {
+ setupAndWaitUntilReady(null, path, callback);
+ }).then(function(inWindowId) {
+ windowId = inWindowId;
+ return waitForFiles(windowId, initialExpectedEntryRows);
+ }).then(function(){
+ return renameFile(windowId, 'hello.txt', 'New File Name.txt');
+ }).then(function() {
+ // Wait until rename completes.
+ return waitForElementLost(windowId, '#detail-table [renaming]');
+ }).then(function() {
+ // Wait for the new file name.
+ return waitForFiles(windowId,
+ expectedEntryRows,
+ {ignoreLastModifiedTime: true});
+ }).then(function() {
+ return renameFile(windowId, 'New File Name.txt', '.hidden file');
+ }).then(function() {
+ // The error dialog is shown.
+ return waitAndAcceptDialog(windowId);
+ }).then(function() {
+ // The name did not change.
+ return waitForFiles(windowId,
+ expectedEntryRows,
+ {ignoreLastModifiedTime: true});
+ });
+};
+
testcase.keyboardCopyDownloads = function() {
keyboardCopy(RootPath.DOWNLOADS);
};
@@ -206,3 +280,11 @@ testcase.createNewFolderDownloads = function() {
testcase.createNewFolderDrive = function() {
testPromise(createNewFolder(RootPath.DRIVE, BASIC_DRIVE_ENTRY_SET));
};
+
+testcase.renameFileDownloads = function() {
+ testPromise(testRenameFile(RootPath.DOWNLOADS, BASIC_LOCAL_ENTRY_SET));
+};
+
+testcase.renameFileDrive = function() {
+ testPromise(testRenameFile(RootPath.DRIVE, BASIC_DRIVE_ENTRY_SET));
+};
« no previous file with comments | « chrome/test/data/extensions/api_test/file_manager_browsertest/background.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698