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

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: Remove accidental usage of getInputMethodPrivate() on non-Cros 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 /** @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 /**
7 * Data-binds two Polymer properties using the property-changed events and 49 * Data-binds two Polymer properties using the property-changed events and
8 * set/notifyPath API. Useful for testing components which would normally be 50 * set/notifyPath API. Useful for testing components which would normally be
9 * used together. 51 * used together.
10 * @param {!HTMLElement} el1 52 * @param {!HTMLElement} el1
11 * @param {!HTMLElement} el2 53 * @param {!HTMLElement} el2
12 * @param {string} property 54 * @param {string} property
13 */ 55 */
14 function fakeDataBind(el1, el2, property) { 56 function fakeDataBind(el1, el2, property) {
15 var forwardChange = function(el, event) { 57 var forwardChange = function(el, event) {
16 if (event.detail.hasOwnProperty('path')) 58 if (event.detail.hasOwnProperty('path'))
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 * @param {!Array<string>} expected 109 * @param {!Array<string>} expected
68 */ 110 */
69 function assertLanguageOrder(expected) { 111 function assertLanguageOrder(expected) {
70 assertEquals(expected.length, languageHelper.languages.enabled.length); 112 assertEquals(expected.length, languageHelper.languages.enabled.length);
71 for (var i = 0; i < expected.length; i++) { 113 for (var i = 0; i < expected.length; i++) {
72 assertEquals( 114 assertEquals(
73 expected[i], languageHelper.languages.enabled[i].language.code); 115 expected[i], languageHelper.languages.enabled[i].language.code);
74 } 116 }
75 } 117 }
76 118
119 /** @type {?settings.LanguagesBrowserProxy} */
120 var browserProxy = null;
121
77 var languageHelper; 122 var languageHelper;
78 var languageSettingsPrivate;
79 123
80 suiteSetup(function() { 124 suiteSetup(function() {
81 CrSettingsPrefs.deferInitialization = true; 125 CrSettingsPrefs.deferInitialization = true;
82 PolymerTest.clearBody(); 126 PolymerTest.clearBody();
83 }); 127 });
84 128
85 setup(function() { 129 setup(function() {
86 var settingsPrefs = document.createElement('settings-prefs'); 130 var settingsPrefs = document.createElement('settings-prefs');
87 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); 131 var settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs());
88 settingsPrefs.initialize(settingsPrivate); 132 settingsPrefs.initialize(settingsPrivate);
89 document.body.appendChild(settingsPrefs); 133 document.body.appendChild(settingsPrefs);
90 134
91 languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); 135 // Setup test browser proxy.
136 browserProxy = new TestLanguagesBrowserProxy();
137 settings.LanguagesBrowserProxyImpl.instance_ = browserProxy;
138
139 // Setup fake languageSettingsPrivate API.
140 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
92 languageSettingsPrivate.setSettingsPrefs(settingsPrefs); 141 languageSettingsPrivate.setSettingsPrefs(settingsPrefs);
93 settings.languageSettingsPrivateApiForTest = languageSettingsPrivate;
94
95 var getProspectiveUILanguageCalled = false;
96 registerMessageCallback('getProspectiveUILanguage', null,
97 function(callbackId) {
98 assertFalse(getProspectiveUILanguageCalled);
99 getProspectiveUILanguageCalled = true;
100 cr.webUIResponse(callbackId, true, 'en-US');
101 });
102 142
103 languageHelper = document.createElement('settings-languages'); 143 languageHelper = document.createElement('settings-languages');
104 144
105 // Prefs would normally be data-bound to settings-languages. 145 // Prefs would normally be data-bound to settings-languages.
106 fakeDataBind(settingsPrefs, languageHelper, 'prefs'); 146 fakeDataBind(settingsPrefs, languageHelper, 'prefs');
107 147
108 document.body.appendChild(languageHelper); 148 document.body.appendChild(languageHelper);
109 return languageHelper.whenReady().then(function() { 149 return languageHelper.whenReady().then(function() {
110 assertEquals( 150 if (cr.isChromeOS || cr.isWindows)
111 cr.isChromeOS || cr.isWindows, getProspectiveUILanguageCalled); 151 return browserProxy.whenCalled('getProspectiveUILanguage');
112 }); 152 });
113 }); 153 });
114 154
115 test('languages model', function() { 155 test('languages model', function() {
156 var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
116 for (var i = 0; i < languageSettingsPrivate.languages.length; 157 for (var i = 0; i < languageSettingsPrivate.languages.length;
117 i++) { 158 i++) {
118 assertEquals(languageSettingsPrivate.languages[i].code, 159 assertEquals(languageSettingsPrivate.languages[i].code,
119 languageHelper.languages.supported[i].code); 160 languageHelper.languages.supported[i].code);
120 } 161 }
121 assertLanguageOrder(['en-US', 'sw']); 162 assertLanguageOrder(['en-US', 'sw']);
122 assertEquals('en', languageHelper.languages.translateTarget); 163 assertEquals('en', languageHelper.languages.translateTarget);
123 164
124 // TODO(michaelpg): Test other aspects of the model. 165 // TODO(michaelpg): Test other aspects of the model.
125 }); 166 });
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // The US Swahili keyboard should still be enabled, because it supports 239 // The US Swahili keyboard should still be enabled, because it supports
199 // English which is still enabled. 240 // English which is still enabled.
200 assertTrue(languageHelper.languages.inputMethods.enabled.some( 241 assertTrue(languageHelper.languages.inputMethods.enabled.some(
201 function(inputMethod) { 242 function(inputMethod) {
202 return inputMethod.id == swUS; 243 return inputMethod.id == swUS;
203 })); 244 }));
204 }); 245 });
205 } 246 }
206 }); 247 });
207 }); 248 });
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