| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/extensions/extension_install_prompt_test_helper.h" |
| |
| #include "base/bind.h" |
| #include "base/callback_helpers.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| ExtensionInstallPromptTestHelper::ExtensionInstallPromptTestHelper() {} |
| ExtensionInstallPromptTestHelper::ExtensionInstallPromptTestHelper( |
| const base::Closure& quit_closure) : quit_closure_(quit_closure) {} |
| ExtensionInstallPromptTestHelper::~ExtensionInstallPromptTestHelper() {} |
| |
| ExtensionInstallPrompt::DoneCallback |
| ExtensionInstallPromptTestHelper::GetCallback() { |
| return base::Bind(&ExtensionInstallPromptTestHelper::HandleResult, |
| base::Unretained(this)); |
| } |
| |
| ExtensionInstallPrompt::Result |
| ExtensionInstallPromptTestHelper::result() const { |
| if (!result_.get()) { |
| ADD_FAILURE() << "Result was never set!"; |
| return ExtensionInstallPrompt::Result::ACCEPTED; // Avoid crashing. |
| } |
| return *result_; |
| } |
| |
| void ExtensionInstallPromptTestHelper::HandleResult( |
| ExtensionInstallPrompt::Result result) { |
| if (result_.get()) |
| ADD_FAILURE() << "HandleResult() called twice!"; |
| if (!quit_closure_.is_null()) |
| base::ResetAndReturn(&quit_closure_).Run(); |
| result_.reset(new ExtensionInstallPrompt::Result(result)); |
| } |