| 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', | 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 Loading... |
| 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 Loading... |
| 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; |
| 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 Loading... |
| 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(); |
| 258 registerDialogTests(); | 267 registerDialogTests(); |
| 259 }, | 268 }, |
| 260 }; | 269 }; |
| 261 }); | 270 }); |
| OLD | NEW |