OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 cr.define('settings_device_page', function() { |
| 6 /** @return {!DevicePageElement} */ |
| 7 function getDevicePage() { |
| 8 var devicePage = document.createElement('settings-device-page'); |
| 9 var page = this.getPage('basic'); |
| 10 var deviceSection = this.getSection(page, 'device'); |
| 11 expectTrue(!!deviceSection); |
| 12 var devicePage = deviceSection.querySelector('settings-device-page'); |
| 13 expectTrue(!!devicePage); |
| 14 return devicePage; |
| 15 }; |
| 16 |
| 17 suite('SettingsDevicePage', function() { |
| 18 /** @type {CrSettingsPrefsElement} */ |
| 19 var settingsPrefs = null; |
| 20 |
| 21 /** @type {settings.FakeSettingsPrivate} */ |
| 22 var fakeApi = null; |
| 23 |
| 24 var fakePrefs = [{ |
| 25 key: 'settings.touchpad.enable_tap_to_click', |
| 26 type: chrome.settingsPrivate.PrefType.BOOLEAN, |
| 27 value: true, |
| 28 }, { |
| 29 key: 'settings.touchpad.enable_tap_dragging', |
| 30 type: chrome.settingsPrivate.PrefType.BOOLEAN, |
| 31 value: true, |
| 32 }, { |
| 33 key: 'settings.touchpad.natural_scroll', |
| 34 type: chrome.settingsPrivate.PrefType.BOOLEAN, |
| 35 value: false, |
| 36 }, { |
| 37 key: 'settings.language.xkb_remap_search_key_to', |
| 38 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 39 value: 0, |
| 40 }, { |
| 41 key: 'settings.language.xkb_remap_control_key_to', |
| 42 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 43 value: 1, |
| 44 }, { |
| 45 key: 'settings.language.xkb_remap_alt_key_to', |
| 46 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 47 value: 2, |
| 48 }, { |
| 49 key: 'settings.language.remap_caps_lock_key_to', |
| 50 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 51 value: 4, |
| 52 }, { |
| 53 key: 'settings.language.remap_diamond_key_to', |
| 54 type: chrome.settingsPrivate.PrefType.NUMBER, |
| 55 value: 3, |
| 56 }, { |
| 57 key: 'settings.language.send_function_keys', |
| 58 type: chrome.settingsPrivate.PrefType.BOOLEAN, |
| 59 value: false, |
| 60 }]; |
| 61 |
| 62 // Initialize <settings-device-page> before each test. |
| 63 setup(function() { |
| 64 CrSettingsPrefs.deferInitialization = true; |
| 65 fakeApi = new settings.FakeSettingsPrivate(fakePrefs); |
| 66 settingsPrefs = document.createElement('settings-prefs'); |
| 67 settingsPrefs.initializeForTesting(fakeApi); |
| 68 return CrSettingsPrefs.initialized; |
| 69 }); |
| 70 |
| 71 test('keyboard subpage', function() { |
| 72 var devicePage = document.createElement('settings-device-page'); |
| 73 devicePage.currentRoute = {page: 'basic', section: '', subpage: []}; |
| 74 devicePage.prefs = settingsPrefs.prefs; |
| 75 |
| 76 // Open the keyboard subpage. |
| 77 var keyboardRow = devicePage.$$('#main #keyboardRow'); |
| 78 assertTrue(!!keyboardRow); |
| 79 MockInteractions.tap(keyboardRow); |
| 80 expectEquals(devicePage.currentRoute.section, 'device'); |
| 81 expectEquals(devicePage.currentRoute.subpage[0], 'keyboard'); |
| 82 var keyboardPage = devicePage.$$('#keyboard settings-keyboard'); |
| 83 assertTrue(!!keyboardPage); |
| 84 |
| 85 // Initially, the optional keys are hidden. |
| 86 expectFalse(!!keyboardPage.$$('#capsLockKey')); |
| 87 expectFalse(!!keyboardPage.$$('#diamondKey')); |
| 88 |
| 89 // Pretend the diamond key is available. |
| 90 var showCapsLock = false; |
| 91 var showDiamondKey = true; |
| 92 cr.webUIListenerCallback( |
| 93 'show-keys-changed', showCapsLock, showDiamondKey); |
| 94 Polymer.dom.flush(); |
| 95 expectFalse(!!keyboardPage.$$('#capsLockKey')); |
| 96 expectTrue(!!keyboardPage.$$('#diamondKey')); |
| 97 |
| 98 // Pretend a Caps Lock key is now available. |
| 99 showCapsLock = true; |
| 100 cr.webUIListenerCallback( |
| 101 'show-keys-changed', showCapsLock, showDiamondKey); |
| 102 Polymer.dom.flush(); |
| 103 expectTrue(!!keyboardPage.$$('#capsLockKey')); |
| 104 expectTrue(!!keyboardPage.$$('#diamondKey')); |
| 105 }); |
| 106 }); |
| 107 }); |
OLD | NEW |