| Index: polymer_1.2.3/bower_components/paper-menu/test/paper-submenu.html
|
| diff --git a/polymer_1.2.3/bower_components/paper-menu/test/paper-submenu.html b/polymer_1.2.3/bower_components/paper-menu/test/paper-submenu.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4b12fbca14925143dc6d5a58702dd3e4b8dc7a75
|
| --- /dev/null
|
| +++ b/polymer_1.2.3/bower_components/paper-menu/test/paper-submenu.html
|
| @@ -0,0 +1,203 @@
|
| +<!doctype html>
|
| +<!--
|
| +@license
|
| +Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
| +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
| +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
| +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
| +Code distributed by Google as part of the polymer project is also
|
| +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
| +-->
|
| +<html>
|
| + <head>
|
| +
|
| + <title>paper-submenu tests</title>
|
| +
|
| + <meta charset="utf-8">
|
| + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
| + <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
|
| +
|
| + <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
| +
|
| + <script src="../../web-component-tester/browser.js"></script>
|
| + <script src="../../iron-test-helpers/mock-interactions.js"></script>
|
| +
|
| + <link rel="import" href="../../paper-item/paper-item.html">
|
| + <link rel="import" href="../paper-menu.html">
|
| + <link rel="import" href="../paper-submenu.html">
|
| +
|
| + </head>
|
| + <style>
|
| + paper-item {
|
| + font-weight: normal;
|
| + }
|
| + </style>
|
| + <body>
|
| +
|
| + <test-fixture id="basic">
|
| + <template>
|
| + <paper-menu>
|
| + <paper-submenu>
|
| + <paper-item class="menu-trigger">Topic 1</paper-item>
|
| + <paper-menu class="menu-content">
|
| + <paper-item>item 1.1</paper-item>
|
| + <paper-item>item 1.2</paper-item>
|
| + <paper-item>item 1.3</paper-item>
|
| + </paper-menu>
|
| + </paper-submenu>
|
| + <paper-submenu>
|
| + <paper-item class="menu-trigger">Topic 2</paper-item>
|
| + <paper-menu class="menu-content">
|
| + <paper-item>item 2.1</paper-item>
|
| + <paper-item>item 2.2</paper-item>
|
| + <paper-item>item 2.3</paper-item>
|
| + </paper-menu>
|
| + </paper-submenu>
|
| + <paper-submenu disabled>
|
| + <paper-item class="menu-trigger">Topic 3</paper-item>
|
| + <paper-menu class="menu-content">
|
| + <paper-item>item 3.1</paper-item>
|
| + <paper-item>item 3.2</paper-item>
|
| + <paper-item>item 3.3</paper-item>
|
| + </paper-menu>
|
| + </paper-submenu>
|
| + </paper-menu>
|
| + </template>
|
| + </test-fixture>
|
| +
|
| + <script>
|
| +
|
| + suite('<paper-submenu>', function() {
|
| + var menu,
|
| + sub1, sub2, sub3,
|
| + collapse1, collapse2, collapse3,
|
| + trigger1, trigger2, trigger3;
|
| +
|
| + setup(function() {
|
| + menu = fixture('basic');
|
| +
|
| + sub1 = menu.querySelectorAll('paper-submenu')[0];
|
| + sub2 = menu.querySelectorAll('paper-submenu')[1];
|
| + sub3 = menu.querySelectorAll('paper-submenu')[2];
|
| +
|
| + collapse1 = Polymer.dom(sub1.root).querySelector('iron-collapse');
|
| + collapse2 = Polymer.dom(sub2.root).querySelector('iron-collapse');
|
| + collapse3 = Polymer.dom(sub3.root).querySelector('iron-collapse');
|
| +
|
| + trigger1 = sub1.querySelector('.menu-trigger');
|
| + trigger2 = sub2.querySelector('.menu-trigger');
|
| + trigger3 = sub3.querySelector('.menu-trigger');
|
| + });
|
| +
|
| + test('selecting an item expands the submenu', function() {
|
| + assert.isFalse(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| +
|
| + MockInteractions.tap(trigger1);
|
| +
|
| + assert.isTrue(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| + });
|
| +
|
| + test('selecting a different item closes the previously opened submenu', function() {
|
| + assert.isFalse(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| +
|
| + MockInteractions.tap(trigger1);
|
| +
|
| + assert.isTrue(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| +
|
| + MockInteractions.tap(trigger2);
|
| +
|
| + assert.isFalse(collapse1.opened);
|
| + assert.isTrue(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| + });
|
| +
|
| + test('cannot open a disabled submenu', function() {
|
| + assert.isFalse(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| +
|
| + MockInteractions.tap(trigger3);
|
| +
|
| + assert.isFalse(collapse1.opened);
|
| + assert.isFalse(collapse2.opened);
|
| + assert.isFalse(collapse3.opened);
|
| + });
|
| +
|
| + test('selecting an item styles it and the parent', function() {
|
| + var boldDiv = document.createElement('div');
|
| + boldDiv.style.fontWeight = 'bold';
|
| + document.body.appendChild(boldDiv);
|
| +
|
| + var normalDiv = document.createElement('div');
|
| + normalDiv.style.fontWeight = 'normal';
|
| + document.body.appendChild(normalDiv);
|
| +
|
| + assert.equal(getComputedStyle(trigger1).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger2).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger3).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| +
|
| + var item1 = sub1.querySelector('.menu-content').querySelector('paper-item');
|
| +
|
| + MockInteractions.tap(trigger1);
|
| + // Nothing is initially selected.
|
| + assert.equal(getComputedStyle(item1).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + MockInteractions.tap(item1);
|
| +
|
| + assert.equal(getComputedStyle(item1).fontWeight, getComputedStyle(boldDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger1).fontWeight, getComputedStyle(boldDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger2).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger3).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + });
|
| +
|
| + test('selecting a new item de-styles the previous one', function() {
|
| + var boldDiv = document.createElement('div');
|
| + boldDiv.style.fontWeight = 'bold';
|
| + document.body.appendChild(boldDiv);
|
| +
|
| + var normalDiv = document.createElement('div');
|
| + normalDiv.style.fontWeight = 'normal';
|
| + document.body.appendChild(normalDiv);
|
| +
|
| + assert.equal(getComputedStyle(trigger1).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger2).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger3).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| +
|
| + var item1 = sub1.querySelector('.menu-content').querySelector('paper-item');
|
| + var item2 = sub2.querySelector('.menu-content').querySelector('paper-item');
|
| +
|
| + MockInteractions.tap(trigger1);
|
| + MockInteractions.tap(item1);
|
| + MockInteractions.tap(trigger2);
|
| + MockInteractions.tap(item2);
|
| +
|
| + // Both children are still selected even though the first one is hidden.
|
| + assert.equal(getComputedStyle(item1).fontWeight, getComputedStyle(boldDiv).fontWeight);
|
| + assert.equal(getComputedStyle(item2).fontWeight, getComputedStyle(boldDiv).fontWeight);
|
| +
|
| + assert.equal(getComputedStyle(trigger1).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger2).fontWeight, getComputedStyle(boldDiv).fontWeight);
|
| + assert.equal(getComputedStyle(trigger3).fontWeight, getComputedStyle(normalDiv).fontWeight);
|
| + });
|
| +
|
| + test('focus a submenu should redirect focus to the trigger', function(done) {
|
| + MockInteractions.focus(sub1);
|
| + flush(function() {
|
| + assert.equal(sub1.shadowRoot ? sub1.shadowRoot.activeElement :
|
| + document.activeElement, sub1.__trigger);
|
| + done();
|
| + });
|
| + });
|
| + });
|
| +
|
| + </script>
|
| +
|
| + </body>
|
| +</html>
|
|
|