Index: chrome/test/data/webui/settings/edit_dictionary_page_test.js |
diff --git a/chrome/test/data/webui/settings/edit_dictionary_page_test.js b/chrome/test/data/webui/settings/edit_dictionary_page_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e9bcc8ea04843f5c9f5ea4a5178faef625500beb |
--- /dev/null |
+++ b/chrome/test/data/webui/settings/edit_dictionary_page_test.js |
@@ -0,0 +1,112 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+suite('settings-edit-dictionary-page', function() { |
+ function getFakePrefs() { |
+ var fakePrefs = [{ |
+ key: 'intl.app_locale', |
+ type: chrome.settingsPrivate.PrefType.STRING, |
+ value: 'en-US', |
+ }, { |
+ key: 'intl.accept_languages', |
+ type: chrome.settingsPrivate.PrefType.STRING, |
+ value: 'en-US,sw', |
+ }, { |
+ key: 'spellcheck.dictionaries', |
+ type: chrome.settingsPrivate.PrefType.LIST, |
+ value: ['en-US'], |
+ }, { |
+ key: 'translate_blocked_languages', |
+ type: chrome.settingsPrivate.PrefType.LIST, |
+ value: ['en-US'], |
+ }]; |
+ if (cr.isChromeOS) { |
+ fakePrefs.push({ |
+ key: 'settings.language.preferred_languages', |
+ type: chrome.settingsPrivate.PrefType.STRING, |
+ value: 'en-US,sw', |
+ }); |
+ fakePrefs.push({ |
+ key: 'settings.language.preload_engines', |
+ type: chrome.settingsPrivate.PrefType.STRING, |
+ value: '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us::eng,' + |
+ '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us:dvorak:eng', |
+ }); |
+ fakePrefs.push({ |
+ key: 'settings.language.enabled_extension_imes', |
+ type: chrome.settingsPrivate.PrefType.STRING, |
+ value: '', |
+ }); |
+ } |
+ return fakePrefs; |
+ } |
+ |
+ /** @type {?SettingsEditDictionaryPageElement} */ |
+ var editDictPage; |
+ /** @type {?FakeLanguageSettingsPrivate} */ |
+ var languageSettingsPrivate; |
+ /** @type {?FakeSettingsPrivate} */ |
+ var settingsPrefs; |
+ |
+ suiteSetup(function() { |
+ CrSettingsPrefs.deferInitialization = true; |
+ }); |
+ |
+ setup(function() { |
+ PolymerTest.clearBody(); |
+ settingsPrefs = document.createElement('settings-prefs'); |
+ var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); |
+ settingsPrefs.initialize(settingsPrivate); |
+ |
+ languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); |
+ languageSettingsPrivate.setSettingsPrefs(settingsPrefs); |
+ settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; |
+ |
+ editDictPage = document.createElement('settings-edit-dictionary-page'); |
+ |
+ // Prefs would normally be data-bound to settings-languages. |
+ document.body.appendChild(editDictPage); |
+ }); |
+ |
+ teardown(function(){ |
+ editDictPage.remove(); |
+ }); |
+ |
+ test('add word validation', function() { |
+ // Check addWord enable/disable logic |
+ var addWordButton = editDictPage.$.addWord; |
+ assertTrue(!!addWordButton); |
+ editDictPage.$.newWord.value = ''; |
+ assertTrue(addWordButton.disabled); |
+ editDictPage.$.newWord.value = 'valid word'; |
+ assertFalse(addWordButton.disabled); |
+ assertFalse(window.getComputedStyle(addWordButton)['pointer-events'] === |
+ 'none'); // Make sure add-word button actually clickable. |
+ }); |
+ |
+ test('spellcheck edit dictionary page message when empty', function() { |
+ assertTrue(!!editDictPage); |
+ return languageSettingsPrivate.whenCalled('getSpellcheckWords').then( |
+ function() { |
+ Polymer.dom.flush(); |
+ |
+ assertTrue(!!editDictPage.$$('#noWordsLabel')); |
+ assertFalse(!!editDictPage.$$('#list')); |
+ }); |
+ }); |
+ |
+ test('spellcheck edit dictionary page list has words', function() { |
+ var addWordButton = editDictPage.$$('#addWord'); |
+ editDictPage.$.newWord.value = "valid word"; |
+ MockInteractions.tap(addWordButton); |
+ editDictPage.$.newWord.value = "valid word2"; |
+ MockInteractions.tap(addWordButton); |
+ Polymer.dom.flush(); |
+ |
+ assertFalse(!!editDictPage.$$('#noWordsLabel')); |
+ assertTrue(!!editDictPage.$$('#list')); |
+ assertEquals(2, editDictPage.$$('#list').items.length); |
+ }); |
+ |
+}); |