Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: chrome/test/data/webui/settings/settings_menu_test.js

Issue 2651293003: Make MD Settings side bar keyboard accessible. (Closed)
Patch Set: nits + rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** @fileoverview Runs tests for the settings menu. */ 5 /** @fileoverview Runs tests for the settings menu. */
6 6
7 cr.define('settings_menu', function() { 7 cr.define('settings_menu', function() {
8 function registerSettingsMenuTest() { 8 function registerSettingsMenuTest() {
9 var settingsMenu = null; 9 var settingsMenu = null;
10 10
11 suite('SettingsMenu', function() { 11 suite('SettingsMenu', function() {
12 setup(function() { 12 setup(function() {
13 PolymerTest.clearBody(); 13 PolymerTest.clearBody();
14 settingsMenu = document.createElement('settings-menu'); 14 settingsMenu = document.createElement('settings-menu');
15 settingsMenu.currentRoute = settings.Route.BASIC;
16 document.body.appendChild(settingsMenu); 15 document.body.appendChild(settingsMenu);
17 }); 16 });
18 17
19 teardown(function() { settingsMenu.remove(); }); 18 teardown(function() { settingsMenu.remove(); });
20 19
21 test('advancedOpenedBinding', function() { 20 test('advancedOpenedBinding', function() {
22 assertFalse(settingsMenu.advancedOpened); 21 assertFalse(settingsMenu.advancedOpened);
23 settingsMenu.advancedOpened = true; 22 settingsMenu.advancedOpened = true;
24 Polymer.dom.flush(); 23 Polymer.dom.flush();
25 assertTrue(settingsMenu.$.advancedSubmenu.opened); 24 assertTrue(settingsMenu.$.advancedSubmenu.opened);
26 25
27 settingsMenu.advancedOpened = false; 26 settingsMenu.advancedOpened = false;
28 Polymer.dom.flush(); 27 Polymer.dom.flush();
29 assertFalse(settingsMenu.$.advancedSubmenu.opened); 28 assertFalse(settingsMenu.$.advancedSubmenu.opened);
30 }); 29 });
31 30
32 test('tapAdvanced', function() { 31 test('tapAdvanced', function() {
33 assertFalse(settingsMenu.advancedOpened); 32 assertFalse(settingsMenu.advancedOpened);
34 33
35 var advancedTrigger = settingsMenu.$$('#advancedSubmenu .menu-trigger'); 34 var advancedToggle = settingsMenu.$$('#advancedButton');
36 assertTrue(!!advancedTrigger); 35 assertTrue(!!advancedToggle);
37 36
38 MockInteractions.tap(advancedTrigger); 37 MockInteractions.tap(advancedToggle);
39 Polymer.dom.flush(); 38 Polymer.dom.flush();
40 assertTrue(settingsMenu.$.advancedSubmenu.opened); 39 assertTrue(settingsMenu.$.advancedSubmenu.opened);
41 40
42 MockInteractions.tap(advancedTrigger); 41 MockInteractions.tap(advancedToggle);
43 Polymer.dom.flush(); 42 Polymer.dom.flush();
44 assertFalse(settingsMenu.$.advancedSubmenu.opened); 43 assertFalse(settingsMenu.$.advancedSubmenu.opened);
45 }); 44 });
46 45
47 test('upAndDownIcons', function() { 46 test('upAndDownIcons', function() {
48 // There should be different icons for a top level menu being open 47 // There should be different icons for a top level menu being open
49 // vs. being closed. E.g. arrow-drop-up and arrow-drop-down. 48 // vs. being closed. E.g. arrow-drop-up and arrow-drop-down.
50 var ironIconElement = settingsMenu.$.advancedSubmenu.querySelector( 49 var ironIconElement = settingsMenu.$$('#advancedButton iron-icon');
51 '.menu-trigger iron-icon');
52 assertTrue(!!ironIconElement); 50 assertTrue(!!ironIconElement);
53 51
54 settingsMenu.advancedOpened = true; 52 settingsMenu.advancedOpened = true;
55 Polymer.dom.flush(); 53 Polymer.dom.flush();
56 var openIcon = ironIconElement.icon; 54 var openIcon = ironIconElement.icon;
57 assertTrue(!!openIcon); 55 assertTrue(!!openIcon);
58 56
59 settingsMenu.advancedOpened = false; 57 settingsMenu.advancedOpened = false;
60 Polymer.dom.flush(); 58 Polymer.dom.flush();
61 assertNotEquals(openIcon, ironIconElement.icon); 59 assertNotEquals(openIcon, ironIconElement.icon);
62 }); 60 });
63 61
64 test('openResetSection', function() {
65 settingsMenu.currentRoute = settings.Route.RESET;
66 var advancedSubmenu = settingsMenu.$.advancedSubmenu;
67 assertEquals('/reset',
68 advancedSubmenu.querySelector('paper-menu').selected);
69 });
70
71 // Test that navigating via the paper menu always clears the current 62 // Test that navigating via the paper menu always clears the current
72 // search URL parameter. 63 // search URL parameter.
73 test('clearsUrlSearchParam', function() { 64 test('clearsUrlSearchParam', function() {
74 var urlParams = new URLSearchParams('search=foo'); 65 var urlParams = new URLSearchParams('search=foo');
75 settings.navigateTo(settings.Route.BASIC, urlParams); 66 settings.navigateTo(settings.Route.BASIC, urlParams);
76 assertEquals( 67 assertEquals(
77 urlParams.toString(), 68 urlParams.toString(),
78 settings.getQueryParameters().toString()); 69 settings.getQueryParameters().toString());
79 MockInteractions.tap(settingsMenu.$.people); 70 MockInteractions.tap(settingsMenu.$.people);
80 assertEquals('', settings.getQueryParameters().toString()); 71 assertEquals('', settings.getQueryParameters().toString());
81 }); 72 });
82 }); 73 });
74
75 suite('SettingsMenuReset', function() {
76 setup(function() {
77 PolymerTest.clearBody();
78 settings.navigateTo(settings.Route.RESET, '');
79 settingsMenu = document.createElement('settings-menu');
80 document.body.appendChild(settingsMenu);
81 });
82
83 teardown(function() { settingsMenu.remove(); });
84
85 test('openResetSection', function() {
86 var selector = settingsMenu.$.subMenu;
87 var path = new window.URL(selector.selected).pathname;
88 assertEquals('/reset', path);
89 });
90 });
83 } 91 }
84 92
85 return { 93 return {
86 registerTests: function() { 94 registerTests: function() {
87 registerSettingsMenuTest(); 95 registerSettingsMenuTest();
88 }, 96 },
89 }; 97 };
90 }); 98 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698