Update CrOS OOBE throbber to MD throbber; delete old asset
[chromium-blink-merge.git] / chrome / test / data / pdf / material_elements_test.js
bloba75a54c0e6bbf79a381061f434853e6e01837e8c
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     // Force templates to render.
106     Polymer.dom.flush();
108     var rootBookmarks =
109         bookmarkContent.shadowRoot.querySelectorAll('viewer-bookmark');
110     chrome.test.assertEq(1, rootBookmarks.length, "one root bookmark");
111     var rootBookmark = rootBookmarks[0];
113     var subBookmarks =
114         rootBookmark.shadowRoot.querySelectorAll('viewer-bookmark');
115     chrome.test.assertEq(2, subBookmarks.length, "two sub bookmarks");
116     chrome.test.assertEq(1, subBookmarks[1].depth,
117                            "sub bookmark depth correct");
119     var lastPageChange;
120     rootBookmark.addEventListener('change-page', function(e) {
121       lastPageChange = e.detail.page;
122     });
124     MockInteractions.tap(rootBookmark.$.item);
125     chrome.test.assertEq(1, lastPageChange);
127     MockInteractions.tap(subBookmarks[1].$.item);
128     chrome.test.assertEq(3, lastPageChange);
130     var subBookmarkDiv =
131         rootBookmark.shadowRoot.querySelector('.sub-bookmark');
133     chrome.test.assertTrue(subBookmarkDiv.hidden);
134     MockInteractions.tap(rootBookmark.$.expand);
135     chrome.test.assertFalse(subBookmarkDiv.hidden);
136     chrome.test.assertEq('hidden', subBookmarks[1].$.expand.style.visibility);
138     chrome.test.succeed();
139   }
142 importTestHelpers().then(function() {
143   chrome.test.runTests(tests);