| OLD | NEW |
| 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 }); |
| OLD | NEW |