Chromium Code Reviews| Index: chrome/test/data/webui/settings/appearance_page_test.js |
| diff --git a/chrome/test/data/webui/settings/appearance_page_test.js b/chrome/test/data/webui/settings/appearance_page_test.js |
| index 0bbb19a81dd11a7d718bc39906080654185ced28..b1dda8dd197753c1da4bd2e96ccd94edff608583 100644 |
| --- a/chrome/test/data/webui/settings/appearance_page_test.js |
| +++ b/chrome/test/data/webui/settings/appearance_page_test.js |
| @@ -6,6 +6,50 @@ |
| cr.define('settings_appearance', function() { |
| /** |
| + * A test version of AppearanceBrowserProxy. |
| + * |
| + * @constructor |
| + * @implements {settings.AppearanceBrowserProxy} |
| + * @extends {settings.TestBrowserProxy} |
| + */ |
| + var TestAppearanceBrowserProxy = function() { |
| + settings.TestBrowserProxy.call(this, [ |
| + 'getResetThemeEnabled', |
| + 'openWallpaperManager', |
| + 'resetTheme', |
| + ]); |
| + |
| + /** @type {boolean} */ |
| + this.allowResetTheme = false; |
|
dpapad
2016/04/20 01:16:58
This can be private (allowResetTheme_).
dschuyler
2016/04/20 19:15:45
Done.
|
| + }; |
| + |
| + TestAppearanceBrowserProxy.prototype = { |
| + __proto__: settings.TestBrowserProxy.prototype, |
| + |
| + /** @override */ |
| + getResetThemeEnabled: function() { |
| + this.methodCalled('getResetThemeEnabled'); |
| + return Promise.resolve(this.allowResetTheme); |
| + }, |
| + |
| + /** @override */ |
| + openWallpaperManager: function() { |
| + this.methodCalled('openWallpaperManager'); |
| + }, |
| + |
| + /** @override */ |
| + resetTheme: function() { |
| + this.methodCalled('resetTheme'); |
| + }, |
| + |
| + setAllowResetTheme: function(isEnabled) { |
|
dpapad
2016/04/20 01:16:58
Nit: Add @param
dschuyler
2016/04/20 19:15:45
Done.
|
| + this.allowResetTheme = isEnabled; |
| + cr.webUIListenerCallback('reset-theme-enabled-changed', isEnabled); |
| + Polymer.dom.flush(); |
| + } |
| + }; |
| + |
| + /** |
| * A test version of FontsBrowserProxy. |
| * |
| * @constructor |
| @@ -16,6 +60,7 @@ cr.define('settings_appearance', function() { |
| settings.TestBrowserProxy.call(this, [ |
| 'fetchFontsData', |
| 'observeAdvancedFontExtensionAvailable', |
| + 'openAdvancedFontSettings', |
| ]); |
| /** @private {!FontsData} */ |
| @@ -38,8 +83,57 @@ cr.define('settings_appearance', function() { |
| observeAdvancedFontExtensionAvailable: function() { |
| this.methodCalled('observeAdvancedFontExtensionAvailable'); |
| }, |
| + |
| + /** @override */ |
| + openAdvancedFontSettings: function() { |
| + this.methodCalled('openAdvancedFontSettings'); |
| + }, |
| }; |
| + function registerAppearanceSettingsBrowserTest() { |
| + var appearancePage = null; |
| + |
| + /** @type {?TestAppearanceBrowserProxy} */ |
| + var appearanceBrowserProxy = null; |
| + |
| + suite('AppearanceHandler', function() { |
| + setup(function() { |
| + appearanceBrowserProxy = new TestAppearanceBrowserProxy(); |
| + settings.AppearanceBrowserProxyImpl.instance_ = appearanceBrowserProxy; |
| + |
| + PolymerTest.clearBody(); |
| + |
| + appearancePage = document.createElement('settings-appearance-page'); |
| + document.body.appendChild(appearancePage); |
| + }); |
| + |
| + teardown(function() { appearancePage.remove(); }); |
| + |
| + if (cr.isChromeOS) { |
| + test('wallpaperManager', function() { |
| + var button = appearancePage.$.wallpaperButton; |
| + assertTrue(!!button); |
| + MockInteractions.tap(button); |
| + return appearanceBrowserProxy.whenCalled('openWallpaperManager'); |
| + }); |
| + } else { |
| + test('noWallpaperManager', function() { |
| + // The wallpaper button should not be present. |
| + var button = appearancePage.$.wallpaperButton; |
| + assertFalse(!!button); |
| + }); |
| + } |
| + |
| + test('resetTheme', function() { |
| + appearanceBrowserProxy.setAllowResetTheme(true); |
| + var button = appearancePage.$$('#resetTheme'); |
|
dpapad
2016/04/20 01:16:58
Nit(optional): No need to query the DOM, when an e
dschuyler
2016/04/20 19:15:45
Ah, because this is in a template, we need
the .$$
|
| + assertTrue(!!button); |
| + MockInteractions.tap(button); |
| + return appearanceBrowserProxy.whenCalled('resetTheme'); |
| + }); |
| + }); |
| + } |
| + |
| function registerAppearanceFontSettingsBrowserTest() { |
| var fontsPage = null; |
| @@ -62,12 +156,22 @@ cr.define('settings_appearance', function() { |
| test('fetchFontsData', function() { |
| return fontsBrowserProxy.whenCalled('fetchFontsData'); |
| }); |
| + |
| + test('openAdvancedFontSettings', function() { |
| + cr.webUIListenerCallback('advanced-font-settings-installed', [true]); |
| + Polymer.dom.flush(); |
| + var button = fontsPage.$$('#advancedButton'); |
| + assert(!!button); |
| + MockInteractions.tap(button); |
| + return fontsBrowserProxy.whenCalled('openAdvancedFontSettings'); |
| + }); |
| }); |
| } |
| return { |
| registerTests: function() { |
| registerAppearanceFontSettingsBrowserTest(); |
| + registerAppearanceSettingsBrowserTest(); |
| }, |
| }; |
| }); |