| 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 |