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

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

Issue 275493006: Files.app: Fix selection on creating new folder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed the comment Created 6 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/create_new_folder.js
diff --git a/chrome/test/data/extensions/api_test/file_manager_browsertest/create_new_folder.js b/chrome/test/data/extensions/api_test/file_manager_browsertest/create_new_folder.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d6bfdb1ef8183a0de03dd84030f2300a03bc7f1
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/file_manager_browsertest/create_new_folder.js
@@ -0,0 +1,133 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+'use strict';
+
+/**
+ * Selects the first item in the file list.
+ * @param {string} windowId ID of the target window.
+ * @return {Promise} Promise to be fulfilled on success.
+ */
+function selectFirstListItem(windowId) {
+ return Promise.resolve().then(function() {
+ // Ensure no selected item.
+ return waitForElementLost(windowId,
+ 'div.detail-table > list > li[selected]');
+ }).then(function() {
+ // Push Down.
+ return callRemoteTestUtil('fakeKeyDown',
+ windowId,
+ // Down
+ ['#file-list', 'Down', true]);
+ }).then(function() {
+ // Wait for selection.
+ return waitForElement(windowId, 'div.detail-table > list > li[selected]');
+ }).then(function() {
+ // Ensure that only the first item is selected.
+ return callRemoteTestUtil(
+ 'queryAllElements',
+ windowId,
+ ['div.detail-table > list > li[selected]']);
+ }).then(function(elements) {
+ chrome.test.assertEq(1, elements.length);
+ chrome.test.assertEq('detail-table-1', elements[0].attributes['id']);
+ });
+}
+
+/**
+ * Creates new folder.
+ * @param {string} windowId ID of the target window.
+ * @param {string} path Initial path.
+ * @param {Array.<TestEntryInfo>} initialEntrySet Initial set of entries.
+ * @return {Promise} Promise to be fulfilled on success.
+ */
+function createNewFolder(windowId, path, initialEntrySet) {
+ var newFoloderListItemId = null;
+ return Promise.resolve(
+ ).then(function() {
+ // Push Ctrl + E.
+ return callRemoteTestUtil('fakeKeyDown',
+ windowId,
+ // Ctrl + E
+ ['#file-list', 'U+0045', true]);
+ }).then(function() {
+ // Wait for rename text field.
+ return waitForElement(windowId, 'li[renaming] input.rename');
+ }).then(function() {
+ return callRemoteTestUtil(
+ 'queryAllElements',
+ windowId,
+ ['div.detail-table > list > li[selected]']);
+ }).then(function(elements) {
+ // Ensure that only the new directory is selected and being renamed.
+ chrome.test.assertEq(1, elements.length);
+ chrome.test.assertTrue('renaming' in elements[0].attributes);
+ newFoloderListItemId = elements[0].attributes['id'];
+ }).then(function() {
+ // Type new folder name.
+ return callRemoteTestUtil(
+ 'inputText', windowId, ['input.rename', 'Test Folder Name']);
+ }).then(function() {
+ // Push Enter.
+ return callRemoteTestUtil('fakeKeyDown',
+ windowId,
+ ['input.rename', 'Enter', false]);
+ }).then(function() {
+ // Wait until rename completes.
+ return waitForElementLost(windowId, 'input.rename');
+ }).then(function() {
+ var expectedEntryRows = TestEntryInfo.getExpectedRows(initialEntrySet);
+ expectedEntryRows.push(['Test Folder Name', '--', 'Folder', '']);
+ // Wait for the new folder.
+ return waitForFiles(windowId,
+ expectedEntryRows,
+ {ignoreLastModifiedTime: true});
+ }).then(function() {
+ // Ensure that only the created directory is selected.
+ return callRemoteTestUtil(
+ 'queryAllElements',
+ windowId,
+ ['div.detail-table > list > li[selected]']);
+ }).then(function(elements) {
+ chrome.test.assertEq(1, elements.length);
+ chrome.test.assertEq(newFoloderListItemId, elements[0].attributes['id']);
+ });
+};
+
+testcase.createNewFolderAfterSelectFile = function() {
+ var PATH = RootPath.DOWNLOADS;
+ var windowId = null;
+ var promise = new Promise(function(callback) {
+ setupAndWaitUntilReady(null, PATH, callback);
+ }).then(function(inWindowId) {
+ windowId = inWindowId;
+ return selectFirstListItem(windowId);
+ }).then(function() {
+ return createNewFolder(windowId, PATH, BASIC_LOCAL_ENTRY_SET);
+ });
+
+ testPromise(promise);
+};
+
+testcase.createNewFolderDownloads = function() {
+ var PATH = RootPath.DOWNLOADS;
+ var promise = new Promise(function(callback) {
+ setupAndWaitUntilReady(null, PATH, callback);
+ }).then(function(windowId) {
+ return createNewFolder(windowId, PATH, BASIC_LOCAL_ENTRY_SET);
+ });
+
+ testPromise(promise);
+};
+
+testcase.createNewFolderDrive = function() {
+ var PATH = RootPath.DRIVE;
+ var promise = new Promise(function(callback) {
+ setupAndWaitUntilReady(null, PATH, callback);
+ }).then(function(windowId) {
+ return createNewFolder(windowId, PATH, BASIC_DRIVE_ENTRY_SET);
+ });
+
+ testPromise(promise);
+};

Powered by Google App Engine
This is Rietveld 408576698