diff options
author | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-11 20:34:09 +0000 |
---|---|---|
committer | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-11 20:34:09 +0000 |
commit | c8e981c54f23d3a798d6698d0b408351b24ed290 (patch) | |
tree | 74ace6a6d6d95ae31a001bf384ec91de0d304bc4 /mojo/service_manager | |
parent | faf59c5ed0111d33eb2030cecbc32929562b0bfb (diff) | |
download | chromium_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.cc | 42 |
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 |