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

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

Issue 1422023012: MD Settings: Simplify settings-dropdown-menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix updateSelected Created 5 years, 1 month 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
(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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698