Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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. | |
| 4 | |
| 5 /** @fileoverview Suite of tests for settings-dropdown-menu. */ | |
| 6 cr.define('settings_dropdown_menu', function() { | |
| 7 function registerTests() { | |
| 8 suite('SettingsDropdownMenu', function() { | |
| 9 // Import settings_dropdown_menu.html before running suite. | |
| 10 suiteSetup(function() { | |
| 11 return Promise.all([ | |
| 12 PolymerTest.importHtml('chrome://md-settings/i18n_setup.html'), | |
| 13 PolymerTest.importHtml( | |
| 14 'chrome://md-settings/controls/settings_dropdown_menu.html'), | |
| 15 ]); | |
| 16 }); | |
| 17 | |
| 18 var getSelectable = function(dropdownMenu) { | |
| 19 return dropdownMenu.$$('paper-menu'); | |
| 20 }; | |
| 21 | |
| 22 setup(PolymerTest.clearBody); | |
| 23 | |
| 24 test('with number options', function testNumberOptions(done) { | |
| 25 var dropdown = document.createElement('settings-dropdown-menu'); | |
| 26 | |
| 27 dropdown.pref = { | |
| 28 key: 'test.number', | |
| 29 type: chrome.settingsPrivate.PrefType.NUMBER, | |
| 30 value: 100, | |
| 31 }; | |
| 32 dropdown.menuOptions = [[100, 'Option 100'], [200, 'Option 200'], | |
| 33 [300, 'Option 300'], [400, 'Option 400']]; | |
| 34 document.body.appendChild(dropdown); | |
| 35 | |
| 36 setTimeout(function() { | |
| 37 // Initially selected item. | |
| 38 var selectedItem = getSelectable(dropdown).selectedItem; | |
|
stevenjb
2015/11/17 18:19:23
We call getSelectable(dropdown) a lot, any reason
michaelpg
2015/11/18 01:08:39
Not really. I changed setup to create the dropdown
| |
| 39 assertEquals('Option 100', selectedItem.textContent.trim()); | |
| 40 | |
| 41 // Selecting an item updates the pref. | |
| 42 getSelectable(dropdown).selected = '200'; | |
| 43 assertEquals(200, dropdown.pref.value); | |
| 44 | |
| 45 // Updating the pref selects an item. | |
| 46 dropdown.set('pref.value', 400); | |
| 47 assertEquals('400', getSelectable(dropdown).selected); | |
| 48 done(); | |
| 49 }); | |
| 50 }); | |
| 51 | |
| 52 test('with string options', function testStringOptions(done) { | |
| 53 var dropdown = document.createElement('settings-dropdown-menu'); | |
|
stevenjb
2015/11/17 18:19:23
We seem to do this in every test, can we do it in
michaelpg
2015/11/18 01:08:39
Done.
| |
| 54 dropdown.pref = { | |
| 55 key: 'test.string', | |
| 56 type: chrome.settingsPrivate.PrefType.STRING, | |
| 57 value: 'c', | |
| 58 }; | |
| 59 dropdown.menuOptions = | |
| 60 [['a', 'AAA'], ['b', 'BBB'], ['c', 'CCC'], ['d', 'DDD']]; | |
| 61 | |
| 62 document.body.appendChild(dropdown); | |
| 63 | |
| 64 setTimeout(function() { | |
| 65 // Initially selected item. | |
| 66 var selectedItem = getSelectable(dropdown).selectedItem; | |
| 67 assertEquals('CCC', selectedItem.textContent.trim()); | |
| 68 | |
| 69 // Selecting an item updates the pref. | |
| 70 getSelectable(dropdown).selected = 'a'; | |
| 71 assertEquals('a', dropdown.pref.value); | |
| 72 | |
| 73 // Updating the pref selects an item. | |
| 74 dropdown.set('pref.value', 'b'); | |
| 75 assertEquals('b', getSelectable(dropdown).selected); | |
| 76 done(); | |
| 77 }); | |
| 78 }); | |
| 79 | |
| 80 test('with custom value', function testCustomValue(done) { | |
| 81 var dropdown = document.createElement('settings-dropdown-menu'); | |
| 82 dropdown.pref = { | |
| 83 key: 'test.string', | |
| 84 type: chrome.settingsPrivate.PrefType.STRING, | |
| 85 value: 'f', | |
| 86 }; | |
| 87 dropdown.menuOptions = | |
| 88 [['a', 'AAA'], ['b', 'BBB'], ['c', 'CCC'], ['d', 'DDD']]; | |
| 89 | |
| 90 document.body.appendChild(dropdown); | |
| 91 | |
| 92 setTimeout(function() { | |
| 93 // "Custom" initially selected. | |
| 94 assertEquals(dropdown.notFoundValue_, | |
| 95 getSelectable(dropdown).selected); | |
| 96 // Pref should not have changed. | |
| 97 assertEquals('f', dropdown.pref.value); | |
| 98 done(); | |
| 99 }); | |
| 100 }); | |
| 101 }); | |
| 102 } | |
| 103 | |
| 104 return { | |
| 105 registerTests: registerTests, | |
| 106 }; | |
| 107 }); | |
| OLD | NEW |