| 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-languages', function() { | 5 cr.define('settings-languages', function() { |
| 6 /** | 6 /** |
| 7 * Data-binds two Polymer properties using the property-changed events and | 7 * Data-binds two Polymer properties using the property-changed events and |
| 8 * set/notifyPath API. Useful for testing components which would normally be | 8 * set/notifyPath API. Useful for testing components which would normally be |
| 9 * used together. | 9 * used together. |
| 10 * @param {!HTMLElement} el1 | 10 * @param {!HTMLElement} el1 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 var languageHelper; | 66 var languageHelper; |
| 67 var languageSettingsPrivate; | 67 var languageSettingsPrivate; |
| 68 | 68 |
| 69 suiteSetup(function() { | 69 suiteSetup(function() { |
| 70 CrSettingsPrefs.deferInitialization = true; | 70 CrSettingsPrefs.deferInitialization = true; |
| 71 }); | 71 }); |
| 72 | 72 |
| 73 setup(function() { | 73 setup(function() { |
| 74 var settingsPrefs = document.createElement('settings-prefs'); | 74 var settingsPrefs = document.createElement('settings-prefs'); |
| 75 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); | 75 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); |
| 76 settingsPrefs.initializeForTesting(settingsPrivate); | 76 settingsPrefs.initialize(settingsPrivate); |
| 77 | 77 |
| 78 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); | 78 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); |
| 79 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); | 79 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); |
| 80 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; | 80 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; |
| 81 | 81 |
| 82 languageHelper = document.createElement('settings-languages'); | 82 languageHelper = document.createElement('settings-languages'); |
| 83 | 83 |
| 84 // Prefs would normally be data-bound to settings-languages. | 84 // Prefs would normally be data-bound to settings-languages. |
| 85 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); | 85 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); |
| 86 | 86 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 110 | 110 |
| 111 languageHelper.enableLanguage('en-CA'); | 111 languageHelper.enableLanguage('en-CA'); |
| 112 assertTrue(languageHelper.isLanguageEnabled('en-CA')); | 112 assertTrue(languageHelper.isLanguageEnabled('en-CA')); |
| 113 languageHelper.disableLanguage('sw'); | 113 languageHelper.disableLanguage('sw'); |
| 114 assertFalse(languageHelper.isLanguageEnabled('sw')); | 114 assertFalse(languageHelper.isLanguageEnabled('sw')); |
| 115 | 115 |
| 116 // TODO(michaelpg): Test other modifications. | 116 // TODO(michaelpg): Test other modifications. |
| 117 }); | 117 }); |
| 118 | 118 |
| 119 test('reorder languages', function() { | 119 test('reorder languages', function() { |
| 120 languageHelper.enableLanguage('sw'); | 120 languageHelper.enableLanguage('en-CA'); |
| 121 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); |
| 122 assertEquals('sw', languageHelper.languages.enabled[1].language.code); |
| 123 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); |
| 124 |
| 125 // Can move a language up. |
| 126 languageHelper.moveLanguage('en-CA', -1); |
| 121 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); | 127 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); |
| 122 assertEquals('en-CA', languageHelper.languages.enabled[1].language.code); | 128 assertEquals('en-CA', languageHelper.languages.enabled[1].language.code); |
| 123 assertEquals('sw', languageHelper.languages.enabled[2].language.code); | 129 assertEquals('sw', languageHelper.languages.enabled[2].language.code); |
| 124 | 130 |
| 125 // Can move a language up. | |
| 126 languageHelper.moveLanguage('sw', -1); | |
| 127 assertEquals('en-US', languageHelper.languages.enabled[0].language.code); | |
| 128 assertEquals('sw', languageHelper.languages.enabled[1].language.code); | |
| 129 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); | |
| 130 | |
| 131 // Can move a language down. | 131 // Can move a language down. |
| 132 languageHelper.moveLanguage('en-US', 1); | 132 languageHelper.moveLanguage('en-US', 1); |
| 133 assertEquals('sw', languageHelper.languages.enabled[0].language.code); | 133 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); |
| 134 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); | 134 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); |
| 135 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); | 135 assertEquals('sw', languageHelper.languages.enabled[2].language.code); |
| 136 | 136 |
| 137 // Moving the first language up has no effect. | 137 // Moving the first language up has no effect. |
| 138 languageHelper.moveLanguage('sw', -1); | 138 languageHelper.moveLanguage('en-CA', -1); |
| 139 assertEquals('sw', languageHelper.languages.enabled[0].language.code); | 139 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); |
| 140 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); | 140 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); |
| 141 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); | 141 assertEquals('sw', languageHelper.languages.enabled[2].language.code); |
| 142 | 142 |
| 143 // Moving the last language down has no effect. | 143 // Moving the last language down has no effect. |
| 144 languageHelper.moveLanguage('en-CA', 1); | 144 languageHelper.moveLanguage('sw', 1); |
| 145 assertEquals('sw', languageHelper.languages.enabled[0].language.code); | 145 assertEquals('en-CA', languageHelper.languages.enabled[0].language.code); |
| 146 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); | 146 assertEquals('en-US', languageHelper.languages.enabled[1].language.code); |
| 147 assertEquals('en-CA', languageHelper.languages.enabled[2].language.code); | 147 assertEquals('sw', languageHelper.languages.enabled[2].language.code); |
| 148 }); | 148 }); |
| 149 | 149 |
| 150 if (cr.isChromeOS) { | 150 if (cr.isChromeOS) { |
| 151 test('modifying input methods', function() { | 151 test('modifying input methods', function() { |
| 152 assertEquals(2, languageHelper.languages.inputMethods.enabled.length); | 152 assertEquals(2, languageHelper.languages.inputMethods.enabled.length); |
| 153 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US'); | 153 var inputMethods = languageHelper.getInputMethodsForLanguage('en-US'); |
| 154 assertEquals(3, inputMethods.length); | 154 assertEquals(3, inputMethods.length); |
| 155 | 155 |
| 156 // We can remove one input method. | 156 // We can remove one input method. |
| 157 var dvorak = | 157 var dvorak = |
| (...skipping 19 matching lines...) Expand all Loading... |
| 177 // The US Swahili keyboard should still be enabled, because it supports | 177 // The US Swahili keyboard should still be enabled, because it supports |
| 178 // English which is still enabled. | 178 // English which is still enabled. |
| 179 assertTrue(languageHelper.languages.inputMethods.enabled.some( | 179 assertTrue(languageHelper.languages.inputMethods.enabled.some( |
| 180 function(inputMethod) { | 180 function(inputMethod) { |
| 181 return inputMethod.id == swUS; | 181 return inputMethod.id == swUS; |
| 182 })); | 182 })); |
| 183 }); | 183 }); |
| 184 } | 184 } |
| 185 }); | 185 }); |
| 186 }); | 186 }); |
| OLD | NEW |