OLD | NEW |
---|---|
(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 }); | |
OLD | NEW |