| 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 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 }); |
| OLD | NEW |