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..927d929769641947adacdd7fb97c811ad62a508e 100644 |
--- a/chrome/test/data/webui/settings/appearance_page_test.js |
+++ b/chrome/test/data/webui/settings/appearance_page_test.js |
@@ -6,6 +6,53 @@ |
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} */ |
dpapad
2016/04/20 19:23:08
@private
|
+ this.allowResetTheme_ = false; |
+ }; |
+ |
+ 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'); |
+ }, |
+ |
+ /** |
+ * @param {boolean} isEnabled Whether the user reset the theme. |
+ */ |
+ setAllowResetTheme: function(isEnabled) { |
+ this.allowResetTheme_ = isEnabled; |
+ cr.webUIListenerCallback('reset-theme-enabled-changed', isEnabled); |
+ Polymer.dom.flush(); |
+ } |
+ }; |
+ |
+ /** |
* A test version of FontsBrowserProxy. |
* |
* @constructor |
@@ -16,6 +63,7 @@ cr.define('settings_appearance', function() { |
settings.TestBrowserProxy.call(this, [ |
'fetchFontsData', |
'observeAdvancedFontExtensionAvailable', |
+ 'openAdvancedFontSettings', |
]); |
/** @private {!FontsData} */ |
@@ -38,8 +86,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'); |
+ assertTrue(!!button); |
+ MockInteractions.tap(button); |
+ return appearanceBrowserProxy.whenCalled('resetTheme'); |
+ }); |
+ }); |
+ } |
+ |
function registerAppearanceFontSettingsBrowserTest() { |
var fontsPage = null; |
@@ -62,12 +159,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(); |
}, |
}; |
}); |