Chromium Code Reviews| 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 |