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

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 fix Created 4 years, 6 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('device_page_tests', function() { 5 cr.define('device_page_tests', function() {
6 /** @enum {string} */ 6 /** @enum {string} */
7 var TestNames = { 7 var TestNames = {
8 Display: 'display', 8 Display: 'display',
9 Keyboard: 'keyboard', 9 Keyboard: 'keyboard',
10 Touchpad: 'touchpad', 10 Touchpad: 'touchpad',
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 key: 'prefs.settings.language.xkb_auto_repeat_enabled_r2', 91 key: 'prefs.settings.language.xkb_auto_repeat_enabled_r2',
92 type: chrome.settingsPrivate.PrefType.BOOLEAN, 92 type: chrome.settingsPrivate.PrefType.BOOLEAN,
93 value: true, 93 value: true,
94 }, 94 },
95 xkb_auto_repeat_delay_r2: { 95 xkb_auto_repeat_delay_r2: {
96 key: 'settings.language.xkb_auto_repeat_delay_r2', 96 key: 'settings.language.xkb_auto_repeat_delay_r2',
97 type: chrome.settingsPrivate.PrefType.NUMBER, 97 type: chrome.settingsPrivate.PrefType.NUMBER,
98 value: 500, 98 value: 500,
99 }, 99 },
100 xkb_auto_repeat_interval_r2: { 100 xkb_auto_repeat_interval_r2: {
101 key: 'settings.language.xkb_auto_repeat_delay_r2', 101 key: 'settings.language.xkb_auto_repeat_interval_r2',
102 type: chrome.settingsPrivate.PrefType.NUMBER, 102 type: chrome.settingsPrivate.PrefType.NUMBER,
103 value: 500, 103 value: 500,
104 }, 104 },
105 } 105 }
106 } 106 }
107 }; 107 };
108 108
109 /** @type {!SettingsDevicePage|undefined} */ 109 /** @type {!SettingsDevicePage|undefined} */
110 var devicePage; 110 var devicePage;
111 111
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 199
200 MockInteractions.pressEnter(naturalScrollOn); 200 MockInteractions.pressEnter(naturalScrollOn);
201 Polymer.Base.async(function() { 201 Polymer.Base.async(function() {
202 expectNaturalScrollValue(touchpadPage, true); 202 expectNaturalScrollValue(touchpadPage, true);
203 done(); 203 done();
204 }, 1); 204 }, 1);
205 }, 1); 205 }, 1);
206 }); 206 });
207 }); 207 });
208 208
209 suite(assert(TestNames.Keyboard), function() { 209 test(assert(TestNames.Keyboard), function() {
210 test('keyboard subpage', function() { 210 // Open the keyboard subpage.
211 // Open the keyboard subpage. 211 return showAndGetDeviceSubpage('keyboard').then(function(keyboardPage) {
212 return showAndGetDeviceSubpage('keyboard').then(function(keyboardPage) { 212 // Initially, the optional keys are hidden.
213 // Initially, the optional keys are hidden. 213 expectFalse(!!keyboardPage.$$('#capsLockKey'));
214 expectFalse(!!keyboardPage.$$('#capsLockKey')); 214 expectFalse(!!keyboardPage.$$('#diamondKey'));
215 expectFalse(!!keyboardPage.$$('#diamondKey'));
216 215
217 // Pretend the diamond key is available. 216 // Pretend the diamond key is available.
218 var showCapsLock = false; 217 var showCapsLock = false;
219 var showDiamondKey = true; 218 var showDiamondKey = true;
220 cr.webUIListenerCallback( 219 cr.webUIListenerCallback(
221 'show-keys-changed', showCapsLock, showDiamondKey); 220 'show-keys-changed', showCapsLock, showDiamondKey);
222 Polymer.dom.flush(); 221 Polymer.dom.flush();
223 expectFalse(!!keyboardPage.$$('#capsLockKey')); 222 expectFalse(!!keyboardPage.$$('#capsLockKey'));
224 expectTrue(!!keyboardPage.$$('#diamondKey')); 223 expectTrue(!!keyboardPage.$$('#diamondKey'));
225 224
226 // Pretend a Caps Lock key is now available. 225 // Pretend a Caps Lock key is now available.
227 showCapsLock = true; 226 showCapsLock = true;
228 cr.webUIListenerCallback( 227 cr.webUIListenerCallback(
229 'show-keys-changed', showCapsLock, showDiamondKey); 228 'show-keys-changed', showCapsLock, showDiamondKey);
230 Polymer.dom.flush(); 229 Polymer.dom.flush();
231 expectTrue(!!keyboardPage.$$('#capsLockKey')); 230 expectTrue(!!keyboardPage.$$('#capsLockKey'));
232 expectTrue(!!keyboardPage.$$('#diamondKey')); 231 expectTrue(!!keyboardPage.$$('#diamondKey'));
233 232
234 var collapse = keyboardPage.$$('iron-collapse'); 233 var collapse = keyboardPage.$$('iron-collapse');
235 assertTrue(!!collapse); 234 assertTrue(!!collapse);
236 expectTrue(collapse.opened); 235 expectTrue(collapse.opened);
237 236
238 // Values are based on indices of auto-repeat options in keyboard.js. 237 expectEquals(500, keyboardPage.$.delaySlider.value);
239 expectEquals(keyboardPage.$.delaySlider.immediateValue, 3); 238 expectEquals(500, keyboardPage.$.repeatRateSlider.value);
240 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 2);
241 239
242 // Test interaction with slider. 240 // Test interaction with the cr-slider's underlying paper-slider.
243 MockInteractions.pressAndReleaseKeyOn( 241 MockInteractions.pressAndReleaseKeyOn(
244 keyboardPage.$.delaySlider, 37 /* left */); 242 keyboardPage.$.delaySlider.$.slider, 37 /* left */);
245 MockInteractions.pressAndReleaseKeyOn( 243 MockInteractions.pressAndReleaseKeyOn(
246 keyboardPage.$.repeatRateSlider, 39 /* right */); 244 keyboardPage.$.repeatRateSlider.$.slider, 39 /* right */);
247 expectEquals( 245 expectEquals(
248 fakePrefs.settings.language.xkb_auto_repeat_delay_r2.value, 1000); 246 1000, fakePrefs.settings.language.xkb_auto_repeat_delay_r2.value);
249 expectEquals( 247 expectEquals(
250 fakePrefs.settings.language.xkb_auto_repeat_interval_r2.value, 248 300,
251 300); 249 fakePrefs.settings.language.xkb_auto_repeat_interval_r2.value);
252 250
253 // Test sliders change when prefs change. 251 // Test sliders change when prefs change.
254 devicePage.set( 252 devicePage.set(
255 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 1500); 253 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 1500);
256 expectEquals(keyboardPage.$.delaySlider.immediateValue, 1); 254 expectEquals(1500, keyboardPage.$.delaySlider.value);
257 devicePage.set( 255 devicePage.set(
258 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 256 'prefs.settings.language.xkb_auto_repeat_interval_r2.value',
259 2000); 257 2000);
260 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 0); 258 expectEquals(2000, keyboardPage.$.repeatRateSlider.value);
261 259
262 // Test sliders round to nearest value when prefs change. 260 // Test sliders round to nearest value when prefs change.
263 devicePage.set( 261 devicePage.set(
264 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 600); 262 'prefs.settings.language.xkb_auto_repeat_delay_r2.value', 600);
265 expectEquals(keyboardPage.$.delaySlider.immediateValue, 3 /* 500 */); 263 expectEquals(600, keyboardPage.$.delaySlider.value);
266 devicePage.set( 264 devicePage.set(
267 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 45); 265 'prefs.settings.language.xkb_auto_repeat_interval_r2.value', 45);
268 expectEquals(keyboardPage.$.repeatRateSlider.immediateValue, 266 expectEquals(45, keyboardPage.$.repeatRateSlider.value);
269 6 /* 50 */);
270 267
271 devicePage.set( 268 devicePage.set(
272 'prefs.settings.language.xkb_auto_repeat_enabled_r2.value', 269 'prefs.settings.language.xkb_auto_repeat_enabled_r2.value',
273 false); 270 false);
274 expectFalse(collapse.opened); 271 expectFalse(collapse.opened);
275 272
276 // Test keyboard shortcut overlay button. 273 // Test keyboard shortcut overlay button.
277 var node = keyboardPage.$$('#keyboardOverlay'); 274 MockInteractions.tap(keyboardPage.$$('#keyboardOverlay'));
278 MockInteractions.tap(keyboardPage.$$('#keyboardOverlay')); 275 expectEquals(
279 expectEquals( 276 1,
280 1, 277 settings.DevicePageBrowserProxyImpl.getInstance()
281 settings.DevicePageBrowserProxyImpl.getInstance() 278 .keyboardShortcutsOverlayShown_);
282 .keyboardShortcutsOverlayShown_);
283 });
284 });
285
286 // Test edge cases for slider rounding logic.
287 // TODO(michaelpg): Move this test to settings-slider tests once that
288 // element is created.
289 test('keyboard sliders', function() {
290 return showAndGetDeviceSubpage('keyboard').then(function(keyboardPage) {
291 var testArray = [80, 20, 350, 1000, 200, 100];
292 var testFindNearestIndex = function(expectedIndex, value) {
293 expectEquals(
294 expectedIndex,
295 keyboardPage.findNearestIndex_(testArray, value));
296 };
297 testFindNearestIndex(0, 51);
298 testFindNearestIndex(0, 80);
299 testFindNearestIndex(0, 89);
300 testFindNearestIndex(1, -100);
301 testFindNearestIndex(1, 20);
302 testFindNearestIndex(1, 49);
303 testFindNearestIndex(2, 400);
304 testFindNearestIndex(2, 350);
305 testFindNearestIndex(2, 300);
306 testFindNearestIndex(3, 200000);
307 testFindNearestIndex(3, 1000);
308 testFindNearestIndex(3, 700);
309 testFindNearestIndex(4, 220);
310 testFindNearestIndex(4, 200);
311 testFindNearestIndex(4, 151);
312 testFindNearestIndex(5, 149);
313 testFindNearestIndex(5, 100);
314 testFindNearestIndex(5, 91);
315 });
316 }); 279 });
317 }); 280 });
318 281
319 test(assert(TestNames.Display), function() { 282 test(assert(TestNames.Display), function() {
283 // Open the display subpage.
284 var displayPage = showAndGetDeviceSubpage('display');
285 assertTrue(!!displayPage);
286
320 var addDisplay = function(n) { 287 var addDisplay = function(n) {
321 var display = { 288 var display = {
322 id: 'fakeDisplayId' + n, 289 id: 'fakeDisplayId' + n,
323 name: 'fakeDisplayName' + n, 290 name: 'fakeDisplayName' + n,
324 mirroring: '', 291 mirroring: '',
325 isPrimary: n == 1, 292 isPrimary: n == 1,
326 rotation: 0, 293 rotation: 0,
327 modes: [], 294 modes: [],
328 bounds: { 295 bounds: {
329 left: 0, 296 left: 0,
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 expectTrue(displayPage.showMirror_(displayPage.displays)); 388 expectTrue(displayPage.showMirror_(displayPage.displays));
422 expectTrue(displayPage.isMirrored_(displayPage.displays)); 389 expectTrue(displayPage.isMirrored_(displayPage.displays));
423 }); 390 });
424 }); 391 });
425 }); 392 });
426 393
427 return { 394 return {
428 TestNames: TestNames 395 TestNames: TestNames
429 }; 396 };
430 }); 397 });
OLDNEW
« no previous file with comments | « chrome/test/data/webui/cr_elements_browsertest.js ('k') | ui/webui/resources/cr_elements/compiled_resources2.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698