summaryrefslogtreecommitdiffstats
path: root/mojo/service_manager
diff options
context:
space:
mode:
authorcpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-11 20:34:09 +0000
committercpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-11 20:34:09 +0000
commitc8e981c54f23d3a798d6698d0b408351b24ed290 (patch)
tree74ace6a6d6d95ae31a001bf384ec91de0d304bc4 /mojo/service_manager
parentfaf59c5ed0111d33eb2030cecbc32929562b0bfb (diff)
downloadchromium_src-c8e981c54f23d3a798d6698d0b408351b24ed290.zip
chromium_src-c8e981c54f23d3a798d6698d0b408351b24ed290.tar.gz
chromium_src-c8e981c54f23d3a798d6698d0b408351b24ed290.tar.bz2
Interceptor test for the mojo spy.
Makes sure the interceptor is called with reasonable parameters. more context on this CL https://codereview.chromium.org/225203002/ BUG=360188 TEST=indeed it is a test R=DaveMoore Review URL: https://codereview.chromium.org/228763003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263337 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo/service_manager')
-rw-r--r--mojo/service_manager/service_manager_unittest.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/mojo/service_manager/service_manager_unittest.cc b/mojo/service_manager/service_manager_unittest.cc
index dc4e432..c7b3d2a 100644
--- a/mojo/service_manager/service_manager_unittest.cc
+++ b/mojo/service_manager/service_manager_unittest.cc
@@ -142,6 +142,33 @@ class TestServiceLoader : public ServiceLoader {
DISALLOW_COPY_AND_ASSIGN(TestServiceLoader);
};
+class TestServiceInterceptor : public ServiceManager::Interceptor {
+ public:
+ TestServiceInterceptor() : call_count_(0) {}
+
+ virtual ScopedMessagePipeHandle OnConnectToClient(
+ const GURL& url, ScopedMessagePipeHandle handle) OVERRIDE {
+ ++call_count_;
+ url_ = url;
+ return handle.Pass();
+ }
+
+ std::string url_spec() const {
+ if (!url_.is_valid())
+ return "invalid url";
+ return url_.spec();
+ }
+
+ int call_count() const {
+ return call_count_;
+ }
+
+ private:
+ int call_count_;
+ GURL url_;
+ DISALLOW_COPY_AND_ASSIGN(TestServiceInterceptor);
+};
+
TEST_F(ServiceManagerTest, Basic) {
test_client_->Test("test");
loop_.Run();
@@ -191,4 +218,19 @@ TEST_F(ServiceManagerTest, SetLoaders) {
EXPECT_EQ(1, default_loader.num_loads());
}
+TEST_F(ServiceManagerTest, Interceptor) {
+ ServiceManager sm;
+ TestServiceLoader default_loader;
+ TestServiceInterceptor interceptor;
+ sm.set_default_loader(&default_loader);
+ sm.SetInterceptor(&interceptor);
+
+ std::string url("test:test3");
+ InterfacePipe<TestService, AnyInterface> pipe1;
+ sm.Connect(GURL(url), pipe1.handle_to_peer.Pass());
+ EXPECT_EQ(1, interceptor.call_count());
+ EXPECT_EQ(url, interceptor.url_spec());
+ EXPECT_EQ(1, default_loader.num_loads());
+}
+
} // namespace mojo