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

Side by Side 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: Renamed the browsertests and cleaned some things up. Created 5 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 GEN('#include "chrome/browser/ui/webui/options/multilanguage_options_browsertest .h"');
6
7 /**
8 * Test C++ fixture for Language Options WebUI testing.
9 * @constructor
10 * @extends {testing.Test}
11 */
12 function MultilanguageOptionsWebUIBrowserTest() {}
13
14 MultilanguageOptionsWebUIBrowserTest.prototype = {
15 __proto__: testing.Test.prototype,
16
17 /** @override */
18 browsePreload: 'chrome://settings-frame/languages',
19
20 /** @override */
21 typedefCppFixture: 'MultilanguageOptionsBrowserTest',
22
23 /** @override */
24 accessibilityIssuesAreErrors: true,
25
26 /** @param {string} expected Sorted currently selected languages. */
27 expectCurrentlySelected: function(expected) {
28 var languages = LanguageOptions.getInstance().spellCheckLanguages_;
29 expectEquals(expected, Object.keys(languages).sort().join());
30 },
31
32 /** @override */
33 setUp: function() {
34 testing.Test.prototype.setUp.call(this);
35
36 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
37 assertFalse(cr.isMac);
38 expectTrue($('spellcheck-language-button').hidden);
39 this.expectCurrentlySelected('fr');
40 },
41 };
42
43 // Test that opening language options has the correct location.
44 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'TestOpenLanguageOptions',
45 function() {
46 expectEquals('chrome://settings-frame/languages', document.location.href);
47 });
48
49 // Verify that the option to enable the spelling service is hidden when
50 // multilingual spellchecking is enabled.
51 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'HideSpellingServiceCheckbox',
52 function() {
53 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
54 expectTrue($('spelling-enabled-container').hidden);
55 });
56
57 // Test that only certain languages can be selected and used for spellchecking.
58 // prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to
59 // 'fr,es,de,en' and prefs::kSpellCheckDictionaries is just 'fr'
60 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'ChangeSpellcheckLanguages',
61 function() {
62 expectTrue($('language-options-list').selectLanguageByCode('es'));
63 expectFalse($('spellcheck-language-checkbox').checked, 'es');
64
65 // Click 'es' and ensure that it gets checked and 'fr' stays checked.
66 $('spellcheck-language-checkbox').click();
67 expectTrue($('spellcheck-language-checkbox').checked, 'es');
68 expectTrue($('language-options-list').selectLanguageByCode('fr'));
69 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
70 this.expectCurrentlySelected('es,fr');
71
72 // Click 'fr' and ensure that it gets unchecked and 'es' stays checked.
73 $('spellcheck-language-checkbox').click();
74 expectFalse($('spellcheck-language-checkbox').checked, 'fr');
75 $('language-options-list').selectLanguageByCode('es');
76 expectTrue($('spellcheck-language-checkbox').checked, 'es');
77 this.expectCurrentlySelected('es');
78 });
79
80 // Make sure 'am' cannot be selected as a language and 'fr' stays selected.
81 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'NotAcceptLanguage', function() {
82 expectFalse($('language-options-list').selectLanguageByCode('am'));
83 expectTrue($('language-options-list').selectLanguageByCode('fr'));
84 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
85 this.expectCurrentlySelected('fr');
86 });
87
88 // Make sure 'en' cannot be used as a language and 'fr' stays selected.
89 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'UnusableLanguage', function() {
90 expectTrue($('language-options-list').selectLanguageByCode('en'));
91 expectTrue($('spellcheck-language-checkbox-container').hidden);
92 expectFalse($('spellcheck-language-checkbox').checked, 'en');
93 this.expectCurrentlySelected('fr');
94 });
95
96 function MultilanguagePreferenceWebUIBrowserTest() {}
97
98 /**
99 * Test C++ fixture for Language Options WebUI testing.
100 * @constructor
101 * @extends {MultilanguageOptionsWebUIBrowserTest}
102 */
Dan Beam 2015/07/09 17:56:48 ^ put this doc comment block above like this /*
Julius 2015/07/09 18:49:11 Done.
103 MultilanguagePreferenceWebUIBrowserTest.prototype = {
104 __proto__: MultilanguageOptionsWebUIBrowserTest.prototype,
105
106 /** @override */
107 typedefCppFixture: 'MultilanguageOptionsWebUIBrowserTest',
Dan Beam 2015/07/09 17:56:48 remove this
Julius 2015/07/09 18:49:11 Done.
108
109 /** @override */
110 testGenPreamble: function() {
111 GEN('SetBlankDictionariesPref();');
112 },
113
Dan Beam 2015/07/09 17:56:48 /** @override */
Julius 2015/07/09 18:49:11 Done.
114 isAsync: true,
115
116 /**
117 * @param {string} expected Sorted languages in the kSpellCheckDictionaries
118 * preference.
119 */
120 expectRegisteredDictionariesPref: function(expected) {
121 var registeredPrefs =
122 options.Preferences.getInstance().registeredPreferences_;
123 expectEquals(expected,
124 registeredPrefs['spellcheck.dictionaries'].orig.value.sort().join());
125 },
126
127 /** @override */
128 setUp: function() {
129 testing.Test.prototype.setUp.call(this);
130
131 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
132 assertFalse(cr.isMac);
133 expectTrue($('spellcheck-language-button').hidden);
134 this.expectCurrentlySelected('');
135 this.expectRegisteredDictionariesPref('');
136 },
137 };
138
139 // Make sure the case where no languages are selected is handled properly.
140 TEST_F('MultilanguagePreferenceWebUIBrowserTest', 'BlankSpellcheckLanguges',
141 function() {
142 expectTrue($('language-options-list').selectLanguageByCode('fr'));
143 expectFalse($('spellcheck-language-checkbox').checked, 'fr');
144
145 // Add a preference change event listener which ensures that the preference is
146 // updated correctly and that 'fr' is the only thing in the dictionary object.
147 var prefs = options.Preferences.getInstance();
148 prefs.addEventListener('spellcheck.dictionaries', function() {
149 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
150 this.expectRegisteredDictionariesPref('fr');
151 this.expectCurrentlySelected('fr');
152 testDone();
153 }.bind(this));
154
155 // Click 'fr' and trigger the previously registered event listener.
156 $('spellcheck-language-checkbox').click();
157 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698