Commit 6f3a3a46 authored by Demetrios Papadopoulos's avatar Demetrios Papadopoulos Committed by Commit Bot

SplitSettings: Remove powerwash dialog from browser settings reset_page.

Not removing the files from settings_resources.grd yet, because they
are still referenced by about_page.html.

Bug: 990106
Change-Id: Ia030e2f5f71d6cd8b4fe276082c569d136e0b235
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1977004
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Auto-Submit: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726669}
parent 07da21f9
...@@ -10,17 +10,6 @@ js_type_check("closure_compile") { ...@@ -10,17 +10,6 @@ js_type_check("closure_compile") {
":reset_page", ":reset_page",
":reset_profile_dialog", ":reset_profile_dialog",
] ]
if (is_chromeos) {
deps += [ ":powerwash_dialog" ]
}
}
js_library("powerwash_dialog") {
deps = [
":reset_browser_proxy",
"..:lifetime_browser_proxy",
]
} }
js_library("reset_page") { js_library("reset_page") {
......
...@@ -9,10 +9,6 @@ ...@@ -9,10 +9,6 @@
<link rel="import" href="../settings_page/settings_animated_pages.html"> <link rel="import" href="../settings_page/settings_animated_pages.html">
<link rel="import" href="../settings_shared_css.html"> <link rel="import" href="../settings_shared_css.html">
<if expr="chromeos">
<link rel="import" href="powerwash_dialog.html">
</if>
<if expr="_google_chrome and is_win"> <if expr="_google_chrome and is_win">
<link rel="import" href="../chrome_cleanup_page/chrome_cleanup_page.html"> <link rel="import" href="../chrome_cleanup_page/chrome_cleanup_page.html">
<link rel="import" href="../incompatible_applications_page/incompatible_applications_page.html"> <link rel="import" href="../incompatible_applications_page/incompatible_applications_page.html">
...@@ -34,15 +30,6 @@ ...@@ -34,15 +30,6 @@
</settings-reset-profile-dialog> </settings-reset-profile-dialog>
</template> </template>
</cr-lazy-render> </cr-lazy-render>
<if expr="chromeos">
<cr-link-row class="hr" hidden="[[!allowPowerwash_]]" id="powerwash"
label="$i18n{powerwashTitle}" on-click="onShowPowerwashDialog_"
sub-label="$i18n{powerwashDescription}"></cr-link-row>
<template is="dom-if" if="[[showPowerwashDialog_]]" restamp>
<settings-powerwash-dialog on-close="onPowerwashDialogClose_">
</settings-powerwash-dialog>
</template>
</if>
<if expr="_google_chrome and is_win"> <if expr="_google_chrome and is_win">
<cr-link-row class="hr" id="chromeCleanupSubpageTrigger" <cr-link-row class="hr" id="chromeCleanupSubpageTrigger"
label="$i18n{resetCleanupComputerTrigger}" label="$i18n{resetCleanupComputerTrigger}"
......
...@@ -6,14 +6,6 @@ ...@@ -6,14 +6,6 @@
* @fileoverview * @fileoverview
* 'settings-reset-page' is the settings page containing reset * 'settings-reset-page' is the settings page containing reset
* settings. * settings.
*
* Example:
*
* <iron-animated-pages>
* <settings-reset-page prefs="{{prefs}}">
* </settings-reset-page>
* ... other pages ...
* </iron-animated-pages>
*/ */
Polymer({ Polymer({
is: 'settings-reset-page', is: 'settings-reset-page',
...@@ -24,21 +16,6 @@ Polymer({ ...@@ -24,21 +16,6 @@ Polymer({
/** Preferences state. */ /** Preferences state. */
prefs: Object, prefs: Object,
// <if expr="chromeos">
/**
* Dictionary defining page visibility.
* @type {!ResetPageVisibility}
*/
pageVisibility: Object,
/** @private */
showPowerwashDialog_: Boolean,
/** @private */
allowPowerwash_: Boolean,
// </if>
// <if expr="_google_chrome and is_win"> // <if expr="_google_chrome and is_win">
/** @private */ /** @private */
showIncompatibleApplications_: { showIncompatibleApplications_: {
...@@ -50,15 +27,6 @@ Polymer({ ...@@ -50,15 +27,6 @@ Polymer({
// </if> // </if>
}, },
// <if expr="chromeos">
/** @override */
ready: function() {
// TODO(hsuregan): Remove when OS settings migration is complete.
this.allowPowerwash_ = loadTimeData.getBoolean('allowPowerwash') &&
this.pageVisibility.powerwash;
},
// </if>
/** /**
* settings.RouteObserverBehavior * settings.RouteObserverBehavior
* @param {!settings.Route} route * @param {!settings.Route} route
...@@ -93,23 +61,6 @@ Polymer({ ...@@ -93,23 +61,6 @@ Polymer({
cr.ui.focusWithoutInk(assert(this.$.resetProfile)); cr.ui.focusWithoutInk(assert(this.$.resetProfile));
}, },
// <if expr="chromeos">
/**
* @param {!Event} e
* @private
*/
onShowPowerwashDialog_: function(e) {
e.preventDefault();
this.showPowerwashDialog_ = true;
},
/** @private */
onPowerwashDialogClose_: function() {
this.showPowerwashDialog_ = false;
cr.ui.focusWithoutInk(assert(this.$.powerwash));
},
// </if>
// <if expr="_google_chrome and is_win"> // <if expr="_google_chrome and is_win">
/** @private */ /** @private */
onChromeCleanupTap_: function() { onChromeCleanupTap_: function() {
...@@ -121,5 +72,4 @@ Polymer({ ...@@ -121,5 +72,4 @@ Polymer({
settings.navigateTo(settings.routes.INCOMPATIBLE_APPLICATIONS); settings.navigateTo(settings.routes.INCOMPATIBLE_APPLICATIONS);
}, },
// </if> // </if>
}); });
...@@ -5,10 +5,6 @@ ...@@ -5,10 +5,6 @@
cr.define('settings_reset_page', function() { cr.define('settings_reset_page', function() {
/** @enum {string} */ /** @enum {string} */
const TestNames = { const TestNames = {
// TODO(crbug/950007): Remove PowerwashDialogAction and
// PowerwashDialogOpenClose associated tests when SplitSettings is complete.
PowerwashDialogAction: 'PowerwashDialogAction',
PowerwashDialogOpenClose: 'PowerwashDialogOpenClose',
ResetProfileDialogAction: 'ResetProfileDialogAction', ResetProfileDialogAction: 'ResetProfileDialogAction',
ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose', ResetProfileDialogOpenClose: 'ResetProfileDialogOpenClose',
ResetProfileDialogOriginUnknown: 'ResetProfileDialogOriginUnknown', ResetProfileDialogOriginUnknown: 'ResetProfileDialogOriginUnknown',
...@@ -17,199 +13,142 @@ cr.define('settings_reset_page', function() { ...@@ -17,199 +13,142 @@ cr.define('settings_reset_page', function() {
'ResetProfileDialogOriginTriggeredReset', 'ResetProfileDialogOriginTriggeredReset',
}; };
function registerDialogTests() { suite('DialogTests', function() {
suite('DialogTests', function() { let resetPage = null;
let resetPage = null;
/** @type {!settings.ResetPageBrowserProxy} */
/** @type {!settings.ResetPageBrowserProxy} */ let resetPageBrowserProxy = null;
let resetPageBrowserProxy = null;
/** @type {!settings.LifetimeBrowserProxy} */
/** @type {!settings.LifetimeBrowserProxy} */ let lifetimeBrowserProxy = null;
let lifetimeBrowserProxy = null;
setup(function() {
setup(function() { if (cr.isChromeOS) {
if (cr.isChromeOS) { lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy();
lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy(); settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
}
resetPageBrowserProxy = new reset_page.TestResetBrowserProxy();
settings.ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
PolymerTest.clearBody();
resetPage = document.createElement('settings-reset-page');
if (cr.isChromeOS) {
resetPage.pageVisibility = {powerwash: true};
}
document.body.appendChild(resetPage);
});
teardown(function() {
resetPage.remove();
});
/**
* @param {function(SettingsResetProfileDialogElement)}
* closeDialogFn A function to call for closing the dialog.
* @return {!Promise}
*/
function testOpenCloseResetProfileDialog(closeDialogFn) {
resetPageBrowserProxy.resetResolver('onShowResetProfileDialog');
resetPageBrowserProxy.resetResolver('onHideResetProfileDialog');
// Open reset profile dialog.
resetPage.$.resetProfile.click();
Polymer.dom.flush();
const dialog = resetPage.$$('settings-reset-profile-dialog');
assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open);
const whenDialogClosed = test_util.eventToPromise('close', dialog);
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog')
.then(function() {
closeDialogFn(dialog);
return Promise.all([
whenDialogClosed,
resetPageBrowserProxy.whenCalled('onHideResetProfileDialog'),
]);
});
} }
// Tests that the reset profile dialog opens and closes correctly and that resetPageBrowserProxy = new reset_page.TestResetBrowserProxy();
// resetPageBrowserProxy calls are occurring as expected. settings.ResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
test(TestNames.ResetProfileDialogOpenClose, function() {
return testOpenCloseResetProfileDialog(function(dialog) { PolymerTest.clearBody();
// Test case where the 'cancel' button is clicked. resetPage = document.createElement('settings-reset-page');
dialog.$.cancel.click(); if (cr.isChromeOS) {
}) resetPage.pageVisibility = {powerwash: true};
.then(function() {
return testOpenCloseResetProfileDialog(function(dialog) {
// Test case where the browser's 'back' button is clicked.
resetPage.currentRouteChanged(settings.routes.BASIC);
});
});
});
// 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.
resetPage.$.resetProfile.click();
Polymer.dom.flush();
const dialog = resetPage.$$('settings-reset-profile-dialog');
assertTrue(!!dialog);
const checkbox = dialog.$$('[slot=footer] cr-checkbox');
assertTrue(checkbox.checked);
const showReportedSettingsLink = dialog.$$('[slot=footer] a');
assertTrue(!!showReportedSettingsLink);
showReportedSettingsLink.click();
return resetPageBrowserProxy.whenCalled('showReportedSettings')
.then(function() {
// Ensure that the checkbox was not toggled as a result of
// clicking the link.
assertTrue(checkbox.checked);
assertFalse(dialog.$.reset.disabled);
assertFalse(dialog.$.resetSpinner.active);
dialog.$.reset.click();
assertTrue(dialog.$.reset.disabled);
assertTrue(dialog.$.cancel.disabled);
assertTrue(dialog.$.resetSpinner.active);
return resetPageBrowserProxy.whenCalled(
'performResetProfileSettings');
});
});
function testResetRequestOrigin(expectedOrigin) {
const dialog = resetPage.$$('settings-reset-profile-dialog');
assertTrue(!!dialog);
dialog.$.reset.click();
return resetPageBrowserProxy.whenCalled('performResetProfileSettings')
.then(function(resetRequest) {
assertEquals(expectedOrigin, resetRequest);
});
} }
document.body.appendChild(resetPage);
});
test(TestNames.ResetProfileDialogOriginUnknown, function() { teardown(function() {
settings.navigateTo(settings.routes.RESET_DIALOG); resetPage.remove();
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog') });
.then(function() {
return testResetRequestOrigin('');
});
});
test(TestNames.ResetProfileDialogOriginUserClick, function() { /**
resetPage.$.resetProfile.click(); * @param {function(SettingsResetProfileDialogElement)}
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog') * closeDialogFn A function to call for closing the dialog.
.then(function() { * @return {!Promise}
return testResetRequestOrigin('userclick'); */
function testOpenCloseResetProfileDialog(closeDialogFn) {
resetPageBrowserProxy.resetResolver('onShowResetProfileDialog');
resetPageBrowserProxy.resetResolver('onHideResetProfileDialog');
// Open reset profile dialog.
resetPage.$.resetProfile.click();
Polymer.dom.flush();
const dialog = resetPage.$$('settings-reset-profile-dialog');
assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open);
const whenDialogClosed = test_util.eventToPromise('close', dialog);
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog')
.then(function() {
closeDialogFn(dialog);
return Promise.all([
whenDialogClosed,
resetPageBrowserProxy.whenCalled('onHideResetProfileDialog'),
]);
});
}
// Tests that the reset profile dialog opens and closes correctly and that
// resetPageBrowserProxy calls are occurring as expected.
test(TestNames.ResetProfileDialogOpenClose, function() {
return testOpenCloseResetProfileDialog(function(dialog) {
// Test case where the 'cancel' button is clicked.
dialog.$.cancel.click();
})
.then(function() {
return testOpenCloseResetProfileDialog(function(dialog) {
// Test case where the browser's 'back' button is clicked.
resetPage.currentRouteChanged(settings.routes.BASIC);
}); });
}); });
});
test(TestNames.ResetProfileDialogOriginTriggeredReset, function() { // Tests that when user request to reset the profile the appropriate
settings.navigateTo(settings.routes.TRIGGERED_RESET_DIALOG); // message is sent to the browser.
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog') test(TestNames.ResetProfileDialogAction, function() {
.then(function() { // Open reset profile dialog.
return testResetRequestOrigin('triggeredreset'); resetPage.$.resetProfile.click();
}); Polymer.dom.flush();
}); const dialog = resetPage.$$('settings-reset-profile-dialog');
assertTrue(!!dialog);
const checkbox = dialog.$$('[slot=footer] cr-checkbox');
assertTrue(checkbox.checked);
const showReportedSettingsLink = dialog.$$('[slot=footer] a');
assertTrue(!!showReportedSettingsLink);
showReportedSettingsLink.click();
return resetPageBrowserProxy.whenCalled('showReportedSettings')
.then(function() {
// Ensure that the checkbox was not toggled as a result of
// clicking the link.
assertTrue(checkbox.checked);
assertFalse(dialog.$.reset.disabled);
assertFalse(dialog.$.resetSpinner.active);
dialog.$.reset.click();
assertTrue(dialog.$.reset.disabled);
assertTrue(dialog.$.cancel.disabled);
assertTrue(dialog.$.resetSpinner.active);
return resetPageBrowserProxy.whenCalled(
'performResetProfileSettings');
});
});
if (cr.isChromeOS) { function testResetRequestOrigin(expectedOrigin) {
/** const dialog = resetPage.$$('settings-reset-profile-dialog');
* @param {function(SettingsPowerwashDialogElement):!Element} assertTrue(!!dialog);
* closeButtonFn A function that returns the button to be used for dialog.$.reset.click();
* closing the dialog. return resetPageBrowserProxy.whenCalled('performResetProfileSettings')
* @return {!Promise} .then(function(resetRequest) {
*/ assertEquals(expectedOrigin, resetRequest);
function testOpenClosePowerwashDialog(closeButtonFn) {
// Open powerwash dialog.
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('settings-powerwash-dialog');
assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open);
const onDialogClosed = new Promise(function(resolve, reject) {
dialog.addEventListener('close', function() {
assertFalse(dialog.$.dialog.open);
resolve();
});
}); });
}
closeButtonFn(dialog).click(); test(TestNames.ResetProfileDialogOriginUnknown, function() {
return Promise.all([ settings.navigateTo(settings.routes.RESET_DIALOG);
onDialogClosed, return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog')
resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'), .then(function() {
]); return testResetRequestOrigin('');
} });
});
// Tests that the powerwash dialog opens and closes correctly, and
// that chrome.send calls are propagated as expected. test(TestNames.ResetProfileDialogOriginUserClick, function() {
test(TestNames.PowerwashDialogOpenClose, function() { resetPage.$.resetProfile.click();
// Test case where the 'cancel' button is clicked. return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog')
return testOpenClosePowerwashDialog(function(dialog) { .then(function() {
return dialog.$.cancel; return testResetRequestOrigin('userclick');
}); });
});
// Tests that when powerwash is requested chrome.send calls are
// propagated as expected.
test(TestNames.PowerwashDialogAction, function() {
// Open powerwash dialog.
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('settings-powerwash-dialog');
assertTrue(!!dialog);
dialog.$.powerwash.click();
return lifetimeBrowserProxy.whenCalled('factoryReset')
.then((requestTpmFirmwareUpdate) => {
assertFalse(requestTpmFirmwareUpdate);
});
});
}
}); });
}
registerDialogTests(); test(TestNames.ResetProfileDialogOriginTriggeredReset, function() {
settings.navigateTo(settings.routes.TRIGGERED_RESET_DIALOG);
return resetPageBrowserProxy.whenCalled('onShowResetProfileDialog')
.then(function() {
return testResetRequestOrigin('triggeredreset');
});
});
});
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment