| Index: extensions/browser/api/runtime/runtime_apitest.cc
|
| diff --git a/extensions/browser/api/runtime/runtime_apitest.cc b/extensions/browser/api/runtime/runtime_apitest.cc
|
| index 78f5998cffdfeb6d73146667599f22e28ffcdfc1..8f675cd455c2dfa5fee3b0cfa616c65e567d04fd 100644
|
| --- a/extensions/browser/api/runtime/runtime_apitest.cc
|
| +++ b/extensions/browser/api/runtime/runtime_apitest.cc
|
| @@ -128,4 +128,83 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_ChromeRuntimeReload) {
|
| registry->GetExtensionById(extension_id, ExtensionRegistry::TERMINATED));
|
| }
|
|
|
| +namespace {
|
| +
|
| +// An intercepter of the real RuntimeAPIDelegate that simulates a successful
|
| +// restart request every time.
|
| +class RestartOnWatchdogApiDelegate : public RuntimeAPIDelegate {
|
| + public:
|
| + // Takes ownership of the |real_api_delegate|.
|
| + RestartOnWatchdogApiDelegate(
|
| + std::unique_ptr<RuntimeAPIDelegate> real_api_delegate)
|
| + : real_api_delegate_(std::move(real_api_delegate)) {}
|
| + ~RestartOnWatchdogApiDelegate() override {}
|
| +
|
| + // RuntimeAPIDelegate:
|
| + void AddUpdateObserver(UpdateObserver* observer) override {
|
| + real_api_delegate_->AddUpdateObserver(observer);
|
| + }
|
| +
|
| + void RemoveUpdateObserver(UpdateObserver* observer) override {
|
| + real_api_delegate_->RemoveUpdateObserver(observer);
|
| + }
|
| +
|
| + base::Version GetPreviousExtensionVersion(
|
| + const Extension* extension) override {
|
| + return real_api_delegate_->GetPreviousExtensionVersion(extension);
|
| + }
|
| +
|
| + void ReloadExtension(const std::string& extension_id) override {
|
| + real_api_delegate_->ReloadExtension(extension_id);
|
| + }
|
| +
|
| + bool CheckForUpdates(const std::string& extension_id,
|
| + const UpdateCheckCallback& callback) override {
|
| + return real_api_delegate_->CheckForUpdates(extension_id, callback);
|
| + }
|
| +
|
| + void OpenURL(const GURL& uninstall_url) override {
|
| + real_api_delegate_->OpenURL(uninstall_url);
|
| + }
|
| +
|
| + bool GetPlatformInfo(api::runtime::PlatformInfo* info) override {
|
| + return real_api_delegate_->GetPlatformInfo(info);
|
| + }
|
| +
|
| + bool RestartDevice(std::string* error_message) override {
|
| + *error_message = "success";
|
| + return true;
|
| + }
|
| +
|
| + private:
|
| + std::unique_ptr<RuntimeAPIDelegate> real_api_delegate_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(RestartOnWatchdogApiDelegate);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +class RestartOnWatchdogApiTest : public ExtensionApiTest {
|
| + public:
|
| + RestartOnWatchdogApiTest() {}
|
| + ~RestartOnWatchdogApiTest() override {}
|
| +
|
| + void SetUpOnMainThread() override {
|
| + RuntimeAPI* runtime_api = RuntimeAPI::GetFactoryInstance()->Get(profile());
|
| + runtime_api->delegate_.reset(
|
| + new RestartOnWatchdogApiDelegate(std::move(runtime_api->delegate_)));
|
| + runtime_api->SetMinDurationBetweenRestartsForTesting(
|
| + base::TimeDelta::FromSeconds(3));
|
| +
|
| + ExtensionApiTest::SetUpOnMainThread();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(RestartOnWatchdogApiTest);
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(RestartOnWatchdogApiTest, RestartOnWatchdogTest) {
|
| + ASSERT_TRUE(RunExtensionTest("runtime/restartOnWatchdog")) << message_;
|
| +}
|
| +
|
| } // namespace extensions
|
|
|