Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: extensions/browser/api/runtime/runtime_apitest.cc

Issue 1970613003: Add a new app API to enable watchdog behavior restarts in kiosk apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..1e6e4c69d942c60698f2380e151412efcf072496 100644
--- a/extensions/browser/api/runtime/runtime_apitest.cc
+++ b/extensions/browser/api/runtime/runtime_apitest.cc
@@ -128,4 +128,84 @@ 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));
+ runtime_api->AllowNonKiostAppsInRestartOnWatchdogForTesting();
+
+ ExtensionApiTest::SetUpOnMainThread();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(RestartOnWatchdogApiTest);
+};
+
+IN_PROC_BROWSER_TEST_F(RestartOnWatchdogApiTest, RestartOnWatchdogTest) {
+ ASSERT_TRUE(RunExtensionTest("runtime/restartOnWatchdog")) << message_;
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698