Index: shell/application_manager/application_manager_unittest.cc |
diff --git a/shell/application_manager/application_manager_unittest.cc b/shell/application_manager/application_manager_unittest.cc |
index f3b0503e071e4616cfd07d462f875930d6a6dba8..b8da53b4a6e705931abf9d6e1327ed57c7f0b725 100644 |
--- a/shell/application_manager/application_manager_unittest.cc |
+++ b/shell/application_manager/application_manager_unittest.cc |
@@ -415,6 +415,34 @@ class TestDelegate : public ApplicationManager::Delegate { |
std::map<GURL, GURL> mappings_; |
}; |
+class TestExternal : public ApplicationDelegate { |
+ public: |
+ TestExternal() |
+ : initialize_called_(false), |
+ configure_incoming_connection_called_(false) {} |
+ |
+ virtual void Initialize(ApplicationImpl* app) override { |
+ initialize_called_ = true; |
+ base::MessageLoop::current()->Quit(); |
+ } |
+ |
+ virtual bool ConfigureIncomingConnection( |
+ ApplicationConnection* connection) override { |
+ configure_incoming_connection_called_ = true; |
+ base::MessageLoop::current()->Quit(); |
+ return true; |
+ } |
+ |
+ bool initialize_called() const { return initialize_called_; } |
+ bool configure_incoming_connection_called() const { |
+ return configure_incoming_connection_called_; |
+ } |
+ |
+ private: |
+ bool initialize_called_; |
+ bool configure_incoming_connection_called_; |
+}; |
+ |
} // namespace |
class ApplicationManagerTest : public testing::Test { |
@@ -696,4 +724,18 @@ TEST_F(ApplicationManagerTest, MappedURLsShouldWorkWithLoaders) { |
custom_loader->set_context(nullptr); |
} |
+TEST_F(ApplicationManagerTest, ExternalApp) { |
+ MessagePipe shell_pipe; |
+ TestExternal external; |
+ ApplicationImpl app(&external, shell_pipe.handle0.Pass()); |
+ application_manager_->RegisterExternalApplication( |
+ GURL("mojo:test"), shell_pipe.handle1.Pass()); |
+ loop_.Run(); |
+ EXPECT_TRUE(external.initialize_called()); |
+ application_manager_->ConnectToServiceByName( |
+ GURL("mojo:test"), std::string()); |
+ loop_.Run(); |
+ EXPECT_TRUE(external.configure_incoming_connection_called()); |
+}; |
+ |
} // namespace mojo |