OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
7 #include "mojo/public/cpp/application/application_delegate.h" | 7 #include "mojo/public/cpp/application/application_delegate.h" |
8 #include "mojo/public/cpp/application/application_impl.h" | 8 #include "mojo/public/cpp/application/application_impl.h" |
9 #include "mojo/public/cpp/application/application_test_base.h" | 9 #include "mojo/public/cpp/application/application_test_base.h" |
10 #include "mojo/public/cpp/application/service_provider_impl.h" | 10 #include "mojo/public/cpp/application/service_provider_impl.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 new mojo::ViewManagerClientFactory(app->shell(), this)); | 36 new mojo::ViewManagerClientFactory(app->shell(), this)); |
37 } | 37 } |
38 | 38 |
39 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 39 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { |
40 connection->AddService(view_manager_client_factory_.get()); | 40 connection->AddService(view_manager_client_factory_.get()); |
41 return true; | 41 return true; |
42 } | 42 } |
43 | 43 |
44 // ViewManagerDelegate: | 44 // ViewManagerDelegate: |
45 void OnEmbed(View* root, | 45 void OnEmbed(View* root, |
46 ServiceProviderImpl* exported_services, | 46 InterfaceRequest<ServiceProvider> services, |
47 scoped_ptr<ServiceProvider> imported_services) override { | 47 ServiceProviderPtr exposed_services) override { |
48 root_ = root; | 48 root_ = root; |
49 embed_callback_.Run(); | 49 embed_callback_.Run(); |
50 } | 50 } |
51 void OnViewManagerDisconnected(ViewManager* view_manager) override {} | 51 void OnViewManagerDisconnected(ViewManager* view_manager) override {} |
52 | 52 |
53 View* root_; | 53 View* root_; |
54 base::Closure embed_callback_; | 54 base::Closure embed_callback_; |
55 scoped_ptr<mojo::ViewManagerClientFactory> view_manager_client_factory_; | 55 scoped_ptr<mojo::ViewManagerClientFactory> view_manager_client_factory_; |
56 | 56 |
57 MOJO_DISALLOW_COPY_AND_ASSIGN(TestApplication); | 57 MOJO_DISALLOW_COPY_AND_ASSIGN(TestApplication); |
58 }; | 58 }; |
59 | 59 |
60 class WindowManagerApplicationTest : public test::ApplicationTestBase { | 60 class WindowManagerApplicationTest : public test::ApplicationTestBase { |
61 public: | 61 public: |
62 WindowManagerApplicationTest() {} | 62 WindowManagerApplicationTest() {} |
63 ~WindowManagerApplicationTest() override {} | 63 ~WindowManagerApplicationTest() override {} |
64 | 64 |
65 protected: | 65 protected: |
66 // ApplicationTestBase: | 66 // ApplicationTestBase: |
67 void SetUp() override { | 67 void SetUp() override { |
68 ApplicationTestBase::SetUp(); | 68 ApplicationTestBase::SetUp(); |
69 application_impl()->ConnectToService("mojo:window_manager", | 69 application_impl()->ConnectToService("mojo:window_manager", |
70 &window_manager_); | 70 &window_manager_); |
71 } | 71 } |
72 ApplicationDelegate* GetApplicationDelegate() override { | 72 ApplicationDelegate* GetApplicationDelegate() override { |
73 return &test_application_; | 73 return &test_application_; |
74 } | 74 } |
75 | 75 |
76 void EmbedApplicationWithURL(const std::string& url) { | 76 void EmbedApplicationWithURL(const std::string& url) { |
77 ServiceProviderPtr service_provider; | 77 window_manager_->Embed(url, nullptr, nullptr); |
78 BindToProxy(new ServiceProviderImpl, &service_provider); | |
79 window_manager_->Embed( | |
80 url, MakeRequest<ServiceProvider>(service_provider.PassMessagePipe())); | |
81 | 78 |
82 base::RunLoop run_loop; | 79 base::RunLoop run_loop; |
83 test_application_.set_embed_callback(run_loop.QuitClosure()); | 80 test_application_.set_embed_callback(run_loop.QuitClosure()); |
84 run_loop.Run(); | 81 run_loop.Run(); |
85 } | 82 } |
86 | 83 |
87 WindowManagerPtr window_manager_; | 84 WindowManagerPtr window_manager_; |
88 TestApplication test_application_; | 85 TestApplication test_application_; |
89 | 86 |
90 private: | 87 private: |
91 MOJO_DISALLOW_COPY_AND_ASSIGN(WindowManagerApplicationTest); | 88 MOJO_DISALLOW_COPY_AND_ASSIGN(WindowManagerApplicationTest); |
92 }; | 89 }; |
93 | 90 |
94 TEST_F(WindowManagerApplicationTest, Embed) { | 91 TEST_F(WindowManagerApplicationTest, Embed) { |
95 EXPECT_EQ(nullptr, test_application_.root()); | 92 EXPECT_EQ(nullptr, test_application_.root()); |
96 EmbedApplicationWithURL("mojo:window_manager_apptests"); | 93 EmbedApplicationWithURL("mojo:window_manager_apptests"); |
97 EXPECT_NE(nullptr, test_application_.root()); | 94 EXPECT_NE(nullptr, test_application_.root()); |
98 } | 95 } |
99 | 96 |
100 // TODO(msw): Write tests exercising other WindowManager functionality. | 97 // TODO(msw): Write tests exercising other WindowManager functionality. |
101 | 98 |
102 } // namespace | 99 } // namespace |
103 } // namespace mojo | 100 } // namespace mojo |
OLD | NEW |