OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "mojo/shell/capability_filter_test.h" | 5 #include "mojo/shell/capability_filter_test.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
8 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
9 #include "mojo/application/public/cpp/application_connection.h" | 11 #include "mojo/application/public/cpp/application_connection.h" |
10 #include "mojo/application/public/cpp/application_impl.h" | 12 #include "mojo/application/public/cpp/application_impl.h" |
11 #include "mojo/application/public/cpp/connect.h" | 13 #include "mojo/application/public/cpp/connect.h" |
12 #include "mojo/application/public/cpp/interface_factory.h" | 14 #include "mojo/application/public/cpp/interface_factory.h" |
13 #include "mojo/application/public/cpp/service_provider_impl.h" | 15 #include "mojo/application/public/cpp/service_provider_impl.h" |
14 #include "mojo/common/weak_binding_set.h" | 16 #include "mojo/common/weak_binding_set.h" |
15 #include "mojo/public/cpp/bindings/strong_binding.h" | 17 #include "mojo/public/cpp/bindings/strong_binding.h" |
16 #include "mojo/shell/application_loader.h" | 18 #include "mojo/shell/application_loader.h" |
(...skipping 25 matching lines...) Expand all Loading... |
42 void PrintUnmetExpectations() { | 44 void PrintUnmetExpectations() { |
43 for (auto expectation : expectations_) | 45 for (auto expectation : expectations_) |
44 ADD_FAILURE() << "Unmet: " << expectation; | 46 ADD_FAILURE() << "Unmet: " << expectation; |
45 for (auto unexpected : unexpected_) | 47 for (auto unexpected : unexpected_) |
46 ADD_FAILURE() << "Unexpected: " << unexpected; | 48 ADD_FAILURE() << "Unexpected: " << unexpected; |
47 } | 49 } |
48 | 50 |
49 private: | 51 private: |
50 // Overridden from ApplicationLoader: | 52 // Overridden from ApplicationLoader: |
51 void Load(const GURL& url, InterfaceRequest<Application> request) override { | 53 void Load(const GURL& url, InterfaceRequest<Application> request) override { |
52 app_.reset(new ApplicationImpl(this, request.Pass())); | 54 app_.reset(new ApplicationImpl(this, std::move(request))); |
53 } | 55 } |
54 | 56 |
55 // Overridden from ApplicationDelegate: | 57 // Overridden from ApplicationDelegate: |
56 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 58 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { |
57 connection->AddService<Validator>(this); | 59 connection->AddService<Validator>(this); |
58 return true; | 60 return true; |
59 } | 61 } |
60 | 62 |
61 // Overridden from InterfaceFactory<Validator>: | 63 // Overridden from InterfaceFactory<Validator>: |
62 void Create(ApplicationConnection* connection, | 64 void Create(ApplicationConnection* connection, |
63 InterfaceRequest<Validator> request) override { | 65 InterfaceRequest<Validator> request) override { |
64 validator_bindings_.AddBinding(this, request.Pass()); | 66 validator_bindings_.AddBinding(this, std::move(request)); |
65 } | 67 } |
66 | 68 |
67 // Overridden from Validator: | 69 // Overridden from Validator: |
68 void AddServiceCalled(const String& app_url, | 70 void AddServiceCalled(const String& app_url, |
69 const String& service_url, | 71 const String& service_url, |
70 const String& name, | 72 const String& name, |
71 bool blocked) override { | 73 bool blocked) override { |
72 Validate(base::StringPrintf("%s %s %s %s", | 74 Validate(base::StringPrintf("%s %s %s %s", |
73 blocked ? "B" : "E", app_url.data(), service_url.data(), name.data())); | 75 blocked ? "B" : "E", app_url.data(), service_url.data(), name.data())); |
74 } | 76 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 } | 124 } |
123 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 125 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { |
124 AddService<Safe>(connection); | 126 AddService<Safe>(connection); |
125 AddService<Unsafe>(connection); | 127 AddService<Unsafe>(connection); |
126 return true; | 128 return true; |
127 } | 129 } |
128 | 130 |
129 // Overridden from InterfaceFactory<Safe>: | 131 // Overridden from InterfaceFactory<Safe>: |
130 void Create(ApplicationConnection* connection, | 132 void Create(ApplicationConnection* connection, |
131 InterfaceRequest<Safe> request) override { | 133 InterfaceRequest<Safe> request) override { |
132 safe_bindings_.AddBinding(this, request.Pass()); | 134 safe_bindings_.AddBinding(this, std::move(request)); |
133 } | 135 } |
134 | 136 |
135 // Overridden from InterfaceFactory<Unsafe>: | 137 // Overridden from InterfaceFactory<Unsafe>: |
136 void Create(ApplicationConnection* connection, | 138 void Create(ApplicationConnection* connection, |
137 InterfaceRequest<Unsafe> request) override { | 139 InterfaceRequest<Unsafe> request) override { |
138 unsafe_bindings_.AddBinding(this, request.Pass()); | 140 unsafe_bindings_.AddBinding(this, std::move(request)); |
139 } | 141 } |
140 | 142 |
141 template <typename Interface> | 143 template <typename Interface> |
142 void AddService(ApplicationConnection* connection) { | 144 void AddService(ApplicationConnection* connection) { |
143 validator_->AddServiceCalled(connection->GetRemoteApplicationURL(), | 145 validator_->AddServiceCalled(connection->GetRemoteApplicationURL(), |
144 connection->GetConnectionURL(), | 146 connection->GetConnectionURL(), |
145 Interface::Name_, | 147 Interface::Name_, |
146 !connection->AddService<Interface>(this)); | 148 !connection->AddService<Interface>(this)); |
147 } | 149 } |
148 | 150 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 } | 187 } |
186 | 188 |
187 //////////////////////////////////////////////////////////////////////////////// | 189 //////////////////////////////////////////////////////////////////////////////// |
188 // TestLoader: | 190 // TestLoader: |
189 | 191 |
190 TestLoader::TestLoader(ApplicationDelegate* delegate) : delegate_(delegate) {} | 192 TestLoader::TestLoader(ApplicationDelegate* delegate) : delegate_(delegate) {} |
191 TestLoader::~TestLoader() {} | 193 TestLoader::~TestLoader() {} |
192 | 194 |
193 void TestLoader::Load(const GURL& url, | 195 void TestLoader::Load(const GURL& url, |
194 InterfaceRequest<Application> request) { | 196 InterfaceRequest<Application> request) { |
195 app_.reset(new ApplicationImpl(delegate_.get(), request.Pass())); | 197 app_.reset(new ApplicationImpl(delegate_.get(), std::move(request))); |
196 } | 198 } |
197 | 199 |
198 //////////////////////////////////////////////////////////////////////////////// | 200 //////////////////////////////////////////////////////////////////////////////// |
199 // CapabilityFilterTest: | 201 // CapabilityFilterTest: |
200 | 202 |
201 CapabilityFilterTest::CapabilityFilterTest() : validator_(nullptr) {} | 203 CapabilityFilterTest::CapabilityFilterTest() : validator_(nullptr) {} |
202 CapabilityFilterTest::~CapabilityFilterTest() {} | 204 CapabilityFilterTest::~CapabilityFilterTest() {} |
203 | 205 |
204 void CapabilityFilterTest::RunBlockingTest() { | 206 void CapabilityFilterTest::RunBlockingTest() { |
205 std::set<std::string> expectations; | 207 std::set<std::string> expectations; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // We expose Validator to the test application via ConnectToApplication | 297 // We expose Validator to the test application via ConnectToApplication |
296 // because we don't allow the test application to connect to test:validator. | 298 // because we don't allow the test application to connect to test:validator. |
297 // Adding it to the CapabilityFilter would interfere with the test. | 299 // Adding it to the CapabilityFilter would interfere with the test. |
298 ServiceProviderPtr exposed_services; | 300 ServiceProviderPtr exposed_services; |
299 (new ServiceProviderImpl(GetProxy(&exposed_services)))-> | 301 (new ServiceProviderImpl(GetProxy(&exposed_services)))-> |
300 AddService<Validator>(validator_); | 302 AddService<Validator>(validator_); |
301 scoped_ptr<ConnectToApplicationParams> params( | 303 scoped_ptr<ConnectToApplicationParams> params( |
302 new ConnectToApplicationParams); | 304 new ConnectToApplicationParams); |
303 params->SetTarget(Identity(GURL(url), std::string(), filter)); | 305 params->SetTarget(Identity(GURL(url), std::string(), filter)); |
304 params->set_services(GetProxy(&services)); | 306 params->set_services(GetProxy(&services)); |
305 params->set_exposed_services(exposed_services.Pass()); | 307 params->set_exposed_services(std::move(exposed_services)); |
306 params->set_on_application_end(base::MessageLoop::QuitWhenIdleClosure()); | 308 params->set_on_application_end(base::MessageLoop::QuitWhenIdleClosure()); |
307 application_manager_->ConnectToApplication(params.Pass()); | 309 application_manager_->ConnectToApplication(std::move(params)); |
308 } | 310 } |
309 | 311 |
310 void CapabilityFilterTest::InitValidator( | 312 void CapabilityFilterTest::InitValidator( |
311 const std::set<std::string>& expectations) { | 313 const std::set<std::string>& expectations) { |
312 validator_ = new ConnectionValidator(expectations, &loop_); | 314 validator_ = new ConnectionValidator(expectations, &loop_); |
313 application_manager()->SetLoaderForURL(make_scoped_ptr(validator_), | 315 application_manager()->SetLoaderForURL(make_scoped_ptr(validator_), |
314 GURL("test:validator")); | 316 GURL("test:validator")); |
315 } | 317 } |
316 | 318 |
317 void CapabilityFilterTest::RunTest() { | 319 void CapabilityFilterTest::RunTest() { |
318 loop()->Run(); | 320 loop()->Run(); |
319 EXPECT_TRUE(validator_->expectations_met()); | 321 EXPECT_TRUE(validator_->expectations_met()); |
320 if (!validator_->expectations_met()) | 322 if (!validator_->expectations_met()) |
321 validator_->PrintUnmetExpectations(); | 323 validator_->PrintUnmetExpectations(); |
322 } | 324 } |
323 | 325 |
324 } // namespace test | 326 } // namespace test |
325 } // namespace shell | 327 } // namespace shell |
326 } // namespace mojo | 328 } // namespace mojo |
OLD | NEW |