Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4262)

Unified Diff: chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js

Issue 1156473007: Enables the user to select multiple languages for spellchecking (UI) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed some bugs and handled the spelling service. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js
diff --git a/chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js b/chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2f2c97b4df0eba6d56ff64d4742a4e6f56288b8
--- /dev/null
+++ b/chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js
@@ -0,0 +1,129 @@
+// Copyright 2015 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.
+
+GEN('#include "chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.h"');
+
+/**
+ * Test C++ fixture for Language Options WebUI testing.
+ * @constructor
+ * @extends {testing.Test}
+ */
+function MultilanguageOptionsWebUIBrowserTest() {}
+
+MultilanguageOptionsWebUIBrowserTest.prototype = {
+ __proto__: testing.Test.prototype,
+
+ /**
+ * Browse to the language options page & call our preLoad().
+ */
+ browsePreload: 'chrome://settings-frame/languages/',
+
+ /** @override */
+ typedefCppFixture: 'MultilanguageOptionsWebUIBrowserTest',
+
+ /** @override */
+ accessibilityIssuesAreErrors: true,
+
+ /** @override */
+ setUp: function() {
+ testing.Test.prototype.setUp.call(this);
+
+ assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
+ assertFalse(cr.isMac);
+ expectTrue($('spellcheck-language-button').hidden);
+
+ // Make sure the only language currently selected is 'fr'.
+ var langOpts = LanguageOptions.getInstance();
+ var langs = Object.keys(langOpts.spellCheckLanguages_);
+ expectEquals(1, langs.length);
+ expectEquals('fr', langs[0]);
+ },
+};
+
+// Test opening language options has correct location.
+TEST_F('MultilanguageOptionsWebUIBrowserTest', 'testOpenLanguageOptions',
+ function() {
+ expectEquals('chrome://settings-frame/languages/', document.location.href);
+});
+
+// Test that only certain languages can be selected and used for spellchecking.
+// prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to
+// "fr,es,de,en" for the test.
+TEST_F('MultilanguageOptionsWebUIBrowserTest', 'changeSpellcheckLanguages',
+ function() {
+ var langOpts = LanguageOptions.getInstance();
+ var langs = Object.keys(langOpts.spellCheckLanguages_);
+
+ // Make sure 'es' exists in the language list and is unchecked.
+ expectTrue($('language-options-list').selectLanguageByCode('es'));
+ LanguageOptions.updateSpellCheckLanguageControls('es');
+ expectFalse($('spellcheck-language-checkbox').checked, 'es');
+
+ // Click 'es' and ensure that its checkbox gets checked.
+ $('spellcheck-language-checkbox').click();
+ expectTrue($('spellcheck-language-checkbox').checked, 'es');
+
+ // Make sure 'fr' stays checked.
+ $('language-options-list').selectLanguageByCode('fr');
+ LanguageOptions.updateSpellCheckLanguageControls('fr');
+ expectTrue($('spellcheck-language-checkbox').checked);
+
+ // Make sure 'fr' and 'es' are the only two languages being spellchecked with.
+ langs = Object.keys(langOpts.spellCheckLanguages_);
+ expectEquals(2, langs.length);
+ expectEquals('fr', langs[0]);
+ expectEquals('es', langs[1]);
+
+ // Make sure 'fr' exists in the language list and is checked.
+ expectTrue($('language-options-list').selectLanguageByCode('fr'));
+ LanguageOptions.updateSpellCheckLanguageControls('fr');
+ expectTrue($('spellcheck-language-checkbox').checked);
+
+ // Click 'fr' and ensure that its checkbox gets unchecked.
+ $('spellcheck-language-checkbox').click();
+ expectFalse($('spellcheck-language-checkbox').checked);
+
+ // Make sure 'es' stays checked.
+ $('language-options-list').selectLanguageByCode('es');
+ LanguageOptions.updateSpellCheckLanguageControls('es');
+ expectTrue($('spellcheck-language-checkbox').checked);
+
+ // Make sure es' is the only language being spellchecked with.
+ langs = Object.keys(langOpts.spellCheckLanguages_);
+ expectEquals(1, langs.length);
+ expectEquals('es', langs[0]);
+});
+
+// Make sure 'am' cannot be selected as a language and 'fr' stays selected.
+TEST_F('MultilanguageOptionsWebUIBrowserTest', 'notAcceptLanguage',
+ function() {
+ var langOpts = LanguageOptions.getInstance();
+ var langs = Object.keys(langOpts.spellCheckLanguages_);
+
+ // Try to select 'am' from the language list.
+ expectFalse($('language-options-list').selectLanguageByCode('am'));
+
+ // Make sure 'fr' is still the only thing selected.
+ $('language-options-list').selectLanguageByCode('fr');
+ expectTrue($('spellcheck-language-checkbox').checked);
+ expectEquals(1, langs.length);
+ expectEquals('fr', langs[0]);
+});
+
+// Make sure 'en' cannot be selected as a language and 'fr' stays selected.
+TEST_F('MultilanguageOptionsWebUIBrowserTest', 'unusableLanguage',
+ function() {
+ var langOpts = LanguageOptions.getInstance();
+ var langs = Object.keys(langOpts.spellCheckLanguages_);
+
+ // Try to select 'en' from the language list.
+ expectTrue($('language-options-list').selectLanguageByCode('en'));
+ LanguageOptions.updateSpellCheckLanguageControls('en');
+ expectTrue($('spellcheck-language-checkbox-container').hidden);
+ expectFalse($('spellcheck-language-checkbox').checked);
+
+ // Make sure 'fr' is still the only thing selected.
+ expectEquals(1, langs.length);
+ expectEquals('fr', langs[0]);
+});

Powered by Google App Engine
This is Rietveld 408576698