Chromium Code Reviews| Index: chrome/test/data/webui/settings/reset_page_test.js |
| diff --git a/chrome/test/data/webui/settings/reset_page_test.js b/chrome/test/data/webui/settings/reset_page_test.js |
| index ae0714bc295e6af1e336d32328b2b6bb14a14596..a3b120f1c9e6c04cec42b668a6ecb0358cb1d5ba 100644 |
| --- a/chrome/test/data/webui/settings/reset_page_test.js |
| +++ b/chrome/test/data/webui/settings/reset_page_test.js |
| @@ -13,46 +13,87 @@ cr.define('settings_reset_page', function() { |
| ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose', |
| }; |
| - |
| /** |
| - * @param {string} name chrome.send message name. |
| - * @return {!Promise} Fires when chrome.send is called with the given message |
| - * name. |
| + * @constructor |
| + * @implements {settings.ResetBrowserProxy} |
| + * @extends {settings.TestBrowserProxy} |
| */ |
| - function whenChromeSendCalled(name) { |
| - return new Promise(function(resolve, reject) { |
| - registerMessageCallback(name, null, resolve); |
| - }); |
| - } |
| + var TestResetBrowserProxy = function() { |
| + settings.TestBrowserProxy.call(this, [ |
| + 'performResetProfileSettings', |
| + 'onHideResetProfileDialog', |
| + 'onHideResetProfileBanner', |
| + 'onShowResetProfileDialog', |
| + 'onPowerwashDialogShow', |
| + 'requestFactoryResetRestart', |
| + ]); |
| + }; |
| + |
| + TestResetBrowserProxy.prototype = { |
| + __proto__: settings.TestBrowserProxy.prototype, |
| + |
| + /** @override */ |
| + performResetProfileSettings: function(sendSettings) { |
| + this.methodCalled('performResetProfileSettings'); |
| + return Promise.resolve(); |
| + }, |
| + |
| + /** @override */ |
| + onHideResetProfileDialog: function() { |
| + this.methodCalled('onHideResetProfileDialog'); |
| + }, |
| + |
| + /** @override */ |
| + onHideResetProfileBanner: function() { |
| + this.methodCalled('onHideResetProfileBanner'); |
| + }, |
| + |
| + /** @override */ |
| + onShowResetProfileDialog: function() { |
| + this.methodCalled('onShowResetProfileDialog'); |
| + }, |
| + |
| + /** @override */ |
| + onPowerwashDialogShow: function() { |
| + this.methodCalled('onPowerwashDialogShow'); |
| + }, |
| + |
| + /** @override */ |
| + requestFactoryResetRestart: function() { |
| + this.methodCalled('requestFactoryResetRestart'); |
| + }, |
| + }; |
| function registerBannerTests() { |
| suite('BannerTests', function() { |
| var resetBanner = null; |
| + var browserProxy = null; |
| suiteSetup(function() { |
| - return Promise.all([ |
| - PolymerTest.importHtml('chrome://md-settings/i18n_setup.html'), |
| - PolymerTest.importHtml( |
| - 'chrome://md-settings/reset_page/reset_profile_banner.html') |
| - ]); |
| + return PolymerTest.importHtml( |
| + 'chrome://md-settings/reset_page/reset_profile_banner.html'); |
| }); |
| setup(function() { |
| + browserProxy = new TestResetBrowserProxy(); |
| + settings.ResetBrowserProxyImpl.instance_ = browserProxy; |
| PolymerTest.clearBody(); |
| resetBanner = document.createElement('settings-reset-profile-banner'); |
| document.body.appendChild(resetBanner); |
| }); |
| + teardown(function() { resetBanner.remove(); }); |
| + |
| // Tests that the reset profile banner |
| // - opens the reset profile dialog when the reset button is clicked. |
| // - the reset profile dialog is closed after reset is done. |
| test(TestNames.ResetBannerReset, function() { |
| var dialog = resetBanner.$$('settings-reset-profile-dialog'); |
| - assert(!dialog); |
| + assertFalse(!!dialog); |
| MockInteractions.tap(resetBanner.$['reset']); |
| Polymer.dom.flush(); |
| dialog = resetBanner.$$('settings-reset-profile-dialog'); |
| - assertNotEquals(undefined, dialog); |
| + assertTrue(!!dialog); |
| dialog.dispatchResetDoneEvent(); |
| Polymer.dom.flush(); |
| @@ -61,14 +102,12 @@ cr.define('settings_reset_page', function() { |
| }); |
| // Tests that the reset profile banner removes itself from the DOM when |
| - // the close button is clicked and that |
| - // chrome.send('onHideResetProfileBanner') is called. |
| + // the close button is clicked and that |onHideResetProfileBanner| is |
| + // called. |
| test(TestNames.ResetBannerClose, function() { |
| - var whenOnHideResetProfileBanner = whenChromeSendCalled( |
| - 'onHideResetProfileBanner'); |
| MockInteractions.tap(resetBanner.$['close']); |
| - assert(!resetBanner.parentNode); |
| - return whenOnHideResetProfileBanner; |
| + assertFalse(!!resetBanner.parentNode); |
| + return browserProxy.whenCalled('onHideResetProfileBanner'); |
| }); |
| }); |
| } |
| @@ -77,20 +116,15 @@ cr.define('settings_reset_page', function() { |
| suite('DialogTests', function() { |
| var resetPage = null; |
| - suiteSetup(function() { |
| - return Promise.all([ |
| - PolymerTest.importHtml('chrome://md-settings/i18n_setup.html'), |
| - PolymerTest.importHtml( |
| - 'chrome://md-settings/reset_page/reset_page.html') |
| - ]); |
| - }); |
| - |
| setup(function() { |
| + browserProxy = new TestResetBrowserProxy(); |
| + settings.ResetBrowserProxyImpl.instance_ = browserProxy; |
| PolymerTest.clearBody(); |
| resetPage = document.createElement('settings-reset-page'); |
| document.body.appendChild(resetPage); |
| }); |
| + teardown(function() { resetPage.remove(); }); |
| /** |
| * @param {function(SettingsResetProfileDialogElemeent)} |
| @@ -98,30 +132,30 @@ cr.define('settings_reset_page', function() { |
| * @return {!Promise} |
| */ |
| function testOpenCloseResetProfileDialog(closeDialogFn) { |
| - var onShowResetProfileDialogCalled = whenChromeSendCalled( |
| - 'onShowResetProfileDialog'); |
| - var onHideResetProfileDialogCalled = whenChromeSendCalled( |
| - 'onHideResetProfileDialog'); |
| + browserProxy.resetResolver('onShowResetProfileDialog'); |
| + browserProxy.resetResolver('onHideResetProfileDialog'); |
| // Open reset profile dialog. |
| MockInteractions.tap(resetPage.$.resetProfile); |
| var dialog = resetPage.$$('settings-reset-profile-dialog'); |
| + assertTrue(!!dialog); |
| var onDialogClosed = new Promise( |
| function(resolve, reject) { |
| dialog.addEventListener('iron-overlay-closed', resolve); |
| }); |
| - closeDialogFn(dialog); |
| - |
| - return Promise.all([ |
| - onShowResetProfileDialogCalled, |
| - onHideResetProfileDialogCalled, |
| - onDialogClosed |
| - ]); |
| + return browserProxy.whenCalled('onShowResetProfileDialog').then( |
| + function() { |
| + closeDialogFn(dialog); |
| + return Promise.all([ |
| + onDialogClosed, |
|
tommycli
2016/04/05 18:46:29
nit: Tricky but I like it. I think the indentation
dpapad
2016/04/05 19:23:12
You are right, done.
|
| + browserProxy.whenCalled('onHideResetProfileDialog'), |
| + ]); |
| + }); |
| } |
| // Tests that the reset profile dialog opens and closes correctly and that |
| - // chrome.send calls are propagated as expected. |
| + // browserProxy calls are ocurring as expected. |
|
tommycli
2016/04/05 18:46:28
typo: occurring
|
| test(TestNames.ResetProfileDialogOpenClose, function() { |
| return Promise.all([ |
| // Test case where the 'cancel' button is clicked. |
| @@ -143,15 +177,15 @@ cr.define('settings_reset_page', function() { |
| ]); |
| }); |
| - // Tests that when resetting the profile is requested chrome.send calls |
| - // are propagated as expected. |
| + // Tests that when user request to reset the profile the appropriate |
| + // message is sent to the browser. |
| test(TestNames.ResetProfileDialogAction, function() { |
| // Open reset profile dialog. |
| MockInteractions.tap(resetPage.$.resetProfile); |
| var dialog = resetPage.$$('settings-reset-profile-dialog'); |
| - var promise = whenChromeSendCalled('performResetProfileSettings'); |
| + assertTrue(!!dialog); |
| MockInteractions.tap(dialog.$.reset); |
| - return promise; |
| + return browserProxy.whenCalled('performResetProfileSettings'); |
| }); |
| if (cr.isChromeOS) { |
| @@ -162,19 +196,20 @@ cr.define('settings_reset_page', function() { |
| * @return {!Promise} |
| */ |
| function testOpenClosePowerwashDialog(closeButtonFn) { |
| - var onPowerwashDialogShowCalled = whenChromeSendCalled( |
| - 'onPowerwashDialogShow'); |
| - |
| // Open powerwash dialog. |
| MockInteractions.tap(resetPage.$.powerwash); |
| var dialog = resetPage.$$('settings-powerwash-dialog'); |
| + assertTrue(!!dialog); |
| var onDialogClosed = new Promise( |
| function(resolve, reject) { |
| dialog.addEventListener('iron-overlay-closed', resolve); |
| }); |
| MockInteractions.tap(closeButtonFn(dialog)); |
| - return Promise.all([onPowerwashDialogShowCalled, onDialogClosed]); |
| + return Promise.all([ |
| + onDialogClosed, |
| + browserProxy.whenCalled('onPowerwashDialogShow'), |
| + ]); |
| } |
| // Tests that the powerwash dialog opens and closes correctly, and |
| @@ -196,9 +231,9 @@ cr.define('settings_reset_page', function() { |
| // Open powerwash dialog. |
| MockInteractions.tap(resetPage.$.powerwash); |
| var dialog = resetPage.$$('settings-powerwash-dialog'); |
| - var promise = whenChromeSendCalled('requestFactoryResetRestart'); |
| + assertTrue(!!dialog); |
| MockInteractions.tap(dialog.$.powerwash); |
| - return promise; |
| + return browserProxy.whenCalled('requestFactoryResetRestart'); |
| }); |
| } |
| }); |