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

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

Issue 2052003002: MD Settings: Hook up reset_page to new LifetimeBrowserProxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test. Created 4 years, 6 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/cr_settings_browsertest.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 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 cr.define('settings_reset_page', function() { 5 cr.define('settings_reset_page', function() {
6 /** @enum {string} */ 6 /** @enum {string} */
7 var TestNames = { 7 var TestNames = {
8 PowerwashDialogAction: 'PowerwashDialogAction', 8 PowerwashDialogAction: 'PowerwashDialogAction',
9 PowerwashDialogOpenClose: 'PowerwashDialogOpenClose', 9 PowerwashDialogOpenClose: 'PowerwashDialogOpenClose',
10 ResetBannerClose: 'ResetBannerClose', 10 ResetBannerClose: 'ResetBannerClose',
11 ResetBannerReset: 'ResetBannerReset', 11 ResetBannerReset: 'ResetBannerReset',
12 ResetProfileDialogAction: 'ResetProfileDialogAction', 12 ResetProfileDialogAction: 'ResetProfileDialogAction',
13 ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose', 13 ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose',
14 }; 14 };
15 15
16 /** 16 /**
17 * @constructor 17 * @constructor
18 * @implements {settings.ResetBrowserProxy} 18 * @implements {settings.ResetBrowserProxy}
19 * @extends {settings.TestBrowserProxy} 19 * @extends {settings.TestBrowserProxy}
20 */ 20 */
21 var TestResetBrowserProxy = function() { 21 var TestResetBrowserProxy = function() {
22 settings.TestBrowserProxy.call(this, [ 22 settings.TestBrowserProxy.call(this, [
23 'performResetProfileSettings', 23 'performResetProfileSettings',
24 'onHideResetProfileDialog', 24 'onHideResetProfileDialog',
25 'onHideResetProfileBanner', 25 'onHideResetProfileBanner',
26 'onShowResetProfileDialog', 26 'onShowResetProfileDialog',
27 'showReportedSettings', 27 'showReportedSettings',
28 'onPowerwashDialogShow', 28 'onPowerwashDialogShow',
29 'requestFactoryResetRestart',
30 ]); 29 ]);
31 }; 30 };
32 31
33 TestResetBrowserProxy.prototype = { 32 TestResetBrowserProxy.prototype = {
34 __proto__: settings.TestBrowserProxy.prototype, 33 __proto__: settings.TestBrowserProxy.prototype,
35 34
36 /** @override */ 35 /** @override */
37 performResetProfileSettings: function(sendSettings) { 36 performResetProfileSettings: function(sendSettings) {
38 this.methodCalled('performResetProfileSettings'); 37 this.methodCalled('performResetProfileSettings');
39 return Promise.resolve(); 38 return Promise.resolve();
(...skipping 16 matching lines...) Expand all
56 55
57 /** @override */ 56 /** @override */
58 showReportedSettings: function() { 57 showReportedSettings: function() {
59 this.methodCalled('showReportedSettings'); 58 this.methodCalled('showReportedSettings');
60 }, 59 },
61 60
62 /** @override */ 61 /** @override */
63 onPowerwashDialogShow: function() { 62 onPowerwashDialogShow: function() {
64 this.methodCalled('onPowerwashDialogShow'); 63 this.methodCalled('onPowerwashDialogShow');
65 }, 64 },
66
67 /** @override */
68 requestFactoryResetRestart: function() {
69 this.methodCalled('requestFactoryResetRestart');
70 },
71 }; 65 };
72 66
73 function registerBannerTests() { 67 function registerBannerTests() {
74 suite('BannerTests', function() { 68 suite('BannerTests', function() {
75 var resetBanner = null; 69 var resetBanner = null;
76 var browserProxy = null; 70 var browserProxy = null;
77 71
78 suiteSetup(function() { 72 suiteSetup(function() {
79 return PolymerTest.importHtml( 73 return PolymerTest.importHtml(
80 'chrome://md-settings/reset_page/reset_profile_banner.html'); 74 'chrome://md-settings/reset_page/reset_profile_banner.html');
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 assertFalse(!!resetBanner.parentNode); 109 assertFalse(!!resetBanner.parentNode);
116 return browserProxy.whenCalled('onHideResetProfileBanner'); 110 return browserProxy.whenCalled('onHideResetProfileBanner');
117 }); 111 });
118 }); 112 });
119 } 113 }
120 114
121 function registerDialogTests() { 115 function registerDialogTests() {
122 suite('DialogTests', function() { 116 suite('DialogTests', function() {
123 var resetPage = null; 117 var resetPage = null;
124 118
119 /** @type {!settings.ResetPageBrowserProxy} */
120 var resetPageBrowserProxy = null;
121
122 /** @type {!settings.LifetimeBrowserProxy} */
123 var lifetimeBrowserProxy = null;
tommycli 2016/06/13 22:48:16 Should this only be created on cr.isChromeOS only?
dpapad 2016/06/13 23:02:27 I thought about this (and also tried it). IMO it l
124
125 setup(function() { 125 setup(function() {
126 browserProxy = new TestResetBrowserProxy(); 126 if (cr.isChromeOS) {
127 settings.ResetBrowserProxyImpl.instance_ = browserProxy; 127 lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy();
128 settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
129 }
130
131 resetPageBrowserProxy = new TestResetBrowserProxy();
132 settings.ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
133
128 PolymerTest.clearBody(); 134 PolymerTest.clearBody();
129 resetPage = document.createElement('settings-reset-page'); 135 resetPage = document.createElement('settings-reset-page');
130 document.body.appendChild(resetPage); 136 document.body.appendChild(resetPage);
131 }); 137 });
132 138
133 teardown(function() { resetPage.remove(); }); 139 teardown(function() { resetPage.remove(); });
134 140
135 /** 141 /**
136 * @param {function(SettingsResetProfileDialogElemeent)} 142 * @param {function(SettingsResetProfileDialogElemeent)}
137 * closeDialogFn A function to call for closing the dialog. 143 * closeDialogFn A function to call for closing the dialog.
138 * @return {!Promise} 144 * @return {!Promise}
139 */ 145 */
140 function testOpenCloseResetProfileDialog(closeDialogFn) { 146 function testOpenCloseResetProfileDialog(closeDialogFn) {
141 browserProxy.resetResolver('onShowResetProfileDialog'); 147 resetPageBrowserProxy.resetResolver('onShowResetProfileDialog');
142 browserProxy.resetResolver('onHideResetProfileDialog'); 148 resetPageBrowserProxy.resetResolver('onHideResetProfileDialog');
143 149
144 // Open reset profile dialog. 150 // Open reset profile dialog.
145 MockInteractions.tap(resetPage.$.resetProfile); 151 MockInteractions.tap(resetPage.$.resetProfile);
146 var dialog = resetPage.$$('settings-reset-profile-dialog'); 152 var dialog = resetPage.$$('settings-reset-profile-dialog');
147 assertTrue(!!dialog); 153 assertTrue(!!dialog);
148 var onDialogClosed = new Promise( 154 var onDialogClosed = new Promise(
149 function(resolve, reject) { 155 function(resolve, reject) {
150 dialog.addEventListener('iron-overlay-closed', resolve); 156 dialog.addEventListener('iron-overlay-closed', resolve);
151 }); 157 });
152 158
153 return browserProxy.whenCalled('onShowResetProfileDialog').then( 159 return resetPageBrowserProxy.whenCalled(
160 'onShowResetProfileDialog').then(
154 function() { 161 function() {
155 closeDialogFn(dialog); 162 closeDialogFn(dialog);
156 return Promise.all([ 163 return Promise.all([
157 onDialogClosed, 164 onDialogClosed,
158 browserProxy.whenCalled('onHideResetProfileDialog'), 165 resetPageBrowserProxy.whenCalled('onHideResetProfileDialog'),
159 ]); 166 ]);
160 }); 167 });
161 } 168 }
162 169
163 // Tests that the reset profile dialog opens and closes correctly and that 170 // Tests that the reset profile dialog opens and closes correctly and that
164 // browserProxy calls are occurring as expected. 171 // resetPageBrowserProxy calls are occurring as expected.
165 test(TestNames.ResetProfileDialogOpenClose, function() { 172 test(TestNames.ResetProfileDialogOpenClose, function() {
166 return Promise.all([ 173 return Promise.all([
167 // Test case where the 'cancel' button is clicked. 174 // Test case where the 'cancel' button is clicked.
168 testOpenCloseResetProfileDialog( 175 testOpenCloseResetProfileDialog(
169 function(dialog) { 176 function(dialog) {
170 MockInteractions.tap(dialog.$.cancel); 177 MockInteractions.tap(dialog.$.cancel);
171 }), 178 }),
172 // Test case where the 'close' button is clicked. 179 // Test case where the 'close' button is clicked.
173 testOpenCloseResetProfileDialog( 180 testOpenCloseResetProfileDialog(
174 function(dialog) { 181 function(dialog) {
(...skipping 13 matching lines...) Expand all
188 test(TestNames.ResetProfileDialogAction, function() { 195 test(TestNames.ResetProfileDialogAction, function() {
189 // Open reset profile dialog. 196 // Open reset profile dialog.
190 MockInteractions.tap(resetPage.$.resetProfile); 197 MockInteractions.tap(resetPage.$.resetProfile);
191 var dialog = resetPage.$$('settings-reset-profile-dialog'); 198 var dialog = resetPage.$$('settings-reset-profile-dialog');
192 assertTrue(!!dialog); 199 assertTrue(!!dialog);
193 200
194 var showReportedSettingsLink = dialog.$$('.footer a'); 201 var showReportedSettingsLink = dialog.$$('.footer a');
195 assertTrue(!!showReportedSettingsLink); 202 assertTrue(!!showReportedSettingsLink);
196 MockInteractions.tap(showReportedSettingsLink); 203 MockInteractions.tap(showReportedSettingsLink);
197 204
198 return browserProxy.whenCalled('showReportedSettings').then(function() { 205 return resetPageBrowserProxy.whenCalled('showReportedSettings').then(
199 MockInteractions.tap(dialog.$.reset); 206 function() {
200 return browserProxy.whenCalled('performResetProfileSettings'); 207 MockInteractions.tap(dialog.$.reset);
201 }); 208 return resetPageBrowserProxy.whenCalled(
209 'performResetProfileSettings');
210 });
202 }); 211 });
203 212
204 if (cr.isChromeOS) { 213 if (cr.isChromeOS) {
205 /** 214 /**
206 * @param {function(SettingsPowerwashDialogElemeent):!Element} 215 * @param {function(SettingsPowerwashDialogElemeent):!Element}
207 * closeButtonFn A function that returns the button to be used for 216 * closeButtonFn A function that returns the button to be used for
208 * closing the dialog. 217 * closing the dialog.
209 * @return {!Promise} 218 * @return {!Promise}
210 */ 219 */
211 function testOpenClosePowerwashDialog(closeButtonFn) { 220 function testOpenClosePowerwashDialog(closeButtonFn) {
212 // Open powerwash dialog. 221 // Open powerwash dialog.
213 MockInteractions.tap(resetPage.$.powerwash); 222 MockInteractions.tap(resetPage.$.powerwash);
214 var dialog = resetPage.$$('settings-powerwash-dialog'); 223 var dialog = resetPage.$$('settings-powerwash-dialog');
215 assertTrue(!!dialog); 224 assertTrue(!!dialog);
216 var onDialogClosed = new Promise( 225 var onDialogClosed = new Promise(
217 function(resolve, reject) { 226 function(resolve, reject) {
218 dialog.addEventListener('iron-overlay-closed', resolve); 227 dialog.addEventListener('iron-overlay-closed', resolve);
219 }); 228 });
220 229
221 MockInteractions.tap(closeButtonFn(dialog)); 230 MockInteractions.tap(closeButtonFn(dialog));
222 return Promise.all([ 231 return Promise.all([
223 onDialogClosed, 232 onDialogClosed,
224 browserProxy.whenCalled('onPowerwashDialogShow'), 233 resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'),
225 ]); 234 ]);
226 } 235 }
227 236
228 // Tests that the powerwash dialog opens and closes correctly, and 237 // Tests that the powerwash dialog opens and closes correctly, and
229 // that chrome.send calls are propagated as expected. 238 // that chrome.send calls are propagated as expected.
230 test(TestNames.PowerwashDialogOpenClose, function() { 239 test(TestNames.PowerwashDialogOpenClose, function() {
231 return Promise.all([ 240 return Promise.all([
232 // Test case where the 'cancel' button is clicked. 241 // Test case where the 'cancel' button is clicked.
233 testOpenClosePowerwashDialog( 242 testOpenClosePowerwashDialog(
234 function(dialog) { return dialog.$.cancel; }), 243 function(dialog) { return dialog.$.cancel; }),
235 // Test case where the 'close' button is clicked. 244 // Test case where the 'close' button is clicked.
236 testOpenClosePowerwashDialog( 245 testOpenClosePowerwashDialog(
237 function(dialog) { return dialog.$.dialog.getCloseButton(); }), 246 function(dialog) { return dialog.$.dialog.getCloseButton(); }),
238 ]); 247 ]);
239 }); 248 });
240 249
241 // Tests that when powerwash is requested chrome.send calls are 250 // Tests that when powerwash is requested chrome.send calls are
242 // propagated as expected. 251 // propagated as expected.
243 test(TestNames.PowerwashDialogAction, function() { 252 test(TestNames.PowerwashDialogAction, function() {
244 // Open powerwash dialog. 253 // Open powerwash dialog.
245 MockInteractions.tap(resetPage.$.powerwash); 254 MockInteractions.tap(resetPage.$.powerwash);
246 var dialog = resetPage.$$('settings-powerwash-dialog'); 255 var dialog = resetPage.$$('settings-powerwash-dialog');
247 assertTrue(!!dialog); 256 assertTrue(!!dialog);
248 MockInteractions.tap(dialog.$.powerwash); 257 MockInteractions.tap(dialog.$.powerwash);
249 return browserProxy.whenCalled('requestFactoryResetRestart'); 258 return lifetimeBrowserProxy.whenCalled('factoryReset');
250 }); 259 });
251 } 260 }
252 }); 261 });
253 } 262 }
254 263
255 return { 264 return {
256 registerTests: function() { 265 registerTests: function() {
257 registerBannerTests(); 266 //registerBannerTests();
tommycli 2016/06/13 22:48:17 nit: is this a leftover?
dpapad 2016/06/13 23:02:27 Oops, yes this should not be commented out, revert
258 registerDialogTests(); 267 registerDialogTests();
259 }, 268 },
260 }; 269 };
261 }); 270 });
OLDNEW
« no previous file with comments | « chrome/test/data/webui/settings/cr_settings_browsertest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698