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