[Android] Implement 3-way sensor fallback for Device Orientation.
[chromium-blink-merge.git] / ui / file_manager / integration_tests / gallery / open_image_files.js
blob974f8ecd24cf3df4f70339efc2f385b2dc0da078
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 'use strict';
7 /**
8  * Runs a test to open a single image.
9  *
10  * @param {string} testVolumeName Test volume name passed to the addEntries
11  *     function. Either 'drive' or 'local'.
12  * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
13  * @return {Promise} Promise to be fulfilled with on success.
14  */
15 function openSingleImage(testVolumeName, volumeType) {
16   var launchedPromise = launch(testVolumeName, volumeType, [ENTRIES.desktop]);
17   return launchedPromise.then(function(args) {
18     var WIDTH = 880;
19     var HEIGHT = 603; /* Inner height 570px + native header 33px. */
20     var appId = args.appId;
21     var resizedWindowPromise = gallery.callRemoteTestUtil(
22         'resizeWindow', appId, [WIDTH, HEIGHT]
23     ).then(function() {
24       return repeatUntil(function() {
25         return gallery.callRemoteTestUtil('getWindows', null, []
26         ).then(function(windows) {
27           var bounds = windows[appId];
28           if (!bounds)
29             return pending('Window is not ready yet.');
31           if (bounds.outerWidth !== WIDTH || bounds.outerHeight !== HEIGHT) {
32             return pending(
33                 'Window bounds is expected %d x %d, but is %d x %d',
34                 WIDTH, HEIGHT,
35                 bounds.outerWidth,
36                 bounds.outerHeight);
37           }
38           return true;
39         });
40       });
41     });
43     return resizedWindowPromise.then(function() {
44       var rootElementPromise =
45           gallery.waitForElement(appId, '.gallery[mode="slide"]');
46       var imagePromise = gallery.waitForElement(
47           appId, '.gallery .content canvas.image[width="760"]');
48       var fullImagePromsie = gallery.waitForElement(
49           appId, '.gallery .content canvas.fullres[width="800"]');
50       return Promise.all([rootElementPromise, imagePromise, fullImagePromsie]).
51           then(function(args) {
52             chrome.test.assertEq('760', args[1].attributes.width);
53             chrome.test.assertEq('570', args[1].attributes.height);
54             chrome.test.assertEq('800', args[2].attributes.width);
55             chrome.test.assertEq('600', args[2].attributes.height);
56           });
57     });
58   });
61 /**
62  * Runs a test to open multiple images.
63  *
64  * @param {string} testVolumeName Test volume name passed to the addEntries
65  *     function. Either 'drive' or 'local'.
66  * @param {VolumeManagerCommon.VolumeType} volumeType Volume type.
67  * @return {Promise} Promise to be fulfilled with on success.
68  */
69 function openMultipleImages(testVolumeName, volumeType) {
70   var testEntries = [ENTRIES.desktop, ENTRIES.image3];
71   var launchedPromise = launch(testVolumeName, volumeType, testEntries);
72   return launchedPromise.then(function(args) {
73     var appId = args.appId;
74     var rootElementPromise =
75         gallery.waitForElement(appId, '.gallery[mode="thumbnail"]');
76     var tilesPromise = repeatUntil(function() {
77       return gallery.callRemoteTestUtil(
78           'queryAllElements',
79           appId,
80           ['.thumbnail-view .thumbnail']
81       ).then(function(tiles) {
82         if (tiles.length !== 2)
83           return pending('The number of tiles is expected 2, but is %d',
84                          tiles.length);
85         return tiles;
86       });
87     });
88     return Promise.all([rootElementPromise, tilesPromise]);
89   });
92 /**
93  * The openSingleImage test for Downloads.
94  * @return {Promise} Promise to be fulfilled with on success.
95  */
96 testcase.openSingleImageOnDownloads = function() {
97   return openSingleImage('local', 'downloads');
101  * The openSingleImage test for Google Drive.
102  * @return {Promise} Promise to be fulfilled with on success.
103  */
104 testcase.openSingleImageOnDrive = function() {
105   return openSingleImage('drive', 'drive');
109  * The openMultiImages test for Downloads.
110  * @return {Promise} Promise to be fulfilled with on success.
111  */
112 testcase.openMultipleImagesOnDownloads = function() {
113   return openMultipleImages('local', 'downloads');
117  * The openMultiImages test for Google Drive.
118  * @return {Promise} Promise to be fulfilled with on success.
119  */
120 testcase.openMultipleImagesOnDrive = function() {
121   return openMultipleImages('drive', 'drive');