Chromium Code Reviews| Index: chrome/test/data/webui/settings/languages_tests.js |
| diff --git a/chrome/test/data/webui/settings/languages_tests.js b/chrome/test/data/webui/settings/languages_tests.js |
| index 7d6f583311f7a1ec97693c1f27466a8741f66c31..cb97715a248d212b2cd609f6ed9e3a0ddf01a558 100644 |
| --- a/chrome/test/data/webui/settings/languages_tests.js |
| +++ b/chrome/test/data/webui/settings/languages_tests.js |
| @@ -4,6 +4,55 @@ |
| cr.define('settings-languages', function() { |
| /** |
| + * @constructor |
| + * @implements {settings.LanguagesBrowserProxy} |
| + * @extends {settings.TestBrowserProxy} |
| + */ |
| + var TestLanguagesBrowserProxy = function() { |
| + var methodNames = []; |
| + if (cr.isChromeOS || cr.isWindows) |
| + methodNames.push('getProspectiveUILanguage'); |
| + |
| + settings.TestBrowserProxy.call(this, methodNames); |
| + |
| + 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.
|
| + this.inputMethodPrivate_ = null; |
| + }; |
| + |
| + TestLanguagesBrowserProxy.prototype = { |
| + __proto__: settings.TestBrowserProxy.prototype, |
| + |
| + /** @override */ |
| + getLanguageSettingsPrivate: function() { |
| + return this.languageSettingsPrivate_; |
| + }, |
| + |
| + /** @param {!LanguagesSettingsPrivate} private */ |
| + setLanguageSettingsPrivate: function(private) { |
| + 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.
|
| + }, |
| + |
| + /** @override */ |
| + getInputMethodPrivate: function() { |
| + return this.inputMethodPrivate_; |
| + }, |
| + |
| + /** @param {!LanguagesSettingsPrivate} private */ |
| + setInputMethodPrivate: function(private) { |
| + this.inputMethodPrivate_ = private; |
| + }, |
| + }; |
| + |
| + if (cr.isChromeOS || cr.isWindows) { |
| + /** @override */ |
| + TestLanguagesBrowserProxy.prototype.getProspectiveUILanguage = |
| + function() { |
| + this.methodCalled('getProspectiveUILanguage'); |
| + return Promise.resolve('en-US'); |
| + }; |
| + } |
| + |
| + /** |
| * Data-binds two Polymer properties using the property-changed events and |
| * set/notifyPath API. Useful for testing components which would normally be |
| * used together. |
| @@ -74,8 +123,10 @@ cr.define('settings-languages', function() { |
| } |
| } |
| + /** @type {?settings.LanguagesBrowserProxy} */ |
| + var browserProxy = null; |
| + |
| var languageHelper; |
| - var languageSettingsPrivate; |
| suiteSetup(function() { |
| CrSettingsPrefs.deferInitialization = true; |
| @@ -88,17 +139,17 @@ cr.define('settings-languages', function() { |
| settingsPrefs.initialize(settingsPrivate); |
| document.body.appendChild(settingsPrefs); |
| - languageSettingsPrivate = new settings.FakeLanguageSettingsPrivate(); |
| + // Setup test browser proxy. |
| + browserProxy = new TestLanguagesBrowserProxy(); |
| + settings.LanguagesBrowserProxyImpl.instance_ = browserProxy; |
| + |
| + // Setup fake languageSettingsPrivate API. |
| + 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
|
| languageSettingsPrivate.setSettingsPrefs(settingsPrefs); |
| - settings.languageSettingsPrivateApiForTest = languageSettingsPrivate; |
| + browserProxy.setLanguageSettingsPrivate(languageSettingsPrivate); |
| - var getProspectiveUILanguageCalled = false; |
| - registerMessageCallback('getProspectiveUILanguage', null, |
| - function(callbackId) { |
| - assertFalse(getProspectiveUILanguageCalled); |
| - getProspectiveUILanguageCalled = true; |
| - cr.webUIResponse(callbackId, true, 'en-US'); |
| - }); |
| + // Setup fake inputMethodPrivate API. |
| + browserProxy.setInputMethodPrivate(new settings.FakeInputMethodPrivate()); |
| languageHelper = document.createElement('settings-languages'); |
| @@ -107,12 +158,13 @@ cr.define('settings-languages', function() { |
| document.body.appendChild(languageHelper); |
| return languageHelper.whenReady().then(function() { |
| - assertEquals( |
| - cr.isChromeOS || cr.isWindows, getProspectiveUILanguageCalled); |
| + if (cr.isChromeOS || cr.isWindows) |
| + return browserProxy.whenCalled('getProspectiveUILanguage'); |
| }); |
| }); |
| test('languages model', function() { |
| + var languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate(); |
| for (var i = 0; i < languageSettingsPrivate.languages.length; |
| i++) { |
| assertEquals(languageSettingsPrivate.languages[i].code, |