Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chrome / test / data / pdf / material_elements_test.js
bloba666e5abf7065f510cd2af6b34463a8f3025790c
1 // Copyright 2015 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 /**
6  * Standalone unit tests of the PDF Polymer elements.
7  */
8 var tests = [
9   /**
10    * Test that viewer-page-selector reacts correctly to text entry. The page
11    * selector validates that input is an integer, but does not check for
12    * document bounds.
13    */
14   function testPageSelectorChange() {
15     var selector =
16         Polymer.Base.create('viewer-page-selector', {docLength: 1234});
18     var input = selector.$.input;
19     // Simulate entering text into `input` and pressing enter.
20     function changeInput(newValue) {
21       input.bindValue = newValue;
22       input.dispatchEvent(new CustomEvent('change'));
23     }
25     var navigatedPages = [];
26     selector.addEventListener('change-page', function(e) {
27       navigatedPages.push(e.detail.page);
28     });
30     changeInput("1000");
31     changeInput("1234");
32     changeInput("abcd");
33     changeInput("12pp");
34     changeInput("3.14");
36     chrome.test.assertEq(4, navigatedPages.length);
37     // The event page number is 0-based.
38     chrome.test.assertEq(999, navigatedPages[0]);
39     chrome.test.assertEq(1233, navigatedPages[1]);
40     chrome.test.assertEq(11, navigatedPages[2]);
41     chrome.test.assertEq(2, navigatedPages[3]);
43     chrome.test.succeed();
44   },
46   /**
47    * Test that viewer-page-selector changes in response to setting docLength.
48    */
49   function testPageSelectorDocLength() {
50     var selector =
51         Polymer.Base.create('viewer-page-selector', {docLength: 1234});
52     chrome.test.assertEq('/ 1234', selector.$.pagelength.textContent);
53     chrome.test.assertEq('2.4em', selector.$.pageselector.style.width);
54     chrome.test.succeed();
55   },
57   /**
58    * Test that clicking the dropdown icon opens/closes the dropdown.
59    */
60   function testToolbarDropdownShowHide() {
61     var dropdown = Polymer.Base.create('viewer-toolbar-dropdown', {
62       header: 'Test Menu',
63       closedIcon: 'closedIcon',
64       openIcon: 'openIcon'
65     });
67     chrome.test.assertFalse(dropdown.dropdownOpen);
68     chrome.test.assertEq('closedIcon', dropdown.dropdownIcon);
70     MockInteractions.tap(dropdown.$.icon);
72     chrome.test.assertTrue(dropdown.dropdownOpen);
73     chrome.test.assertEq('openIcon', dropdown.dropdownIcon);
75     MockInteractions.tap(dropdown.$.icon);
77     chrome.test.assertFalse(dropdown.dropdownOpen);
79     chrome.test.succeed();
80   },
82   /**
83    * Test that viewer-bookmarks-content creates a bookmark tree with the correct
84    * structure and behaviour.
85    */
86   function testBookmarkStructure() {
87     var bookmarkContent = Polymer.Base.create('viewer-bookmarks-content', {
88       bookmarks: [{
89         title: 'Test 1',
90         page: 1,
91         children: [{
92           title: 'Test 1a',
93           page: 2,
94           children: []
95         },
96         {
97           title: 'Test 1b',
98           page: 3,
99           children: []
100         }]
101       }],
102       depth: 1
103     });
105     // Wait for the <template>s to be properly initialized.
106     bookmarkContent.async(function() {
107       var rootBookmarks =
108           bookmarkContent.shadowRoot.querySelectorAll('viewer-bookmark');
109       chrome.test.assertEq(1, rootBookmarks.length, "one root bookmark");
110       var rootBookmark = rootBookmarks[0];
112       var subBookmarks =
113           rootBookmark.shadowRoot.querySelectorAll('viewer-bookmark');
114       chrome.test.assertEq(2, subBookmarks.length, "two sub bookmarks");
115       chrome.test.assertEq(2, subBookmarks[1].depth,
116                              "sub bookmark depth correct");
118       var lastPageChange;
119       rootBookmark.addEventListener('change-page', function(e) {
120         lastPageChange = e.detail.page;
121       });
123       MockInteractions.tap(rootBookmark.$.item);
124       chrome.test.assertEq(1, lastPageChange);
126       MockInteractions.tap(subBookmarks[1].$.item);
127       chrome.test.assertEq(3, lastPageChange);
129       chrome.test.succeed();
130     });
131   }
134 importTestHelpers().then(function() {
135   chrome.test.runTests(tests);