| // 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. |
| |
| #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_TEST_HELPER_H_ |
| #define CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_TEST_HELPER_H_ |
| |
| #include "base/macros.h" |
| #include "chrome/browser/extensions/extension_install_prompt.h" |
| |
| // A helper class to be used with ExtensionInstallPrompt that keeps track of the |
| // result. Note that this class does no lifetime management. |
| class ExtensionInstallPromptTestHelper { |
| public: |
| ExtensionInstallPromptTestHelper(); |
| explicit ExtensionInstallPromptTestHelper(base::OnceClosure quit_closure); |
| ~ExtensionInstallPromptTestHelper(); |
| |
| // Returns a callback to be used with the ExtensionInstallPrompt. |
| ExtensionInstallPrompt::DoneCallback GetCallback(); |
| |
| // Note: This ADD_FAILURE()s if result_ has not been set. |
| ExtensionInstallPrompt::Result result() const; |
| |
| bool has_result() const { return result_ != nullptr; } |
| |
| private: |
| void HandleResult(ExtensionInstallPrompt::Result result); |
| |
| std::unique_ptr<ExtensionInstallPrompt::Result> result_; |
| |
| // A closure to run once HandleResult() has been called; used for exiting |
| // run loops in tests. |
| base::OnceClosure quit_closure_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ExtensionInstallPromptTestHelper); |
| }; |
| |
| #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_TEST_HELPER_H_ |