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

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: Moved spellcheck_service_browsertest to a unittest, cleaned code, replied to comments, stopped Mac … 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 accessibilityIssuesAreErrors: true,
27
28 /** @override */
29 setUp: function() {
Dan Beam 2015/06/19 20:43:42 testing.Test.prototype.setUp.call(this);
Julius 2015/06/24 21:17:58 Done.
30 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker'));
31 assertFalse(cr.isMac);
32 expectTrue($('spellcheck-language-button').hidden);
33
34 // Make sure the only language currently selected is 'fr'.
35 var langOpts = LanguageOptions.getInstance();
36 var langs = Object.keys(langOpts.spellCheckLanguages_);
37 expectEquals(1, langs.length);
38 expectEquals('fr', langs[0]);
39 },
40 };
41
42 // Test opening language options has correct location.
43 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'testOpenLanguageOptions',
44 function() {
45 expectEquals('chrome://settings-frame/languages/', document.location.href);
46 });
47
48 // Test that only certain languages can be selected and used for spellchecking.
49 // prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to
50 // "fr,es,de,en" for the test.
51 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'changeSpellcheckLanguages',
52 function() {
53 var langOpts = LanguageOptions.getInstance();
54 var langs = Object.keys(langOpts.spellCheckLanguages_);
55
56 // Make sure 'es' exists in the language list and is unchecked.
57 expectTrue($('language-options-list').selectLanguageByCode('es'));
58 LanguageOptions.updateSpellCheckLanguageControls('es');
59 expectFalse($('spellcheck-language-checkbox').checked, 'es');
60
61 // Click 'es' and ensure that its checkbox gets checked.
62 $('spellcheck-language-checkbox').click();
63 expectTrue($('spellcheck-language-checkbox').checked, 'es');
64
65 // Make sure 'fr' stays checked.
66 $('language-options-list').selectLanguageByCode('fr');
67 LanguageOptions.updateSpellCheckLanguageControls('fr');
68 expectTrue($('spellcheck-language-checkbox').checked);
69
70 // Make sure 'fr' and 'es' are the only two languages being spellchecked with.
71 langs = Object.keys(langOpts.spellCheckLanguages_);
72 expectEquals(2, langs.length);
73 expectEquals('fr', langs[0]);
74 expectEquals('es', langs[1]);
75
76 // Make sure 'fr' exists in the language list and is checked.
77 expectTrue($('language-options-list').selectLanguageByCode('fr'));
78 LanguageOptions.updateSpellCheckLanguageControls('fr');
79 expectTrue($('spellcheck-language-checkbox').checked);
80
81 // Click 'fr' and ensure that its checkbox gets unchecked.
82 $('spellcheck-language-checkbox').click();
83 expectFalse($('spellcheck-language-checkbox').checked);
84
85 // Make sure 'es' stays checked.
86 $('language-options-list').selectLanguageByCode('es');
87 LanguageOptions.updateSpellCheckLanguageControls('es');
88 expectTrue($('spellcheck-language-checkbox').checked);
89
90 // Make sure es' is the only language being spellchecked with.
91 langs = Object.keys(langOpts.spellCheckLanguages_);
92 expectEquals(1, langs.length);
93 expectEquals('es', langs[0]);
94 });
95
96 // Make sure 'am' cannot be selected as a language and 'fr' stays selected.
97 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'notAcceptLanguage',
98 function() {
99 var langOpts = LanguageOptions.getInstance();
100 var langs = Object.keys(langOpts.spellCheckLanguages_);
101
102 // Try to select 'am' from the language list.
103 expectFalse($('language-options-list').selectLanguageByCode('am'));
104
105 // Make sure 'fr' is still the only thing selected.
106 $('language-options-list').selectLanguageByCode('fr');
107 expectTrue($('spellcheck-language-checkbox').checked);
108 expectEquals(1, langs.length);
109 expectEquals('fr', langs[0]);
110 });
111
112 // Make sure 'en' cannot be selected as a language and 'fr' stays selected.
113 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'unusableLanguage',
114 function() {
115 var langOpts = LanguageOptions.getInstance();
116 var langs = Object.keys(langOpts.spellCheckLanguages_);
117
118 // Try to select 'en' from the language list.
119 expectTrue($('language-options-list').selectLanguageByCode('en'));
120 LanguageOptions.updateSpellCheckLanguageControls('en');
121 expectTrue($('spellcheck-language-checkbox-container').hidden);
122 expectFalse($('spellcheck-language-checkbox').checked);
123
124 // Make sure 'fr' is still the only thing selected.
125 expectEquals(1, langs.length);
126 expectEquals('fr', langs[0]);
127 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/multilanguage_options_webui_browsertest.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698