Index: chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.cc |
diff --git a/chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.cc b/chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.cc |
index 97e83b6802acfbb6938b0f3fb68f848542cecacb..2d40d03ceabe6ad78c1a6136e97c2cb5bf58a51c 100644 |
--- a/chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.cc |
+++ b/chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/safe_browsing/chrome_cleaner/mock_chrome_cleaner_process_win.h" |
#include <utility> |
+#include <vector> |
#include "base/bind_helpers.h" |
#include "base/memory/ref_counted.h" |
@@ -36,6 +37,7 @@ using ::chrome_cleaner::mojom::PromptAcceptance; |
constexpr char kCrashPointSwitch[] = "mock-crash-point"; |
constexpr char kUwsFoundSwitch[] = "mock-uws-found"; |
constexpr char kRebootRequiredSwitch[] = "mock-reboot-required"; |
+constexpr char kExpectedUserResponseSwitch[] = "mock-expected-user-response"; |
} // namespace |
@@ -58,6 +60,21 @@ bool MockChromeCleanerProcess::Options::FromCommandLine( |
} |
} |
+ if (command_line.HasSwitch(kExpectedUserResponseSwitch)) { |
+ int expected_response_int = 0; |
+ if (base::StringToInt( |
+ command_line.GetSwitchValueASCII(kExpectedUserResponseSwitch), |
+ &expected_response_int) && |
+ expected_response_int >= 0 && |
+ expected_response_int < |
+ static_cast<int>(PromptAcceptance::NUM_VALUES)) { |
+ options->set_expected_user_response( |
+ static_cast<PromptAcceptance>(expected_response_int)); |
+ } else { |
+ return false; |
+ } |
+ } |
+ |
return true; |
} |
@@ -66,14 +83,15 @@ MockChromeCleanerProcess::Options::Options() = default; |
MockChromeCleanerProcess::Options::Options(const Options& other) |
: files_to_delete_(other.files_to_delete_), |
reboot_required_(other.reboot_required_), |
- crash_point_(other.crash_point_) { |
-} |
+ crash_point_(other.crash_point_), |
+ expected_user_response_(other.expected_user_response_) {} |
MockChromeCleanerProcess::Options& MockChromeCleanerProcess::Options::operator=( |
const Options& other) { |
files_to_delete_ = other.files_to_delete_; |
reboot_required_ = other.reboot_required_; |
crash_point_ = other.crash_point_; |
+ expected_user_response_ = other.expected_user_response_; |
return *this; |
} |
@@ -91,6 +109,12 @@ void MockChromeCleanerProcess::Options::AddSwitchesToCommandLine( |
command_line->AppendSwitchASCII( |
kCrashPointSwitch, base::IntToString(static_cast<int>(crash_point()))); |
} |
+ |
+ if (expected_user_response() != PromptAcceptance::UNSPECIFIED) { |
+ command_line->AppendSwitchASCII( |
+ kExpectedUserResponseSwitch, |
+ base::IntToString(static_cast<int>(expected_user_response()))); |
+ } |
} |
void MockChromeCleanerProcess::Options::SetDoFindUws(bool do_find_uws) { |
@@ -114,7 +138,8 @@ int MockChromeCleanerProcess::Options::ExpectedExitCode( |
if (files_to_delete_.empty()) |
return kNothingFoundExitCode; |
- if (received_prompt_acceptance == PromptAcceptance::ACCEPTED) { |
+ if (received_prompt_acceptance == PromptAcceptance::ACCEPTED_WITH_LOGS || |
+ received_prompt_acceptance == PromptAcceptance::ACCEPTED_WITHOUT_LOGS) { |
return reboot_required() ? kRebootRequiredExitCode |
: kRebootNotRequiredExitCode; |
} |
@@ -181,6 +206,7 @@ int MockChromeCleanerProcess::Run() { |
run_loop.Run(); |
EXPECT_NE(received_prompt_acceptance_, PromptAcceptance::UNSPECIFIED); |
+ EXPECT_EQ(received_prompt_acceptance_, options_.expected_user_response()); |
if (::testing::Test::HasFailure()) |
return kInternalTestFailureExitCode; |
return options_.ExpectedExitCode(received_prompt_acceptance_); |