Allow only one bookmark to be added for multiple fast starring
[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.
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'));
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();
46 /**
47 * Test that viewer-page-selector changes in response to setting docLength.
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();
57 /**
58 * Test that clicking the dropdown icon opens/closes the dropdown.
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();
82 /**
83 * Test that viewer-bookmarks-content creates a bookmark tree with the correct
84 * structure and behaviour.
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: []
97 title: 'Test 1b',
98 page: 3,
99 children: []
102 depth: 1
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;
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();
142 importTestHelpers().then(function() {
143 chrome.test.runTests(tests);