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

Unified Diff: chrome/browser/ui/webui/settings/reset_settings_handler.cc

Issue 1490503002: MD Settings: Adding unit test for ResetSettingsHandler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing comments. Created 5 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/settings/reset_settings_handler.cc
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 3cc4661a6354cdeec8d316d9a619f81dc488e3a1..df5b2721033fd9ee1dd38fc40fc266b212d8a99d 100644
--- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -43,22 +43,30 @@
namespace settings {
ResetSettingsHandler::ResetSettingsHandler(
- content::WebUIDataSource* html_source, content::WebUI* web_ui) {
+ Profile* profile, bool allow_powerwash) : profile_(profile) {
+#if defined(OS_CHROMEOS)
+ allow_powerwash_ = allow_powerwash;
+#endif // defined(OS_CHROMEOS)
google_brand::GetBrand(&brandcode_);
- Profile* profile = Profile::FromWebUI(web_ui);
- resetter_.reset(new ProfileResetter(profile));
+}
+ResetSettingsHandler::~ResetSettingsHandler() {}
+
+ResetSettingsHandler* ResetSettingsHandler::Create(
+ content::WebUIDataSource* html_source, Profile* profile) {
+ bool allow_powerwash = false;
#if defined(OS_CHROMEOS)
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
- allow_powerwash_ = !connector->IsEnterpriseManaged() &&
+ allow_powerwash = !connector->IsEnterpriseManaged() &&
!user_manager::UserManager::Get()->IsLoggedInAsGuest() &&
!user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser();
- html_source->AddBoolean("allowPowerwash", allow_powerwash_);
+ html_source->AddBoolean("allowPowerwash", allow_powerwash);
#endif // defined(OS_CHROMEOS)
-}
-ResetSettingsHandler::~ResetSettingsHandler() {}
+ // Inject |allow_powerwash| for testing.
+ return new ResetSettingsHandler(profile, allow_powerwash);
+}
void ResetSettingsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback("performResetProfileSettings",
@@ -104,14 +112,13 @@ void ResetSettingsHandler::OnResetProfileSettingsDone(
bool send_feedback) {
web_ui()->CallJavascriptFunction("SettingsResetPage.doneResetting");
if (send_feedback && setting_snapshot_) {
- Profile* profile = Profile::FromWebUI(web_ui());
- ResettableSettingsSnapshot current_snapshot(profile);
+ ResettableSettingsSnapshot current_snapshot(profile_);
int difference = setting_snapshot_->FindDifferentFields(current_snapshot);
if (difference) {
setting_snapshot_->Subtract(current_snapshot);
std::string report = SerializeSettingsReport(*setting_snapshot_,
difference);
- SendSettingsFeedback(report, profile);
+ SendSettingsFeedback(report, profile_);
}
}
setting_snapshot_.reset();
@@ -119,9 +126,8 @@ void ResetSettingsHandler::OnResetProfileSettingsDone(
void ResetSettingsHandler::OnShowResetProfileDialog(
const base::ListValue* value) {
- if (!resetter_->IsActive()) {
- setting_snapshot_.reset(
- new ResettableSettingsSnapshot(Profile::FromWebUI(web_ui())));
+ if (!GetResetter()->IsActive()) {
+ setting_snapshot_.reset(new ResettableSettingsSnapshot(profile_));
setting_snapshot_->RequestShortcuts(base::Bind(
&ResetSettingsHandler::UpdateFeedbackUI, AsWeakPtr()));
UpdateFeedbackUI();
@@ -138,7 +144,7 @@ void ResetSettingsHandler::OnShowResetProfileDialog(
void ResetSettingsHandler::OnHideResetProfileDialog(
const base::ListValue* value) {
- if (!resetter_->IsActive())
+ if (!GetResetter()->IsActive())
setting_snapshot_.reset();
}
@@ -149,8 +155,7 @@ void ResetSettingsHandler::OnSettingsFetched() {
}
void ResetSettingsHandler::ResetProfile(bool send_settings) {
- DCHECK(resetter_);
- DCHECK(!resetter_->IsActive());
+ DCHECK(!GetResetter()->IsActive());
scoped_ptr<BrandcodedDefaultSettings> default_settings;
if (config_fetcher_) {
@@ -165,7 +170,8 @@ void ResetSettingsHandler::ResetProfile(bool send_settings) {
// installation, use default settings.
if (!default_settings)
default_settings.reset(new BrandcodedDefaultSettings);
- resetter_->Reset(
+
+ GetResetter()->Reset(
ProfileResetter::ALL,
default_settings.Pass(),
base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone,
@@ -179,14 +185,19 @@ void ResetSettingsHandler::UpdateFeedbackUI() {
if (!setting_snapshot_)
return;
scoped_ptr<base::ListValue> list = GetReadableFeedbackForSnapshot(
- Profile::FromWebUI(web_ui()),
- *setting_snapshot_);
+ profile_, *setting_snapshot_);
base::DictionaryValue feedback_info;
feedback_info.Set("feedbackInfo", list.release());
web_ui()->CallJavascriptFunction(
"SettingsResetPage.setFeedbackInfo", feedback_info);
}
+ProfileResetter* ResetSettingsHandler::GetResetter() {
+ if (!resetter_)
+ resetter_.reset(new ProfileResetter(profile_));
+ return resetter_.get();
+}
+
#if defined(OS_CHROMEOS)
void ResetSettingsHandler::OnShowPowerwashDialog(
const base::ListValue* args) {

Powered by Google App Engine
This is Rietveld 408576698