| 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);
|
| + });
|
| +
|
| +});
|
|
|