Index: chrome/test/data/extensions/api_test/file_manager_browsertest/gallery/open_image_files.js |
diff --git a/chrome/test/data/extensions/api_test/file_manager_browsertest/gallery/open_image_files.js b/chrome/test/data/extensions/api_test/file_manager_browsertest/gallery/open_image_files.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b0d380df875995f091d9a1839de09e35436102c2 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/file_manager_browsertest/gallery/open_image_files.js |
@@ -0,0 +1,108 @@ |
+// Copyright (c) 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'; |
+ |
+/** |
+ * Gets file entries just under the volume. |
+ * |
+ * @param {VolumeManagerCommon.VolumeType} volumeType Volume type. |
+ * @param {Array.<string>} names File name list. |
+ * @return {Promise} Promise to be fulflled with Array.<FileEntry>. |
+ */ |
+function getFilesUnderVolume(volumeType, names) { |
+ var displayRootPromise = backgroundComponentsPromise.then( |
+ function(backgroundComponent) { |
+ var volumeManager = backgroundComponent.volumeManager; |
+ var volumeInfo = volumeManager.getCurrentProfileVolumeInfo(volumeType); |
+ return new Promise(function(fulfill, reject) { |
+ volumeInfo.resolveDisplayRoot(fulfill, reject); |
+ }); |
+ }); |
+ return displayRootPromise.then(function(displayRoot) { |
+ var filesPromise = names.map(function(name) { |
+ return new Promise( |
+ displayRoot.getFile.bind(displayRoot, name, {})); |
+ }); |
+ return Promise.all(filesPromise); |
+ }); |
+} |
+ |
+/** |
+ * Waits until an element appears and returns it. |
+ * |
+ * @param {AppWindow} appWindow Application window. |
+ * @param {string} query Query for the element. |
+ * @return {Promise} Promise to be fulfilled with the element. |
+ */ |
+function waitForElement(appWindow, query) { |
+ return repeatUntil(function() { |
+ var element = appWindow.contentWindow.document.querySelector(query); |
+ if (element) |
+ return element; |
+ else |
+ return pending('The element %s is not found.', query); |
+ }); |
+} |
+ |
+/** |
+ * Runs a test to open a single image. |
+ * |
+ * @param {string} testVolumeName Test volume name passed to the addEntries |
+ * function. Either 'drive' or 'local'. |
+ * @param {VolumeManagerCommon.VolumeType} volumeType Volume type. |
+ * @return {Promise} Promise to be fulfilled with on success. |
+ */ |
+function openSingleImage(testVolumeName, volumeType) { |
+ var addEntriesPromsie = addEntries([testVolumeName], [ENTRIES.desktop]); |
+ var imageFilesPromise = addEntriesPromsie.then(function() { |
+ return getFilesUnderVolume(volumeType, |
+ [ENTRIES.desktop.nameText]); |
+ }); |
+ return launch(imageFilesPromise).then(function() { |
+ var resizedWindowPromise = appWindowPromise.then(function(appWindow) { |
+ appWindow.resizeTo(480, 480); |
+ return repeatUntil(function() { |
+ if (appWindow.innerBounds.width !== 480 || |
+ appWindow.innerBounds.height !== 480) { |
+ return pending( |
+ 'Window bounds is expected %d x %d, but is %d x %d', |
+ 480, |
+ 480, |
+ appWindow.innerBounds.width, |
+ appWindow.innerBounds.height); |
+ } |
+ return appWindow; |
+ }); |
+ }); |
+ return resizedWindowPromise.then(function(appWindow) { |
+ var imagePromise = |
+ waitForElement(appWindow, '.gallery .content canvas.image'); |
+ var fullImagePromsie = |
+ waitForElement(appWindow, '.gallery .content canvas.fullres'); |
+ return Promise.all([imagePromise, fullImagePromsie]).then(function(args) { |
+ chrome.test.assertEq(480, args[0].width); |
+ chrome.test.assertEq(360, args[0].height); |
+ chrome.test.assertEq(800, args[1].width); |
+ chrome.test.assertEq(600, args[1].height); |
+ }); |
+ }); |
+ }); |
+} |
+ |
+/** |
+ * The openSingleImage test for Downloads. |
+ * @return {Promise} Promise to be fulfilled with on success. |
+ */ |
+function openSingleImageOnDownloads() { |
+ return openSingleImage('local', VolumeManagerCommon.VolumeType.DOWNLOADS); |
+} |
+ |
+/** |
+ * The openSingleImage test for Google Drive. |
+ * @return {Promise} Promise to be fulfilled with on success. |
+ */ |
+function openSingleImageOnDrive() { |
+ return openSingleImage('drive', VolumeManagerCommon.VolumeType.DRIVE); |
+} |