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

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

Issue 1896283003: [MD settings] appearance theme and wallpaper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review changes Created 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 /** @fileoverview Runs polymer appearance font settings elements. */ 5 /** @fileoverview Runs polymer appearance font settings elements. */
6 6
7 cr.define('settings_appearance', function() { 7 cr.define('settings_appearance', function() {
8 /** 8 /**
9 * A test version of AppearanceBrowserProxy.
10 *
11 * @constructor
12 * @implements {settings.AppearanceBrowserProxy}
13 * @extends {settings.TestBrowserProxy}
14 */
15 var TestAppearanceBrowserProxy = function() {
16 settings.TestBrowserProxy.call(this, [
17 'getResetThemeEnabled',
18 'openWallpaperManager',
19 'resetTheme',
20 ]);
21
22 /** @type {boolean} */
23 this.allowResetTheme = false;
dpapad 2016/04/20 01:16:58 This can be private (allowResetTheme_).
dschuyler 2016/04/20 19:15:45 Done.
24 };
25
26 TestAppearanceBrowserProxy.prototype = {
27 __proto__: settings.TestBrowserProxy.prototype,
28
29 /** @override */
30 getResetThemeEnabled: function() {
31 this.methodCalled('getResetThemeEnabled');
32 return Promise.resolve(this.allowResetTheme);
33 },
34
35 /** @override */
36 openWallpaperManager: function() {
37 this.methodCalled('openWallpaperManager');
38 },
39
40 /** @override */
41 resetTheme: function() {
42 this.methodCalled('resetTheme');
43 },
44
45 setAllowResetTheme: function(isEnabled) {
dpapad 2016/04/20 01:16:58 Nit: Add @param
dschuyler 2016/04/20 19:15:45 Done.
46 this.allowResetTheme = isEnabled;
47 cr.webUIListenerCallback('reset-theme-enabled-changed', isEnabled);
48 Polymer.dom.flush();
49 }
50 };
51
52 /**
9 * A test version of FontsBrowserProxy. 53 * A test version of FontsBrowserProxy.
10 * 54 *
11 * @constructor 55 * @constructor
12 * @implements {settings.FontsBrowserProxy} 56 * @implements {settings.FontsBrowserProxy}
13 * @extends {settings.TestBrowserProxy} 57 * @extends {settings.TestBrowserProxy}
14 */ 58 */
15 var TestFontsBrowserProxy = function() { 59 var TestFontsBrowserProxy = function() {
16 settings.TestBrowserProxy.call(this, [ 60 settings.TestBrowserProxy.call(this, [
17 'fetchFontsData', 61 'fetchFontsData',
18 'observeAdvancedFontExtensionAvailable', 62 'observeAdvancedFontExtensionAvailable',
63 'openAdvancedFontSettings',
19 ]); 64 ]);
20 65
21 /** @private {!FontsData} */ 66 /** @private {!FontsData} */
22 this.fontsData_ = { 67 this.fontsData_ = {
23 'fontList': [['font name', 'alternate', 'ltr']], 68 'fontList': [['font name', 'alternate', 'ltr']],
24 'encodingList': [['encoding name', 'alternate', 'ltr']], 69 'encodingList': [['encoding name', 'alternate', 'ltr']],
25 }; 70 };
26 }; 71 };
27 72
28 TestFontsBrowserProxy.prototype = { 73 TestFontsBrowserProxy.prototype = {
29 __proto__: settings.TestBrowserProxy.prototype, 74 __proto__: settings.TestBrowserProxy.prototype,
30 75
31 /** @override */ 76 /** @override */
32 fetchFontsData: function() { 77 fetchFontsData: function() {
33 this.methodCalled('fetchFontsData'); 78 this.methodCalled('fetchFontsData');
34 return Promise.resolve(this.fontsData_); 79 return Promise.resolve(this.fontsData_);
35 }, 80 },
36 81
37 /** @override */ 82 /** @override */
38 observeAdvancedFontExtensionAvailable: function() { 83 observeAdvancedFontExtensionAvailable: function() {
39 this.methodCalled('observeAdvancedFontExtensionAvailable'); 84 this.methodCalled('observeAdvancedFontExtensionAvailable');
40 }, 85 },
86
87 /** @override */
88 openAdvancedFontSettings: function() {
89 this.methodCalled('openAdvancedFontSettings');
90 },
41 }; 91 };
42 92
93 function registerAppearanceSettingsBrowserTest() {
94 var appearancePage = null;
95
96 /** @type {?TestAppearanceBrowserProxy} */
97 var appearanceBrowserProxy = null;
98
99 suite('AppearanceHandler', function() {
100 setup(function() {
101 appearanceBrowserProxy = new TestAppearanceBrowserProxy();
102 settings.AppearanceBrowserProxyImpl.instance_ = appearanceBrowserProxy;
103
104 PolymerTest.clearBody();
105
106 appearancePage = document.createElement('settings-appearance-page');
107 document.body.appendChild(appearancePage);
108 });
109
110 teardown(function() { appearancePage.remove(); });
111
112 if (cr.isChromeOS) {
113 test('wallpaperManager', function() {
114 var button = appearancePage.$.wallpaperButton;
115 assertTrue(!!button);
116 MockInteractions.tap(button);
117 return appearanceBrowserProxy.whenCalled('openWallpaperManager');
118 });
119 } else {
120 test('noWallpaperManager', function() {
121 // The wallpaper button should not be present.
122 var button = appearancePage.$.wallpaperButton;
123 assertFalse(!!button);
124 });
125 }
126
127 test('resetTheme', function() {
128 appearanceBrowserProxy.setAllowResetTheme(true);
129 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 .$$
130 assertTrue(!!button);
131 MockInteractions.tap(button);
132 return appearanceBrowserProxy.whenCalled('resetTheme');
133 });
134 });
135 }
136
43 function registerAppearanceFontSettingsBrowserTest() { 137 function registerAppearanceFontSettingsBrowserTest() {
44 var fontsPage = null; 138 var fontsPage = null;
45 139
46 /** @type {?TestFontsBrowserProxy} */ 140 /** @type {?TestFontsBrowserProxy} */
47 var fontsBrowserProxy = null; 141 var fontsBrowserProxy = null;
48 142
49 suite('AppearanceFontHandler', function() { 143 suite('AppearanceFontHandler', function() {
50 setup(function() { 144 setup(function() {
51 fontsBrowserProxy = new TestFontsBrowserProxy(); 145 fontsBrowserProxy = new TestFontsBrowserProxy();
52 settings.FontsBrowserProxyImpl.instance_ = fontsBrowserProxy; 146 settings.FontsBrowserProxyImpl.instance_ = fontsBrowserProxy;
53 147
54 PolymerTest.clearBody(); 148 PolymerTest.clearBody();
55 149
56 fontsPage = document.createElement('settings-appearance-fonts-page'); 150 fontsPage = document.createElement('settings-appearance-fonts-page');
57 document.body.appendChild(fontsPage); 151 document.body.appendChild(fontsPage);
58 }); 152 });
59 153
60 teardown(function() { fontsPage.remove(); }); 154 teardown(function() { fontsPage.remove(); });
61 155
62 test('fetchFontsData', function() { 156 test('fetchFontsData', function() {
63 return fontsBrowserProxy.whenCalled('fetchFontsData'); 157 return fontsBrowserProxy.whenCalled('fetchFontsData');
64 }); 158 });
159
160 test('openAdvancedFontSettings', function() {
161 cr.webUIListenerCallback('advanced-font-settings-installed', [true]);
162 Polymer.dom.flush();
163 var button = fontsPage.$$('#advancedButton');
164 assert(!!button);
165 MockInteractions.tap(button);
166 return fontsBrowserProxy.whenCalled('openAdvancedFontSettings');
167 });
65 }); 168 });
66 } 169 }
67 170
68 return { 171 return {
69 registerTests: function() { 172 registerTests: function() {
70 registerAppearanceFontSettingsBrowserTest(); 173 registerAppearanceFontSettingsBrowserTest();
174 registerAppearanceSettingsBrowserTest();
71 }, 175 },
72 }; 176 };
73 }); 177 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698