| Index: mojo/shell/service_connector_unittest.cc
|
| diff --git a/mojo/shell/service_connector_unittest.cc b/mojo/shell/service_connector_unittest.cc
|
| index 654e16ad57c63431af2ad3b053b4889f140f8a3d..6ec7f07a3c88f6cf52ea31cab2b5e3d8722a2102 100644
|
| --- a/mojo/shell/service_connector_unittest.cc
|
| +++ b/mojo/shell/service_connector_unittest.cc
|
| @@ -5,6 +5,7 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "mojo/public/bindings/allocation_scope.h"
|
| #include "mojo/public/bindings/remote_ptr.h"
|
| +#include "mojo/public/shell/service.h"
|
| #include "mojo/shell/service_connector.h"
|
| #include "mojom/shell.h"
|
| #include "mojom/test.h"
|
| @@ -14,40 +15,16 @@ namespace mojo {
|
| namespace shell {
|
| namespace {
|
|
|
| -class TestApp : public ShellClient {
|
| +struct Context {
|
| + std::string last_test_string;
|
| +};
|
| +
|
| +class TestServiceImpl : public Service<TestService, TestServiceImpl, Context> {
|
| public:
|
| - TestApp(ScopedMessagePipeHandle shell_handle)
|
| - : shell_(shell_handle.Pass(), this) {
|
| - }
|
| - virtual ~TestApp() {
|
| + virtual void Test(const mojo::String& test_string) OVERRIDE {
|
| + context()->last_test_string = test_string.To<std::string>();
|
| + client()->AckTest();
|
| }
|
| - virtual void AcceptConnection(ScopedMessagePipeHandle client_handle)
|
| - MOJO_OVERRIDE {
|
| - service_.reset(new TestServiceImpl(this, client_handle.Pass()));
|
| - }
|
| - std::string GetLastTestString() {
|
| - return service_->last_test_string_;
|
| - }
|
| -
|
| - private:
|
| - class TestServiceImpl : public TestService {
|
| - public:
|
| - TestServiceImpl(TestApp* service, ScopedMessagePipeHandle client_handle)
|
| - : service_(service),
|
| - client_(client_handle.Pass(), this) {
|
| - }
|
| - virtual ~TestServiceImpl() {
|
| - }
|
| - virtual void Test(const mojo::String& test_string) OVERRIDE {
|
| - last_test_string_ = test_string.To<std::string>();
|
| - client_->AckTest();
|
| - }
|
| - TestApp* service_;
|
| - RemotePtr<TestClient> client_;
|
| - std::string last_test_string_;
|
| - };
|
| - RemotePtr<Shell> shell_;
|
| - scoped_ptr<TestServiceImpl> service_;
|
| };
|
|
|
| class TestClientImpl : public TestClient {
|
| @@ -97,12 +74,14 @@ class ServiceConnectorTest : public testing::Test,
|
|
|
| virtual void Load(const GURL& url,
|
| ScopedMessagePipeHandle shell_handle) OVERRIDE {
|
| - test_app_.reset(new TestApp(shell_handle.Pass()));
|
| + test_app_.reset(new ServiceFactory<TestServiceImpl, Context>(
|
| + shell_handle.Pass(), &context_));
|
| }
|
|
|
| protected:
|
| base::MessageLoop loop_;
|
| - scoped_ptr<TestApp> test_app_;
|
| + Context context_;
|
| + scoped_ptr<ServiceFactory<TestServiceImpl, Context> > test_app_;
|
| scoped_ptr<TestClientImpl> test_client_;
|
| scoped_ptr<ServiceConnector> service_connector_;
|
| DISALLOW_COPY_AND_ASSIGN(ServiceConnectorTest);
|
| @@ -111,7 +90,7 @@ class ServiceConnectorTest : public testing::Test,
|
| TEST_F(ServiceConnectorTest, Basic) {
|
| test_client_->Test("test");
|
| loop_.Run();
|
| - EXPECT_EQ(std::string("test"), test_app_->GetLastTestString());
|
| + EXPECT_EQ(std::string("test"), context_.last_test_string);
|
| }
|
|
|
| } // namespace
|
|
|