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

Side by Side Diff: chrome/test/data/webui/settings/languages_tests.js

Issue 2837703002: Change SettingsLanguagesPageBrowserTest to CrSettingsLanguagesPageTest (Closed)
Patch Set: rebase Created 3 years, 7 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('settings-languages', function() { 5 cr.define('settings-languages', function() {
6 /**
7 * @constructor
8 * @implements {settings.LanguagesBrowserProxy}
9 * @extends {settings.TestBrowserProxy}
10 */
11 var TestLanguagesBrowserProxy = function() {
12 var methodNames = [];
13 if (cr.isChromeOS || cr.isWindows)
14 methodNames.push('getProspectiveUILanguage');
15
16 settings.TestBrowserProxy.call(this, methodNames);
17
18 /** @private {!LanguageSettingsPrivate} */
19 this.languageSettingsPrivate_ = new settings.FakeLanguageSettingsPrivate();
20
21 /** @private {!InputMethodPrivate} */
22 this.inputMethodPrivate_ = new settings.FakeInputMethodPrivate();
23 };
24
25 TestLanguagesBrowserProxy.prototype = {
26 __proto__: settings.TestBrowserProxy.prototype,
27
28 /** @override */
29 getLanguageSettingsPrivate: function() {
30 return this.languageSettingsPrivate_;
31 },
32
33 /** @override */
34 getInputMethodPrivate: function() {
35 return this.inputMethodPrivate_;
36 },
37 };
38
39 if (cr.isChromeOS || cr.isWindows) {
40 /** @override */
41 TestLanguagesBrowserProxy.prototype.getProspectiveUILanguage =
42 function() {
43 this.methodCalled('getProspectiveUILanguage');
44 return Promise.resolve('en-US');
45 };
46 }
47
48 /**
49 * Data-binds two Polymer properties using the property-changed events and
50 * set/notifyPath API. Useful for testing components which would normally be
51 * used together.
52 * @param {!HTMLElement} el1
53 * @param {!HTMLElement} el2
54 * @param {string} property
55 */
56 function fakeDataBind(el1, el2, property) {
57 var forwardChange = function(el, event) {
58 if (event.detail.hasOwnProperty('path'))
59 el.notifyPath(event.detail.path, event.detail.value);
60 else
61 el.set(property, event.detail.value);
62 };
63 // Add the listeners symmetrically. Polymer will prevent recursion.
64 el1.addEventListener(property + '-changed', forwardChange.bind(null, el2));
65 el2.addEventListener(property + '-changed', forwardChange.bind(null, el1));
66 }
67
68 suite('settings-languages', function() { 6 suite('settings-languages', function() {
69 function getFakePrefs() {
70 var fakePrefs = [{
71 key: 'intl.app_locale',
72 type: chrome.settingsPrivate.PrefType.STRING,
73 value: 'en-US',
74 }, {
75 key: 'intl.accept_languages',
76 type: chrome.settingsPrivate.PrefType.STRING,
77 value: 'en-US,sw',
78 }, {
79 key: 'spellcheck.dictionaries',
80 type: chrome.settingsPrivate.PrefType.LIST,
81 value: ['en-US'],
82 }, {
83 key: 'translate_blocked_languages',
84 type: chrome.settingsPrivate.PrefType.LIST,
85 value: ['en-US'],
86 }];
87 if (cr.isChromeOS) {
88 fakePrefs.push({
89 key: 'settings.language.preferred_languages',
90 type: chrome.settingsPrivate.PrefType.STRING,
91 value: 'en-US,sw',
92 });
93 fakePrefs.push({
94 key: 'settings.language.preload_engines',
95 type: chrome.settingsPrivate.PrefType.STRING,
96 value: '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us::eng,' +
97 '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us:dvorak:eng',
98 });
99 fakePrefs.push({
100 key: 'settings.language.enabled_extension_imes',
101 type: chrome.settingsPrivate.PrefType.STRING,
102 value: '',
103 });
104 }
105 return fakePrefs;
106 }
107
108 /** 7 /**
109 * @param {!Array<string>} expected 8 * @param {!Array<string>} expected
110 */ 9 */
111 function assertLanguageOrder(expected) { 10 function assertLanguageOrder(expected) {
112 assertEquals(expected.length, languageHelper.languages.enabled.length); 11 assertEquals(expected.length, languageHelper.languages.enabled.length);
113 for (var i = 0; i < expected.length; i++) { 12 for (var i = 0; i < expected.length; i++) {
114 assertEquals( 13 assertEquals(
115 expected[i], languageHelper.languages.enabled[i].language.code); 14 expected[i], languageHelper.languages.enabled[i].language.code);
116 } 15 }
117 } 16 }
118 17
119 /** @type {?settings.LanguagesBrowserProxy} */ 18 /** @type {?settings.LanguagesBrowserProxy} */
120 var browserProxy = null; 19 var browserProxy = null;
121 20
122 var languageHelper; 21 var languageHelper;
123 22
124 suiteSetup(function() { 23 suiteSetup(function() {
125 CrSettingsPrefs.deferInitialization = true; 24 CrSettingsPrefs.deferInitialization = true;
126 PolymerTest.clearBody(); 25 PolymerTest.clearBody();
127 }); 26 });
128 27
129 setup(function() { 28 setup(function() {
130 var settingsPrefs = document.createElement('settings-prefs'); 29 var settingsPrefs = document.createElement('settings-prefs');
131 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); 30 var settingsPrivate =
31 new settings.FakeSettingsPrivate(settings.getFakeLanguagePrefs());
132 settingsPrefs.initialize(settingsPrivate); 32 settingsPrefs.initialize(settingsPrivate);
133 document.body.appendChild(settingsPrefs); 33 document.body.appendChild(settingsPrefs);
134 34
135 // Setup test browser proxy. 35 // Setup test browser proxy.
136 browserProxy = new TestLanguagesBrowserProxy(); 36 browserProxy = new settings.TestLanguagesBrowserProxy();
137 settings.LanguagesBrowserProxyImpl.instance_ = browserProxy; 37 settings.LanguagesBrowserProxyImpl.instance_ = browserProxy;
138 38
139 // Setup fake languageSettingsPrivate API. 39 // Setup fake languageSettingsPrivate API.
140 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate(); 40 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
141 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); 41 languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
142 42
143 languageHelper = document.createElement('settings-languages'); 43 languageHelper = document.createElement('settings-languages');
144 44
145 // Prefs would normally be data-bound to settings-languages. 45 // Prefs would normally be data-bound to settings-languages.
146 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); 46 test_util.fakeDataBind(settingsPrefs, languageHelper, 'prefs');
147 47
148 document.body.appendChild(languageHelper); 48 document.body.appendChild(languageHelper);
149 return languageHelper.whenReady().then(function() { 49 return languageHelper.whenReady().then(function() {
150 if (cr.isChromeOS || cr.isWindows) 50 if (cr.isChromeOS || cr.isWindows)
151 return browserProxy.whenCalled('getProspectiveUILanguage'); 51 return browserProxy.whenCalled('getProspectiveUILanguage');
152 }); 52 });
153 }); 53 });
154 54
155 test('languages model', function() { 55 test('languages model', function() {
156 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate(); 56 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 // The US Swahili keyboard should still be enabled, because it supports 139 // The US Swahili keyboard should still be enabled, because it supports
240 // English which is still enabled. 140 // English which is still enabled.
241 assertTrue(languageHelper.languages.inputMethods.enabled.some( 141 assertTrue(languageHelper.languages.inputMethods.enabled.some(
242 function(inputMethod) { 142 function(inputMethod) {
243 return inputMethod.id == swUS; 143 return inputMethod.id == swUS;
244 })); 144 }));
245 }); 145 });
246 } 146 }
247 }); 147 });
248 }); 148 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698