| OLD | NEW |
| 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', | |
| 11 ResetBannerReset: 'ResetBannerReset', | |
| 12 ResetProfileDialogAction: 'ResetProfileDialogAction', | 10 ResetProfileDialogAction: 'ResetProfileDialogAction', |
| 13 ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose', | 11 ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose', |
| 14 ResetProfileDialogOriginUnknown: 'ResetProfileDialogOriginUnknown', | 12 ResetProfileDialogOriginUnknown: 'ResetProfileDialogOriginUnknown', |
| 15 ResetProfileDialogOriginUserClick: 'ResetProfileDialogOriginUserClick', | 13 ResetProfileDialogOriginUserClick: 'ResetProfileDialogOriginUserClick', |
| 16 ResetProfileDialogOriginTriggeredReset: | 14 ResetProfileDialogOriginTriggeredReset: |
| 17 'ResetProfileDialogOriginTriggeredReset', | 15 'ResetProfileDialogOriginTriggeredReset', |
| 18 }; | 16 }; |
| 19 | 17 |
| 20 /** | |
| 21 * @constructor | |
| 22 * @implements {settings.ResetBrowserProxy} | |
| 23 * @extends {settings.TestBrowserProxy} | |
| 24 */ | |
| 25 var TestResetBrowserProxy = function() { | |
| 26 settings.TestBrowserProxy.call(this, [ | |
| 27 'performResetProfileSettings', | |
| 28 'onHideResetProfileDialog', | |
| 29 'onHideResetProfileBanner', | |
| 30 'onShowResetProfileDialog', | |
| 31 'showReportedSettings', | |
| 32 'getTriggeredResetToolName', | |
| 33 'onPowerwashDialogShow', | |
| 34 ]); | |
| 35 }; | |
| 36 | |
| 37 TestResetBrowserProxy.prototype = { | |
| 38 __proto__: settings.TestBrowserProxy.prototype, | |
| 39 | |
| 40 /** @override */ | |
| 41 performResetProfileSettings: function(sendSettings, requestOrigin) { | |
| 42 this.methodCalled('performResetProfileSettings', requestOrigin); | |
| 43 return Promise.resolve(); | |
| 44 }, | |
| 45 | |
| 46 /** @override */ | |
| 47 onHideResetProfileDialog: function() { | |
| 48 this.methodCalled('onHideResetProfileDialog'); | |
| 49 }, | |
| 50 | |
| 51 /** @override */ | |
| 52 onHideResetProfileBanner: function() { | |
| 53 this.methodCalled('onHideResetProfileBanner'); | |
| 54 }, | |
| 55 | |
| 56 /** @override */ | |
| 57 onShowResetProfileDialog: function() { | |
| 58 this.methodCalled('onShowResetProfileDialog'); | |
| 59 }, | |
| 60 | |
| 61 /** @override */ | |
| 62 showReportedSettings: function() { | |
| 63 this.methodCalled('showReportedSettings'); | |
| 64 }, | |
| 65 | |
| 66 /** @override */ | |
| 67 getTriggeredResetToolName: function() { | |
| 68 this.methodCalled('getTriggeredResetToolName'); | |
| 69 return Promise.resolve('WonderfulAV'); | |
| 70 }, | |
| 71 | |
| 72 /** @override */ | |
| 73 onPowerwashDialogShow: function() { | |
| 74 this.methodCalled('onPowerwashDialogShow'); | |
| 75 }, | |
| 76 }; | |
| 77 | |
| 78 function registerBannerTests() { | |
| 79 suite('BannerTests', function() { | |
| 80 var resetBanner = null; | |
| 81 var browserProxy = null; | |
| 82 | |
| 83 suiteSetup(function() { | |
| 84 return PolymerTest.importHtml( | |
| 85 'chrome://md-settings/reset_page/reset_profile_banner.html'); | |
| 86 }); | |
| 87 | |
| 88 setup(function() { | |
| 89 browserProxy = new TestResetBrowserProxy(); | |
| 90 settings.ResetBrowserProxyImpl.instance_ = browserProxy; | |
| 91 PolymerTest.clearBody(); | |
| 92 resetBanner = document.createElement('settings-reset-profile-banner'); | |
| 93 document.body.appendChild(resetBanner); | |
| 94 }); | |
| 95 | |
| 96 teardown(function() { resetBanner.remove(); }); | |
| 97 | |
| 98 // Tests that the reset profile banner | |
| 99 // - opens the reset profile dialog when the reset button is clicked. | |
| 100 // - reset happens when clicking on the dialog's reset button. | |
| 101 // - the reset profile dialog is closed after reset is done. | |
| 102 test(TestNames.ResetBannerReset, function() { | |
| 103 var dialog = resetBanner.$$('settings-reset-profile-dialog'); | |
| 104 assertFalse(!!dialog); | |
| 105 MockInteractions.tap(resetBanner.$.reset); | |
| 106 Polymer.dom.flush(); | |
| 107 assertTrue(resetBanner.showResetProfileDialog_) | |
| 108 dialog = resetBanner.$$('settings-reset-profile-dialog'); | |
| 109 assertTrue(!!dialog); | |
| 110 | |
| 111 MockInteractions.tap(dialog.$.reset); | |
| 112 | |
| 113 return browserProxy.whenCalled('performResetProfileSettings') | |
| 114 .then(PolymerTest.flushTasks) | |
| 115 .then(function() { | |
| 116 assertFalse(resetBanner.showResetProfileDialog_); | |
| 117 dialog = resetBanner.$$('settings-reset-profile-dialog'); | |
| 118 assertFalse(!!dialog); | |
| 119 }); | |
| 120 }); | |
| 121 | |
| 122 // Tests that the reset profile banner removes itself from the DOM when | |
| 123 // the close button is clicked and that |onHideResetProfileBanner| is | |
| 124 // called. | |
| 125 test(TestNames.ResetBannerClose, function() { | |
| 126 MockInteractions.tap(resetBanner.$.close); | |
| 127 assertFalse(!!resetBanner.parentNode); | |
| 128 return browserProxy.whenCalled('onHideResetProfileBanner'); | |
| 129 }); | |
| 130 }); | |
| 131 } | |
| 132 | |
| 133 function registerDialogTests() { | 18 function registerDialogTests() { |
| 134 suite('DialogTests', function() { | 19 suite('DialogTests', function() { |
| 135 var resetPage = null; | 20 var resetPage = null; |
| 136 | 21 |
| 137 /** @type {!settings.ResetPageBrowserProxy} */ | 22 /** @type {!settings.ResetPageBrowserProxy} */ |
| 138 var resetPageBrowserProxy = null; | 23 var resetPageBrowserProxy = null; |
| 139 | 24 |
| 140 /** @type {!settings.LifetimeBrowserProxy} */ | 25 /** @type {!settings.LifetimeBrowserProxy} */ |
| 141 var lifetimeBrowserProxy = null; | 26 var lifetimeBrowserProxy = null; |
| 142 | 27 |
| 143 setup(function() { | 28 setup(function() { |
| 144 if (cr.isChromeOS) { | 29 if (cr.isChromeOS) { |
| 145 lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy(); | 30 lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy(); |
| 146 settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy; | 31 settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy; |
| 147 } | 32 } |
| 148 | 33 |
| 149 resetPageBrowserProxy = new TestResetBrowserProxy(); | 34 resetPageBrowserProxy = new reset_page.TestResetBrowserProxy(); |
| 150 settings.ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy; | 35 settings.ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy; |
| 151 | 36 |
| 152 PolymerTest.clearBody(); | 37 PolymerTest.clearBody(); |
| 153 resetPage = document.createElement('settings-reset-page'); | 38 resetPage = document.createElement('settings-reset-page'); |
| 154 document.body.appendChild(resetPage); | 39 document.body.appendChild(resetPage); |
| 155 }); | 40 }); |
| 156 | 41 |
| 157 teardown(function() { resetPage.remove(); }); | 42 teardown(function() { resetPage.remove(); }); |
| 158 | 43 |
| 159 /** | 44 /** |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 Polymer.dom.flush(); | 197 Polymer.dom.flush(); |
| 313 var dialog = resetPage.$$('settings-powerwash-dialog'); | 198 var dialog = resetPage.$$('settings-powerwash-dialog'); |
| 314 assertTrue(!!dialog); | 199 assertTrue(!!dialog); |
| 315 MockInteractions.tap(dialog.$.powerwash); | 200 MockInteractions.tap(dialog.$.powerwash); |
| 316 return lifetimeBrowserProxy.whenCalled('factoryReset'); | 201 return lifetimeBrowserProxy.whenCalled('factoryReset'); |
| 317 }); | 202 }); |
| 318 } | 203 } |
| 319 }); | 204 }); |
| 320 } | 205 } |
| 321 | 206 |
| 322 return { | 207 registerDialogTests(); |
| 323 registerTests: function() { | |
| 324 registerBannerTests(); | |
| 325 registerDialogTests(); | |
| 326 }, | |
| 327 }; | |
| 328 }); | 208 }); |
| OLD | NEW |