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

Unified Diff: mojo/public/cpp/application/tests/service_provider_impl_unittest.cc

Issue 1976063002: More work on ServiceProviderImpl. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: sigh 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
« no previous file with comments | « mojo/public/cpp/application/service_provider_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
diff --git a/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc b/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
index a66f182e622112f96369382d9d277db7eefa7f23..2483fc3ce152b1540d09e070640bd62654c1fdd5 100644
--- a/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
+++ b/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
@@ -65,8 +65,11 @@ TEST_F(ServiceProviderImplTest, Basic) {
ServiceProviderImpl impl(ConnectionContext(ConnectionContext::Type::INCOMING,
kRemoteUrl, kConnectionUrl),
GetProxy(&sp));
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, impl.connection_context().type);
+ EXPECT_EQ(kRemoteUrl, impl.connection_context().remote_url);
+ EXPECT_EQ(kConnectionUrl, impl.connection_context().connection_url);
- impl.AddServiceNew<test::PingService>(
+ impl.AddService<test::PingService>(
[&kRemoteUrl, &kConnectionUrl](
const ConnectionContext& connection_context,
InterfaceRequest<test::PingService> ping_service_request) {
@@ -77,7 +80,7 @@ TEST_F(ServiceProviderImplTest, Basic) {
},
kPing1);
- impl.AddServiceNew<test::PingService>(
+ impl.AddService<test::PingService>(
[&kRemoteUrl, &kConnectionUrl](
const ConnectionContext& connection_context,
InterfaceRequest<test::PingService> ping_service_request) {
@@ -116,6 +119,40 @@ TEST_F(ServiceProviderImplTest, Basic) {
}
loop().RunUntilIdle(); // Run stuff caused by destructors.
+ impl.RemoveService<test::PingService>(kPing2);
+
+ // "Ping2" should no longer work.
+ {
+ test::PingServicePtr ping2;
+ ConnectToService(sp.get(), GetProxy(&ping2), kPing2);
+ ping2.set_connection_error_handler([this] { QuitLoop(true); });
+ ping2->Ping([this] { QuitLoop(false); });
+ loop().Run();
+ }
+ loop().RunUntilIdle(); // Run stuff caused by destructors.
+
+ // But "Ping1" should still work.
+ {
+ test::PingServicePtr ping1;
+ ConnectToService(sp.get(), GetProxy(&ping1), kPing1);
+ ping1.set_connection_error_handler([this] { QuitLoop(false); });
+ ping1->Ping([this] { QuitLoop(true); });
+ loop().Run();
+ }
+ loop().RunUntilIdle(); // Run stuff caused by destructors.
+
+ impl.RemoveServiceForName(kPing1);
+
+ // "Ping1" should no longer work.
+ {
+ test::PingServicePtr ping1;
+ ConnectToService(sp.get(), GetProxy(&ping1), kPing1);
+ ping1.set_connection_error_handler([this] { QuitLoop(true); });
+ ping1->Ping([this] { QuitLoop(false); });
+ loop().Run();
+ }
+ loop().RunUntilIdle(); // Run stuff caused by destructors.
+
sp.reset();
loop().RunUntilIdle();
}
@@ -130,8 +167,11 @@ TEST_F(ServiceProviderImplTest, CloseAndRebind) {
ServiceProviderImpl impl(ConnectionContext(ConnectionContext::Type::INCOMING,
kRemoteUrl1, kConnectionUrl),
GetProxy(&sp1));
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, impl.connection_context().type);
+ EXPECT_EQ(kRemoteUrl1, impl.connection_context().remote_url);
+ EXPECT_EQ(kConnectionUrl, impl.connection_context().connection_url);
- impl.AddServiceNew<test::PingService>(
+ impl.AddService<test::PingService>(
[&kRemoteUrl1, &kRemoteUrl2, &kConnectionUrl](
const ConnectionContext& connection_context,
InterfaceRequest<test::PingService> ping_service_request) {
@@ -153,6 +193,9 @@ TEST_F(ServiceProviderImplTest, CloseAndRebind) {
loop().RunUntilIdle(); // Run stuff caused by destructors.
impl.Close();
+ EXPECT_EQ(ConnectionContext::Type::UNKNOWN, impl.connection_context().type);
+ EXPECT_EQ(std::string(), impl.connection_context().remote_url);
+ EXPECT_EQ(std::string(), impl.connection_context().connection_url);
sp1.reset();
loop().RunUntilIdle();
@@ -160,6 +203,9 @@ TEST_F(ServiceProviderImplTest, CloseAndRebind) {
impl.Bind(ConnectionContext(ConnectionContext::Type::INCOMING, kRemoteUrl2,
kConnectionUrl),
GetProxy(&sp2));
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, impl.connection_context().type);
+ EXPECT_EQ(kRemoteUrl2, impl.connection_context().remote_url);
+ EXPECT_EQ(kConnectionUrl, impl.connection_context().connection_url);
{
test::PingServicePtr ping;
@@ -184,12 +230,15 @@ TEST_F(ServiceProviderImplTest, Bind) {
ServiceProviderPtr sp;
ServiceProviderImpl impl;
+ EXPECT_EQ(ConnectionContext::Type::UNKNOWN, impl.connection_context().type);
+ EXPECT_EQ(std::string(), impl.connection_context().remote_url);
+ EXPECT_EQ(std::string(), impl.connection_context().connection_url);
impl.Bind(ConnectionContext(ConnectionContext::Type::INCOMING, kRemoteUrl,
kConnectionUrl),
GetProxy(&sp));
- impl.AddServiceNew<test::PingService>(
+ impl.AddService<test::PingService>(
[&kRemoteUrl, &kConnectionUrl](
const ConnectionContext& connection_context,
InterfaceRequest<test::PingService> request) {
@@ -289,5 +338,7 @@ TEST_F(ServiceProviderImplTest, FallbackServiceProvider) {
EXPECT_FALSE(was_run);
}
+// TODO(vtl): Explicitly test |AddServiceForName()|?
+
} // namespace
} // namespace mojo
« no previous file with comments | « mojo/public/cpp/application/service_provider_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698