Chromium Code Reviews| Index: chrome/browser/chromeos/arc/extensions/fake_arc_support.cc |
| diff --git a/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc b/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc |
| index 2b2063ac1c8d92f58eea59e8d079e6ccbe820a82..dd103e6b6fd83cab75a9164325bb028eee5af4ef 100644 |
| --- a/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc |
| +++ b/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc |
| @@ -24,8 +24,11 @@ FakeArcSupport::FakeArcSupport(ArcSupportHost* support_host) |
| FakeArcSupport::~FakeArcSupport() { |
| // Ensure that message host is disconnected. |
| - if (native_message_host_) |
| - Close(); |
| + if (native_message_host_) { |
|
Luis Héctor Chávez
2017/05/30 16:06:27
nit: use guard clause pattern
if (!native_message
victorhsieh0
2017/05/30 19:52:42
Done.
|
| + support_host_->UnsetMessageHost( |
| + static_cast<ArcSupportMessageHost*>(native_message_host_.get())); |
| + native_message_host_.reset(); |
| + } |
| } |
| void FakeArcSupport::Open(Profile* profile) { |
| @@ -44,8 +47,21 @@ void FakeArcSupport::Close() { |
| native_message_host_.reset(); |
| } |
| -void FakeArcSupport::ClickAgreeButton() { |
| +void FakeArcSupport::EmulateAuthCodeResponse(const std::string& auth_code) { |
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::LSO); |
| + base::DictionaryValue message; |
| + message.SetString("event", "onAuthSucceeded"); |
| + message.SetString("code", auth_code); |
| + OnMessage(message); |
| +} |
| + |
| +void FakeArcSupport::EmulateAuthFailure() { |
| DCHECK(native_message_host_); |
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::LSO); |
| + native_message_host_->OnMessage("{\"event\": \"onAuthFailed\"}"); |
| +} |
| + |
| +void FakeArcSupport::ClickAgreeButton() { |
| DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::TERMS); |
| base::DictionaryValue message; |
| @@ -53,13 +69,7 @@ void FakeArcSupport::ClickAgreeButton() { |
| message.SetBoolean("isMetricsEnabled", metrics_mode_); |
| message.SetBoolean("isBackupRestoreEnabled", backup_and_restore_mode_); |
| message.SetBoolean("isLocationServiceEnabled", location_service_mode_); |
| - |
| - std::string message_string; |
| - if (!base::JSONWriter::Write(message, &message_string)) { |
| - NOTREACHED(); |
| - return; |
| - } |
| - native_message_host_->OnMessage(message_string); |
| + OnMessage(message); |
| } |
| void FakeArcSupport::ClickRetryButton() { |
| @@ -68,6 +78,12 @@ void FakeArcSupport::ClickRetryButton() { |
| native_message_host_->OnMessage("{\"event\": \"onRetryClicked\"}"); |
| } |
| +void FakeArcSupport::ClickSendFeedbackButton() { |
| + DCHECK(native_message_host_); |
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::ERROR); |
| + native_message_host_->OnMessage("{\"event\": \"onSendFeedbackClicked\"}"); |
| +} |
| + |
| void FakeArcSupport::PostMessageFromNativeHost( |
| const std::string& message_string) { |
| std::unique_ptr<base::DictionaryValue> message = |
| @@ -124,4 +140,14 @@ void FakeArcSupport::CloseChannel(const std::string& error_message) { |
| NOTREACHED(); |
| } |
| +void FakeArcSupport::OnMessage(const base::DictionaryValue& message) { |
| + DCHECK(native_message_host_); |
| + std::string message_string; |
| + if (!base::JSONWriter::Write(message, &message_string)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + native_message_host_->OnMessage(message_string); |
| +} |
| + |
| } // namespace arc |