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_browsertest .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 /** @override */ | |
| 18 browsePreload: 'chrome://settings-frame/languages', | |
| 19 | |
| 20 /** @override */ | |
| 21 typedefCppFixture: 'MultilanguageOptionsBrowserTest', | |
| 22 | |
| 23 /** @override */ | |
| 24 accessibilityIssuesAreErrors: true, | |
| 25 | |
| 26 /** @param {string} expected Sorted currently selected languages. */ | |
| 27 expectCurrentlySelected: function(expected) { | |
| 28 var languages = LanguageOptions.getInstance().spellCheckLanguages_; | |
| 29 expectEquals(expected, Object.keys(languages).sort().join()); | |
| 30 }, | |
| 31 | |
| 32 /** @override */ | |
| 33 setUp: function() { | |
| 34 testing.Test.prototype.setUp.call(this); | |
| 35 | |
| 36 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker')); | |
| 37 assertFalse(cr.isMac); | |
| 38 expectTrue($('spellcheck-language-button').hidden); | |
| 39 this.expectCurrentlySelected('fr'); | |
| 40 }, | |
| 41 }; | |
| 42 | |
| 43 // Test that opening language options has the correct location. | |
| 44 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'TestOpenLanguageOptions', | |
| 45 function() { | |
| 46 expectEquals('chrome://settings-frame/languages', document.location.href); | |
| 47 }); | |
| 48 | |
| 49 // Verify that the option to enable the spelling service is hidden when | |
| 50 // multilingual spellchecking is enabled. | |
| 51 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'HideSpellingServiceCheckbox', | |
| 52 function() { | |
| 53 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker')); | |
| 54 expectTrue($('spelling-enabled-container').hidden); | |
| 55 }); | |
| 56 | |
| 57 // Test that only certain languages can be selected and used for spellchecking. | |
| 58 // prefs::kLanguagePreferredLanguages/prefs::kAcceptLanguages is set to | |
| 59 // 'fr,es,de,en' and prefs::kSpellCheckDictionaries is just 'fr' | |
| 60 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'ChangeSpellcheckLanguages', | |
| 61 function() { | |
| 62 expectTrue($('language-options-list').selectLanguageByCode('es')); | |
| 63 expectFalse($('spellcheck-language-checkbox').checked, 'es'); | |
| 64 | |
| 65 // Click 'es' and ensure that it gets checked and 'fr' stays checked. | |
| 66 $('spellcheck-language-checkbox').click(); | |
| 67 expectTrue($('spellcheck-language-checkbox').checked, 'es'); | |
| 68 expectTrue($('language-options-list').selectLanguageByCode('fr')); | |
| 69 expectTrue($('spellcheck-language-checkbox').checked, 'fr'); | |
| 70 this.expectCurrentlySelected('es,fr'); | |
| 71 | |
| 72 // Click 'fr' and ensure that it gets unchecked and 'es' stays checked. | |
| 73 $('spellcheck-language-checkbox').click(); | |
| 74 expectFalse($('spellcheck-language-checkbox').checked, 'fr'); | |
| 75 $('language-options-list').selectLanguageByCode('es'); | |
| 76 expectTrue($('spellcheck-language-checkbox').checked, 'es'); | |
| 77 this.expectCurrentlySelected('es'); | |
| 78 }); | |
| 79 | |
| 80 // Make sure 'am' cannot be selected as a language and 'fr' stays selected. | |
| 81 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'NotAcceptLanguage', function() { | |
| 82 expectFalse($('language-options-list').selectLanguageByCode('am')); | |
| 83 expectTrue($('language-options-list').selectLanguageByCode('fr')); | |
| 84 expectTrue($('spellcheck-language-checkbox').checked, 'fr'); | |
| 85 this.expectCurrentlySelected('fr'); | |
| 86 }); | |
| 87 | |
| 88 // Make sure 'en' cannot be used as a language and 'fr' stays selected. | |
| 89 TEST_F('MultilanguageOptionsWebUIBrowserTest', 'UnusableLanguage', function() { | |
| 90 expectTrue($('language-options-list').selectLanguageByCode('en')); | |
| 91 expectTrue($('spellcheck-language-checkbox-container').hidden); | |
| 92 expectFalse($('spellcheck-language-checkbox').checked, 'en'); | |
| 93 this.expectCurrentlySelected('fr'); | |
| 94 }); | |
| 95 | |
| 96 function MultilanguagePreferenceWebUIBrowserTest() {} | |
| 97 | |
| 98 /** | |
| 99 * Test C++ fixture for Language Options WebUI testing. | |
| 100 * @constructor | |
| 101 * @extends {MultilanguageOptionsWebUIBrowserTest} | |
| 102 */ | |
|
Dan Beam
2015/07/09 17:56:48
^ put this doc comment block above like this
/*
Julius
2015/07/09 18:49:11
Done.
| |
| 103 MultilanguagePreferenceWebUIBrowserTest.prototype = { | |
| 104 __proto__: MultilanguageOptionsWebUIBrowserTest.prototype, | |
| 105 | |
| 106 /** @override */ | |
| 107 typedefCppFixture: 'MultilanguageOptionsWebUIBrowserTest', | |
|
Dan Beam
2015/07/09 17:56:48
remove this
Julius
2015/07/09 18:49:11
Done.
| |
| 108 | |
| 109 /** @override */ | |
| 110 testGenPreamble: function() { | |
| 111 GEN('SetBlankDictionariesPref();'); | |
| 112 }, | |
| 113 | |
|
Dan Beam
2015/07/09 17:56:48
/** @override */
Julius
2015/07/09 18:49:11
Done.
| |
| 114 isAsync: true, | |
| 115 | |
| 116 /** | |
| 117 * @param {string} expected Sorted languages in the kSpellCheckDictionaries | |
| 118 * preference. | |
| 119 */ | |
| 120 expectRegisteredDictionariesPref: function(expected) { | |
| 121 var registeredPrefs = | |
| 122 options.Preferences.getInstance().registeredPreferences_; | |
| 123 expectEquals(expected, | |
| 124 registeredPrefs['spellcheck.dictionaries'].orig.value.sort().join()); | |
| 125 }, | |
| 126 | |
| 127 /** @override */ | |
| 128 setUp: function() { | |
| 129 testing.Test.prototype.setUp.call(this); | |
| 130 | |
| 131 assertTrue(loadTimeData.getBoolean('enableMultilingualSpellChecker')); | |
| 132 assertFalse(cr.isMac); | |
| 133 expectTrue($('spellcheck-language-button').hidden); | |
| 134 this.expectCurrentlySelected(''); | |
| 135 this.expectRegisteredDictionariesPref(''); | |
| 136 }, | |
| 137 }; | |
| 138 | |
| 139 // Make sure the case where no languages are selected is handled properly. | |
| 140 TEST_F('MultilanguagePreferenceWebUIBrowserTest', 'BlankSpellcheckLanguges', | |
| 141 function() { | |
| 142 expectTrue($('language-options-list').selectLanguageByCode('fr')); | |
| 143 expectFalse($('spellcheck-language-checkbox').checked, 'fr'); | |
| 144 | |
| 145 // Add a preference change event listener which ensures that the preference is | |
| 146 // updated correctly and that 'fr' is the only thing in the dictionary object. | |
| 147 var prefs = options.Preferences.getInstance(); | |
| 148 prefs.addEventListener('spellcheck.dictionaries', function() { | |
| 149 expectTrue($('spellcheck-language-checkbox').checked, 'fr'); | |
| 150 this.expectRegisteredDictionariesPref('fr'); | |
| 151 this.expectCurrentlySelected('fr'); | |
| 152 testDone(); | |
| 153 }.bind(this)); | |
| 154 | |
| 155 // Click 'fr' and trigger the previously registered event listener. | |
| 156 $('spellcheck-language-checkbox').click(); | |
| 157 }); | |
| OLD | NEW |