| 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; | 15 settingsMenu.currentRoute = settings.Route.BASIC; |
| 16 document.body.appendChild(settingsMenu); | 16 document.body.appendChild(settingsMenu); |
| 17 }); | 17 }); |
| 18 | 18 |
| 19 teardown(function() { settingsMenu.remove(); }); | 19 teardown(function() { settingsMenu.remove(); }); |
| 20 | 20 |
| 21 test('advancedOpenedBinding', function() { | 21 test('advancedOpenedBinding', function() { |
| 22 assertFalse(settingsMenu.advancedOpened); | 22 assertFalse(settingsMenu.advancedOpened); |
| 23 settingsMenu.advancedOpened = true; | 23 settingsMenu.advancedOpened = true; |
| 24 Polymer.dom.flush(); | 24 Polymer.dom.flush(); |
| 25 assertTrue(settingsMenu.$.advancedPage.opened); | 25 assertTrue(settingsMenu.$.advancedSubmenu.opened); |
| 26 | 26 |
| 27 settingsMenu.advancedOpened = false; | 27 settingsMenu.advancedOpened = false; |
| 28 Polymer.dom.flush(); | 28 Polymer.dom.flush(); |
| 29 assertFalse(settingsMenu.$.advancedPage.opened); | 29 assertFalse(settingsMenu.$.advancedSubmenu.opened); |
| 30 }); | 30 }); |
| 31 | 31 |
| 32 test('tapAdvanced', function() { | 32 test('tapAdvanced', function() { |
| 33 assertFalse(settingsMenu.advancedOpened); | 33 assertFalse(settingsMenu.advancedOpened); |
| 34 | 34 |
| 35 var advancedTrigger = settingsMenu.$$('#advancedPage .menu-trigger'); | 35 var advancedTrigger = settingsMenu.$$('#advancedSubmenu .menu-trigger'); |
| 36 assertTrue(!!advancedTrigger); | 36 assertTrue(!!advancedTrigger); |
| 37 | 37 |
| 38 MockInteractions.tap(advancedTrigger); | 38 MockInteractions.tap(advancedTrigger); |
| 39 Polymer.dom.flush(); | 39 Polymer.dom.flush(); |
| 40 assertTrue(settingsMenu.$.advancedPage.opened); | 40 assertTrue(settingsMenu.$.advancedSubmenu.opened); |
| 41 | 41 |
| 42 MockInteractions.tap(advancedTrigger); | 42 MockInteractions.tap(advancedTrigger); |
| 43 Polymer.dom.flush(); | 43 Polymer.dom.flush(); |
| 44 assertFalse(settingsMenu.$.advancedPage.opened); | 44 assertFalse(settingsMenu.$.advancedSubmenu.opened); |
| 45 }); | 45 }); |
| 46 | 46 |
| 47 test('upAndDownIcons', function() { | 47 test('upAndDownIcons', function() { |
| 48 // There should be different icons for a top level menu being open | 48 // 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. | 49 // vs. being closed. E.g. arrow-drop-up and arrow-drop-down. |
| 50 var ironIconElement = settingsMenu.$.advancedPage.querySelector( | 50 var ironIconElement = settingsMenu.$.advancedSubmenu.querySelector( |
| 51 '.menu-trigger iron-icon'); | 51 '.menu-trigger iron-icon'); |
| 52 assertTrue(!!ironIconElement); | 52 assertTrue(!!ironIconElement); |
| 53 | 53 |
| 54 settingsMenu.advancedOpened = true; | 54 settingsMenu.advancedOpened = true; |
| 55 Polymer.dom.flush(); | 55 Polymer.dom.flush(); |
| 56 var openIcon = ironIconElement.icon; | 56 var openIcon = ironIconElement.icon; |
| 57 assertTrue(!!openIcon); | 57 assertTrue(!!openIcon); |
| 58 | 58 |
| 59 settingsMenu.advancedOpened = false; | 59 settingsMenu.advancedOpened = false; |
| 60 Polymer.dom.flush(); | 60 Polymer.dom.flush(); |
| 61 assertNotEquals(openIcon, ironIconElement.icon); | 61 assertNotEquals(openIcon, ironIconElement.icon); |
| 62 }); | 62 }); |
| 63 | 63 |
| 64 test('openResetSection', function() { | 64 test('openResetSection', function() { |
| 65 settingsMenu.currentRoute = settings.Route.RESET; | 65 settingsMenu.currentRoute = settings.Route.RESET; |
| 66 var advancedPage = settingsMenu.$.advancedPage; | 66 var advancedSubmenu = settingsMenu.$.advancedSubmenu; |
| 67 assertEquals('/reset', | 67 assertEquals('/reset', |
| 68 advancedPage.querySelector('paper-menu').selected); | 68 advancedSubmenu.querySelector('paper-menu').selected); |
| 69 }); | 69 }); |
| 70 | 70 |
| 71 // Test that navigating via the paper menu always clears the current | 71 // Test that navigating via the paper menu always clears the current |
| 72 // search URL parameter. | 72 // search URL parameter. |
| 73 test('clearsUrlSearchParam', function() { | 73 test('clearsUrlSearchParam', function() { |
| 74 var urlParams = new URLSearchParams('search=foo'); | 74 var urlParams = new URLSearchParams('search=foo'); |
| 75 settings.navigateTo(settings.Route.BASIC, urlParams); | 75 settings.navigateTo(settings.Route.BASIC, urlParams); |
| 76 assertEquals( | 76 assertEquals( |
| 77 urlParams.toString(), | 77 urlParams.toString(), |
| 78 settings.getQueryParameters().toString()); | 78 settings.getQueryParameters().toString()); |
| 79 MockInteractions.tap(settingsMenu.$.people); | 79 MockInteractions.tap(settingsMenu.$.people); |
| 80 assertEquals('', settings.getQueryParameters().toString()); | 80 assertEquals('', settings.getQueryParameters().toString()); |
| 81 }); | 81 }); |
| 82 }); | 82 }); |
| 83 } | 83 } |
| 84 | 84 |
| 85 return { | 85 return { |
| 86 registerTests: function() { | 86 registerTests: function() { |
| 87 registerSettingsMenuTest(); | 87 registerSettingsMenuTest(); |
| 88 }, | 88 }, |
| 89 }; | 89 }; |
| 90 }); | 90 }); |
| OLD | NEW |