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

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: Refactored some tests and addressed comments. 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 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_webui_brows ertest.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 /**
18 * Browse to the language options page & call our preLoad().
19 */
20 browsePreload: 'chrome://settings-frame/languages/',
21
22 /** @override */
23 typedefCppFixture: 'MultilanguageOptionsWebUIBrowserTest',
24
25 /** @override */
26 runAccessibilityChecks: true,
27
28 /** @override */
29 accessibilityIssuesAreErrors: true,
30 };
31
32 // Test opening language options has correct location.
33 TEST_F('MultilanguageOptionsWebUIBrowserTest',
34 'testOpenLanguageOptions',
35 function() {
36 expectEquals('chrome://settings-frame/languages/', document.location.href);
37 });
38
39 // Test that only certain languages can be selected and used for spellchecking.
40 // prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to
41 // "fr,es,de" for the test.
42 TEST_F('MultilanguageOptionsWebUIBrowserTest',
43 'languageOptions',
44 function() {
45 expectTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
46 assert(!cr.isMac);
47
48 expectTrue($('spellcheck-language-button').hidden);
49 var langOps = LanguageOptions.getInstance();
50
51 // Make sure the only language currently selected is 'fr'.
52 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('fr'));
53 expectTrue($('language-options-list').selectLanguageByCode('fr'));
54 expectTrue($('spellcheck-language-checkbox').checked);
55
56 // Click 'es' and ensure that its checkbox gets checked, 'fr' stays,
57 // checked, and those are the only languages being used for spellchecking.
58 expectTrue($('language-options-list').selectLanguageByCode('es'));
59 LanguageOptions.updateSpellCheckLanguageControls('es');
60 expectFalse($('spellcheck-language-checkbox').checked, 'es');
61 $('spellcheck-language-checkbox').click();
62 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('es'));
63 expectTrue($('spellcheck-language-checkbox').checked, 'es');
64 $('language-options-list').selectLanguageByCode('fr');
65 LanguageOptions.updateSpellCheckLanguageControls('fr');
66 expectTrue($('spellcheck-language-checkbox').checked);
67 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('fr'));
68 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('es'));
69
70 // Check that 'am' cannot be selected as a language and make sure the other
71 // languages stay selected.
72 expectFalse($('language-options-list').selectLanguageByCode('am'));
73 $('language-options-list').selectLanguageByCode('fr');
74 expectTrue($('spellcheck-language-checkbox').checked);
75 $('language-options-list').selectLanguageByCode('es');
76 expectTrue($('spellcheck-language-checkbox').checked, 'es');
77 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('fr'));
78 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('es'));
79 expectFalse(langOps.spellCheckLanguages_.hasOwnProperty('am'));
80
81 // Click 'fr' and ensure that its checkbox gets unchecked, 'es' stays,
82 // checked, and that is the only language being used for spellchecking.
83 $('language-options-list').selectLanguageByCode('fr');
84 LanguageOptions.updateSpellCheckLanguageControls('fr');
85 expectTrue($('spellcheck-language-checkbox').checked);
86 $('spellcheck-language-checkbox').click();
87 expectFalse(langOps.spellCheckLanguages_.hasOwnProperty('fr'));
88 expectFalse($('spellcheck-language-checkbox').checked);
89 $('language-options-list').selectLanguageByCode('es');
90 LanguageOptions.updateSpellCheckLanguageControls('es');
91 expectTrue($('spellcheck-language-checkbox').checked, 'es');
92 expectTrue(langOps.spellCheckLanguages_.hasOwnProperty('es'));
93
94 // Make sure 'en' cannot be used as a spellchecking language.
95 $('language-options-list').selectLanguageByCode('en');
96 LanguageOptions.updateSpellCheckLanguageControls('en');
97 expectTrue($('spellcheck-language-checkbox-container').hidden);
98 expectFalse($('spellcheck-language-checkbox').checked);
99 expectFalse(langOps.spellCheckLanguages_.hasOwnProperty('en'));
100 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698