summaryrefslogtreecommitdiffstats
path: root/mojo/shell/android/background_application_loader_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/shell/android/background_application_loader_unittest.cc')
-rw-r--r--mojo/shell/android/background_application_loader_unittest.cc51
1 files changed, 51 insertions, 0 deletions
diff --git a/mojo/shell/android/background_application_loader_unittest.cc b/mojo/shell/android/background_application_loader_unittest.cc
new file mode 100644
index 0000000..4d18073
--- /dev/null
+++ b/mojo/shell/android/background_application_loader_unittest.cc
@@ -0,0 +1,51 @@
+// Copyright 2014 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 "mojo/shell/android/background_application_loader.h"
+
+#include "mojo/public/interfaces/application/application.mojom.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace mojo {
+namespace shell {
+namespace {
+
+class DummyLoader : public ApplicationLoader {
+ public:
+ DummyLoader() : simulate_app_quit_(true) {}
+ ~DummyLoader() override {}
+
+ // ApplicationLoader overrides:
+ void Load(const GURL& url,
+ InterfaceRequest<Application> application_request) override {
+ if (simulate_app_quit_)
+ base::MessageLoop::current()->Quit();
+ }
+
+ void DontSimulateAppQuit() { simulate_app_quit_ = false; }
+
+ private:
+ bool simulate_app_quit_;
+};
+
+// Tests that the loader can start and stop gracefully.
+TEST(BackgroundApplicationLoaderTest, StartStop) {
+ scoped_ptr<ApplicationLoader> real_loader(new DummyLoader());
+ BackgroundApplicationLoader loader(real_loader.Pass(), "test",
+ base::MessageLoop::TYPE_DEFAULT);
+}
+
+// Tests that the loader can load a service that is well behaved (quits
+// itself).
+TEST(BackgroundApplicationLoaderTest, Load) {
+ scoped_ptr<ApplicationLoader> real_loader(new DummyLoader());
+ BackgroundApplicationLoader loader(real_loader.Pass(), "test",
+ base::MessageLoop::TYPE_DEFAULT);
+ ApplicationPtr application;
+ loader.Load(GURL(), GetProxy(&application));
+}
+
+} // namespace
+} // namespace shell
+} // namespace mojo