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

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

Issue 2827553002: MD Settings: Use a browser proxy from the languages page. Re-enable test. (Closed)
Patch Set: update compiled_resources Created 3 years, 8 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
« no previous file with comments | « chrome/test/data/webui/settings/fake_input_method_private.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 /** 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 this.languageSettingsPrivate_ = null;
Dan Beam 2017/04/19 17:46:52 this.languageSettingsPrivate_ = new settings.FakeL
dpapad 2017/04/19 18:11:30 See related last comment in this file.
19 this.inputMethodPrivate_ = null;
20 };
21
22 TestLanguagesBrowserProxy.prototype = {
23 __proto__: settings.TestBrowserProxy.prototype,
24
25 /** @override */
26 getLanguageSettingsPrivate: function() {
27 return this.languageSettingsPrivate_;
28 },
29
30 /** @param {!LanguagesSettingsPrivate} private */
31 setLanguageSettingsPrivate: function(private) {
32 this.languageSettingsPrivate_ = private;
Dan Beam 2017/04/19 17:46:52 i would not recommend private as a var name
dpapad 2017/04/19 18:11:30 Done.
33 },
34
35 /** @override */
36 getInputMethodPrivate: function() {
37 return this.inputMethodPrivate_;
38 },
39
40 /** @param {!LanguagesSettingsPrivate} private */
41 setInputMethodPrivate: function(private) {
42 this.inputMethodPrivate_ = private;
43 },
44 };
45
46 if (cr.isChromeOS || cr.isWindows) {
47 /** @override */
48 TestLanguagesBrowserProxy.prototype.getProspectiveUILanguage =
49 function() {
50 this.methodCalled('getProspectiveUILanguage');
51 return Promise.resolve('en-US');
52 };
53 }
54
55 /**
7 * Data-binds two Polymer properties using the property-changed events and 56 * Data-binds two Polymer properties using the property-changed events and
8 * set/notifyPath API. Useful for testing components which would normally be 57 * set/notifyPath API. Useful for testing components which would normally be
9 * used together. 58 * used together.
10 * @param {!HTMLElement} el1 59 * @param {!HTMLElement} el1
11 * @param {!HTMLElement} el2 60 * @param {!HTMLElement} el2
12 * @param {string} property 61 * @param {string} property
13 */ 62 */
14 function fakeDataBind(el1, el2, property) { 63 function fakeDataBind(el1, el2, property) {
15 var forwardChange = function(el, event) { 64 var forwardChange = function(el, event) {
16 if (event.detail.hasOwnProperty('path')) 65 if (event.detail.hasOwnProperty('path'))
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 * @param {!Array<string>} expected 116 * @param {!Array<string>} expected
68 */ 117 */
69 function assertLanguageOrder(expected) { 118 function assertLanguageOrder(expected) {
70 assertEquals(expected.length, languageHelper.languages.enabled.length); 119 assertEquals(expected.length, languageHelper.languages.enabled.length);
71 for (var i = 0; i < expected.length; i++) { 120 for (var i = 0; i < expected.length; i++) {
72 assertEquals( 121 assertEquals(
73 expected[i], languageHelper.languages.enabled[i].language.code); 122 expected[i], languageHelper.languages.enabled[i].language.code);
74 } 123 }
75 } 124 }
76 125
126 /** @type {?settings.LanguagesBrowserProxy} */
127 var browserProxy = null;
128
77 var languageHelper; 129 var languageHelper;
78 var languageSettingsPrivate;
79 130
80 suiteSetup(function() { 131 suiteSetup(function() {
81 CrSettingsPrefs.deferInitialization = true; 132 CrSettingsPrefs.deferInitialization = true;
82 PolymerTest.clearBody(); 133 PolymerTest.clearBody();
83 }); 134 });
84 135
85 setup(function() { 136 setup(function() {
86 var settingsPrefs = document.createElement('settings-prefs'); 137 var settingsPrefs = document.createElement('settings-prefs');
87 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); 138 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs());
88 settingsPrefs.initialize(settingsPrivate); 139 settingsPrefs.initialize(settingsPrivate);
89 document.body.appendChild(settingsPrefs); 140 document.body.appendChild(settingsPrefs);
90 141
91 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); 142 // Setup test browser proxy.
143 browserProxy = new TestLanguagesBrowserProxy();
144 settings.LanguagesBrowserProxyImpl.instance_ = browserProxy;
145
146 // Setup fake languageSettingsPrivate API.
147 var languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate();
Dan Beam 2017/04/19 17:46:52 why not just instantiate these directly in TestLan
dpapad 2017/04/19 18:11:30 The next line calls setSettingsPrefs() which is a
Dan Beam 2017/04/19 18:31:55 i don't see that as a requirement, and am likely n
92 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); 148 languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
93 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; 149 browserProxy.setLanguageSettingsPrivate(languageSettingsPrivate);
94 150
95 var getProspectiveUILanguageCalled = false; 151 // Setup fake inputMethodPrivate API.
96 registerMessageCallback('getProspectiveUILanguage', null, 152 browserProxy.setInputMethodPrivate(new settings.FakeInputMethodPrivate());
97 function(callbackId) {
98 assertFalse(getProspectiveUILanguageCalled);
99 getProspectiveUILanguageCalled = true;
100 cr.webUIResponse(callbackId, true, 'en-US');
101 });
102 153
103 languageHelper = document.createElement('settings-languages'); 154 languageHelper = document.createElement('settings-languages');
104 155
105 // Prefs would normally be data-bound to settings-languages. 156 // Prefs would normally be data-bound to settings-languages.
106 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); 157 fakeDataBind(settingsPrefs, languageHelper, 'prefs');
107 158
108 document.body.appendChild(languageHelper); 159 document.body.appendChild(languageHelper);
109 return languageHelper.whenReady().then(function() { 160 return languageHelper.whenReady().then(function() {
110 assertEquals( 161 if (cr.isChromeOS || cr.isWindows)
111 cr.isChromeOS || cr.isWindows, getProspectiveUILanguageCalled); 162 return browserProxy.whenCalled('getProspectiveUILanguage');
112 }); 163 });
113 }); 164 });
114 165
115 test('languages model', function() { 166 test('languages model', function() {
167 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
116 for (var i = 0; i < languageSettingsPrivate.languages.length; 168 for (var i = 0; i < languageSettingsPrivate.languages.length;
117 i++) { 169 i++) {
118 assertEquals(languageSettingsPrivate.languages[i].code, 170 assertEquals(languageSettingsPrivate.languages[i].code,
119 languageHelper.languages.supported[i].code); 171 languageHelper.languages.supported[i].code);
120 } 172 }
121 assertLanguageOrder(['en-US', 'sw']); 173 assertLanguageOrder(['en-US', 'sw']);
122 assertEquals('en', languageHelper.languages.translateTarget); 174 assertEquals('en', languageHelper.languages.translateTarget);
123 175
124 // TODO(michaelpg): Test other aspects of the model. 176 // TODO(michaelpg): Test other aspects of the model.
125 }); 177 });
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // The US Swahili keyboard should still be enabled, because it supports 250 // The US Swahili keyboard should still be enabled, because it supports
199 // English which is still enabled. 251 // English which is still enabled.
200 assertTrue(languageHelper.languages.inputMethods.enabled.some( 252 assertTrue(languageHelper.languages.inputMethods.enabled.some(
201 function(inputMethod) { 253 function(inputMethod) {
202 return inputMethod.id == swUS; 254 return inputMethod.id == swUS;
203 })); 255 }));
204 }); 256 });
205 } 257 }
206 }); 258 });
207 }); 259 });
OLDNEW
« no previous file with comments | « chrome/test/data/webui/settings/fake_input_method_private.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698