Chromium Code Reviews| 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..465dff4409a3a804d5713247f2d7c3d607a0ffb4 |
| --- /dev/null |
| +++ b/chrome/test/data/webui/settings/edit_dictionary_page_test.js |
| @@ -0,0 +1,112 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
|
dpapad
2017/02/23 00:32:03
2017
scottchen
2017/02/23 01:00:17
Done.
|
| +// 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); |
| + }); |
| + |
| +}); |