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

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

Issue 1967913002: Material WebUI: cr-slider element for intelligent range mapping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@KeyboardFinish
Patch Set: rebase Created 4 years, 7 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 cr.define('settings_device_page', function() { 5 cr.define('settings_device_page', function() {
6 /** 6 /**
7 * @constructor 7 * @constructor
8 * @implements {settings.DevicePageBrowserProxy} 8 * @implements {settings.DevicePageBrowserProxy}
9 */ 9 */
10 function TestDevicePageBrowserProxy() { 10 function TestDevicePageBrowserProxy() {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 key: 'prefs.settings.language.xkb_auto_repeat_enabled_r2', 84 key: 'prefs.settings.language.xkb_auto_repeat_enabled_r2',
85 type: chrome.settingsPrivate.PrefType.BOOLEAN, 85 type: chrome.settingsPrivate.PrefType.BOOLEAN,
86 value: true, 86 value: true,
87 }, 87 },
88 xkb_auto_repeat_delay_r2: { 88 xkb_auto_repeat_delay_r2: {
89 key: 'settings.language.xkb_auto_repeat_delay_r2', 89 key: 'settings.language.xkb_auto_repeat_delay_r2',
90 type: chrome.settingsPrivate.PrefType.NUMBER, 90 type: chrome.settingsPrivate.PrefType.NUMBER,
91 value: 500, 91 value: 500,
92 }, 92 },
93 xkb_auto_repeat_interval_r2: { 93 xkb_auto_repeat_interval_r2: {
94 key: 'settings.language.xkb_auto_repeat_delay_r2', 94 key: 'settings.language.xkb_auto_repeat_interval_r2',
95 type: chrome.settingsPrivate.PrefType.NUMBER, 95 type: chrome.settingsPrivate.PrefType.NUMBER,
96 value: 500, 96 value: 500,
97 }, 97 },
98 } 98 }
99 } 99 }
100 }; 100 };
101 101
102 /** @type {!SettingsDevicePage|undefined} */ 102 /** @type {!SettingsDevicePage|undefined} */
103 var devicePage; 103 var devicePage;
104 104
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 cr.webUIListenerCallback( 209 cr.webUIListenerCallback(
210 'show-keys-changed', showCapsLock, showDiamondKey); 210 'show-keys-changed', showCapsLock, showDiamondKey);
211 Polymer.dom.flush(); 211 Polymer.dom.flush();
212 expectTrue(!!keyboardPage.$$('#capsLockKey')); 212 expectTrue(!!keyboardPage.$$('#capsLockKey'));
213 expectTrue(!!keyboardPage.$$('#diamondKey')); 213 expectTrue(!!keyboardPage.$$('#diamondKey'));
214 214
215 var collapse = keyboardPage.$$('iron-collapse'); 215 var collapse = keyboardPage.$$('iron-collapse');
216 assertTrue(!!collapse); 216 assertTrue(!!collapse);
217 expectTrue(collapse.opened); 217 expectTrue(collapse.opened);
218 218
219 // Values are based on indices of auto-repeat options in keyboard.js. 219 expectEquals(500, keyboardPage.$.delaySlider.value);
220 expectEquals(keyboardPage.$.delaySlider.immediateValue, 3); 220 expectEquals(500, keyboardPage.$.repeatRateSlider.value);
221 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 2);
222 221
223 // Test interaction with slider. 222 // Test interaction with the cr-slider's underlying paper-slider.
224 MockInteractions.pressAndReleaseKeyOn( 223 MockInteractions.pressAndReleaseKeyOn(
225 keyboardPage.$.delaySlider, 37 /* left */); 224 keyboardPage.$.delaySlider.$.slider, 37 /* left */);
226 MockInteractions.pressAndReleaseKeyOn( 225 MockInteractions.pressAndReleaseKeyOn(
227 keyboardPage.$.repeatRateSlider, 39 /* right */); 226 keyboardPage.$.repeatRateSlider.$.slider, 39 /* right */);
228 expectEquals( 227 expectEquals(
229 fakePrefs.settings.language.xkb_auto_repeat_delay_r2.value, 1000); 228 1000, fakePrefs.settings.language.xkb_auto_repeat_delay_r2.value);
230 expectEquals( 229 expectEquals(
231 fakePrefs.settings.language.xkb_auto_repeat_interval_r2.value, 230 300,
232 300); 231 fakePrefs.settings.language.xkb_auto_repeat_interval_r2.value);
233 232
234 // Test sliders change when prefs change. 233 // Test sliders change when prefs change.
235 devicePage.set( 234 devicePage.set(
236 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 1500); 235 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 1500);
237 expectEquals(keyboardPage.$.delaySlider.immediateValue, 1); 236 expectEquals(1500, keyboardPage.$.delaySlider.value);
238 devicePage.set( 237 devicePage.set(
239 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 2000); 238 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 2000);
240 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 0); 239 expectEquals(2000, keyboardPage.$.repeatRateSlider.value);
241 240
242 // Test sliders round to nearest value when prefs change. 241 // Test sliders round to nearest value when prefs change.
243 devicePage.set( 242 devicePage.set(
244 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 600); 243 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 600);
245 expectEquals(keyboardPage.$.delaySlider.immediateValue, 3 /* 500 */); 244 expectEquals(600, keyboardPage.$.delaySlider.value);
246 devicePage.set( 245 devicePage.set(
247 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 45); 246 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 45);
248 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 6 /* 50 */); 247 expectEquals(45, keyboardPage.$.repeatRateSlider.value);
249 248
250 devicePage.set( 249 devicePage.set(
251 'prefs.settings.language.xkb_auto_repeat_enabled_r2.value', false); 250 'prefs.settings.language.xkb_auto_repeat_enabled_r2.value', false);
252 expectFalse(collapse.opened); 251 expectFalse(collapse.opened);
253 252
254 // Test keyboard shortcut overlay button. 253 // Test keyboard shortcut overlay button.
255 MockInteractions.tap(keyboardPage.$$('#keyboardOverlay')); 254 MockInteractions.tap(keyboardPage.$$('#keyboardOverlay'));
256 expectEquals( 255 expectEquals(
257 1, 256 1,
258 settings.DevicePageBrowserProxyImpl.getInstance() 257 settings.DevicePageBrowserProxyImpl.getInstance()
259 .keyboardShortcutsOverlayShown_); 258 .keyboardShortcutsOverlayShown_);
260 }); 259 });
261 260
262 // Test more edge cases for slider rounding logic.
263 // TODO(michaelpg): Move this test to settings-slider tests once that
264 // element is created.
265 test('keyboard sliders', function() {
266 var keyboardPage = showAndGetDeviceSubpage('keyboard');
267 assertTrue(!!keyboardPage);
268
269 var testArray = [80, 20, 350, 1000, 200, 100];
270 var testFindNearestIndex = function(expectedIndex, value) {
271 expectEquals(
272 expectedIndex, keyboardPage.findNearestIndex_(testArray, value));
273 };
274 testFindNearestIndex(0, 51);
275 testFindNearestIndex(0, 80);
276 testFindNearestIndex(0, 89);
277 testFindNearestIndex(1, -100);
278 testFindNearestIndex(1, 20);
279 testFindNearestIndex(1, 49);
280 testFindNearestIndex(2, 400);
281 testFindNearestIndex(2, 350);
282 testFindNearestIndex(2, 300);
283 testFindNearestIndex(3, 200000);
284 testFindNearestIndex(3, 1000);
285 testFindNearestIndex(3, 700);
286 testFindNearestIndex(4, 220);
287 testFindNearestIndex(4, 200);
288 testFindNearestIndex(4, 151);
289 testFindNearestIndex(5, 149);
290 testFindNearestIndex(5, 100);
291 testFindNearestIndex(5, 91);
292 });
293
294 test('display subpage', function() { 261 test('display subpage', function() {
295 // Open the display subpage. 262 // Open the display subpage.
296 var displayPage = showAndGetDeviceSubpage('display'); 263 var displayPage = showAndGetDeviceSubpage('display');
297 assertTrue(!!displayPage); 264 assertTrue(!!displayPage);
298 265
299 var addDisplay = function(n) { 266 var addDisplay = function(n) {
300 var display = { 267 var display = {
301 id: 'fakeDisplayId' + n, 268 id: 'fakeDisplayId' + n,
302 name: 'fakeDisplayName' + n, 269 name: 'fakeDisplayName' + n,
303 mirroring: '', 270 mirroring: '',
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 expectTrue(displayPage.showMirror_(displayPage.displays)); 344 expectTrue(displayPage.showMirror_(displayPage.displays));
378 expectTrue(displayPage.isMirrored_(displayPage.displays)); 345 expectTrue(displayPage.isMirrored_(displayPage.displays));
379 }); 346 });
380 }); 347 });
381 }); 348 });
382 }); 349 });
383 }); 350 });
384 }); 351 });
385 }); 352 });
386 }); 353 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698