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

Side by Side Diff: chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.js

Issue 2919343005: Remove tests for deprecated Options UI (Closed)
Patch Set: and more Created 3 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 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(['options_browsertest_base.js']);
6 GEN('#include "chrome/browser/ui/webui/options/' +
7 'multilanguage_options_browsertest.h"');
8
9 /**
10 * Test C++ fixture for Language Options WebUI testing.
11 * @constructor
12 * @extends {testing.Test}
13 */
14 function MultilanguageOptionsWebUIBrowserTest() {}
15
16 MultilanguageOptionsWebUIBrowserTest.prototype = {
17 __proto__: OptionsBrowsertestBase.prototype,
18
19 /** @override */
20 browsePreload: 'chrome://settings-frame/languages',
21
22 /** @override */
23 typedefCppFixture: 'MultilanguageOptionsBrowserTest',
24
25 /** @override */
26 accessibilityIssuesAreErrors: true,
27
28 /** @param {string} expected Sorted currently selected languages. */
29 expectCurrentlySelected: function(expected) {
30 var languages = LanguageOptions.getInstance().spellCheckLanguages_;
31 expectEquals(expected, Object.keys(languages).sort().join());
32 },
33
34 /** @override */
35 setUp: function() {
36 OptionsBrowsertestBase.prototype.setUp.call(this);
37
38 assertFalse(cr.isMac);
39 expectFalse($('edit-custom-dictionary-button').hidden);
40 this.expectEnableSpellcheckCheckboxVisible();
41 this.expectCurrentlySelected('fr');
42
43 var requiredOwnedAriaRoleMissingSelectors = [
44 '#default-search-engine-list',
45 '#other-search-engine-list',
46 ];
47
48 // Enable when failure is resolved.
49 // AX_ARIA_08: http://crbug.com/559320
50 this.accessibilityAuditConfig.ignoreSelectors(
51 'requiredOwnedAriaRoleMissing',
52 requiredOwnedAriaRoleMissingSelectors);
53
54 // Enable when failure is resolved.
55 // AX_ARIA_10: http://crbug.com/559266
56 this.accessibilityAuditConfig.ignoreSelectors(
57 'unsupportedAriaAttribute',
58 '#language-options-list');
59
60 // Enable when failure is resolved.
61 // AX_TEXT_04: http://crbug.com/559271
62 this.accessibilityAuditConfig.ignoreSelectors(
63 'linkWithUnclearPurpose',
64 '#languagePage > .content-area > .language-options-header > A');
65 },
66
67 /** @override */
68 tearDown: function() {
69 testing.Test.prototype.tearDown.call(this);
70 this.expectEnableSpellcheckCheckboxVisible();
71 },
72
73 /** Make sure the 'Enable spell checking' checkbox is visible. */
74 expectEnableSpellcheckCheckboxVisible: function() {
75 if ($('enable-spellcheck-container'))
76 expectFalse($('enable-spellcheck-container').hidden);
77 },
78 };
79
80 // Test that opening language options has the correct location.
81 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'TestOpenLanguageOptions',
82 function() {
83 expectEquals('chrome://settings-frame/languages', document.location.href);
84 });
85
86 // Test that only certain languages can be selected and used for spellchecking.
87 // prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to
88 // 'fr,es,de,en' and prefs::kSpellCheckDictionaries is just 'fr'
89 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'ChangeSpellcheckLanguages',
90 function() {
91 expectTrue($('language-options-list').selectLanguageByCode('es'));
92 expectFalse($('spellcheck-language-checkbox').checked, 'es');
93
94 // Click 'es' and ensure that it gets checked and 'fr' stays checked.
95 $('spellcheck-language-checkbox').click();
96 expectTrue($('spellcheck-language-checkbox').checked, 'es');
97 expectTrue($('language-options-list').selectLanguageByCode('fr'));
98 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
99 this.expectCurrentlySelected('es,fr');
100
101 // Click 'fr' and ensure that it gets unchecked and 'es' stays checked.
102 $('spellcheck-language-checkbox').click();
103 expectFalse($('spellcheck-language-checkbox').checked, 'fr');
104 $('language-options-list').selectLanguageByCode('es');
105 expectTrue($('spellcheck-language-checkbox').checked, 'es');
106 this.expectCurrentlySelected('es');
107 });
108
109 // Make sure 'am' cannot be selected as a language and 'fr' stays selected.
110 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'NotAcceptLanguage', function() {
111 expectFalse($('language-options-list').selectLanguageByCode('am'));
112 expectTrue($('language-options-list').selectLanguageByCode('fr'));
113 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
114 this.expectCurrentlySelected('fr');
115 });
116
117 // Make sure 'en' cannot be used as a language and 'fr' stays selected.
118 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'UnusableLanguage', function() {
119 expectTrue($('language-options-list').selectLanguageByCode('en'));
120 expectTrue($('spellcheck-language-checkbox-container').hidden);
121 expectFalse($('spellcheck-language-checkbox').checked, 'en');
122 this.expectCurrentlySelected('fr');
123 });
124
125 /**
126 * Test C++ fixture for Language Options WebUI testing.
127 * @constructor
128 * @extends {MultilanguageOptionsWebUIBrowserTest}
129 */
130 function MultilanguagePreferenceWebUIBrowserTest() {}
131
132 MultilanguagePreferenceWebUIBrowserTest.prototype = {
133 __proto__: MultilanguageOptionsWebUIBrowserTest.prototype,
134
135 /** @override */
136 testGenPreamble: function() {
137 GEN('ClearSpellcheckDictionaries();');
138 },
139
140 /** @override */
141 isAsync: true,
142
143 /**
144 * @param {string} expected Sorted languages in the kSpellCheckDictionaries
145 * preference.
146 */
147 expectRegisteredDictionariesPref: function(expected) {
148 var registeredPrefs =
149 options.Preferences.getInstance().registeredPreferences_;
150 expectEquals(expected,
151 registeredPrefs['spellcheck.dictionaries'].orig.value.sort().join());
152 },
153
154 /**
155 * Watch for a change to the preference |pref| and then call |callback|.
156 * @param {string} pref The preference to listen for a change on.
157 * @param {function} callback The function to run after a listener event.
158 */
159 addPreferenceListener: function(pref, callback) {
160 options.Preferences.getInstance().addEventListener(pref, callback);
161 },
162
163 /** @override */
164 setUp: function() {
165 OptionsBrowsertestBase.prototype.setUp.call(this);
166
167 assertFalse(cr.isMac);
168 expectTrue($('edit-custom-dictionary-button').hidden);
169 this.expectEnableSpellcheckCheckboxVisible();
170 this.expectCurrentlySelected('');
171 this.expectRegisteredDictionariesPref('');
172
173 // Enable when failure is resolved.
174 // AX_ARIA_10: http://crbug.com/559266
175 this.accessibilityAuditConfig.ignoreSelectors(
176 'unsupportedAriaAttribute',
177 '#language-options-list');
178
179 // Enable when failure is resolved.
180 // AX_TEXT_04: http://crbug.com/559271
181 this.accessibilityAuditConfig.ignoreSelectors(
182 'linkWithUnclearPurpose',
183 '#languagePage > .content-area > .language-options-header > A');
184
185 // Enable when failure is resolved.
186 // AX_FOCUS_01: http://crbug.com/570046
187 this.accessibilityAuditConfig.ignoreSelectors(
188 'focusableElementNotVisibleAndNotAriaHidden',
189 '#offer-to-translate-in-this-language');
190 },
191 };
192
193 // Make sure the case where no languages are selected is handled properly.
194 TEST_F('MultilanguagePreferenceWebUIBrowserTest', 'SelectFromBlank',
195 function() {
196 expectTrue($('language-options-list').selectLanguageByCode('fr'));
197 expectFalse($('spellcheck-language-checkbox').checked, 'fr');
198 expectTrue($('edit-custom-dictionary-button').hidden);
199
200 // Add a preference change event listener which ensures that the preference is
201 // updated correctly and that 'fr' is the only thing in the dictionary object.
202 this.addPreferenceListener('spellcheck.dictionaries', function() {
203 expectTrue($('spellcheck-language-checkbox').checked, 'fr');
204 this.expectRegisteredDictionariesPref('fr');
205 this.expectCurrentlySelected('fr');
206 expectFalse($('edit-custom-dictionary-button').hidden);
207 testDone();
208 }.bind(this));
209
210 // Click 'fr' and trigger the preference listener.
211 $('spellcheck-language-checkbox').click();
212 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698