Chromium Code Reviews| 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/at_exit.h" | 5 #include "base/at_exit.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "mojo/public/cpp/application/application_connection.h" | 10 #include "mojo/public/cpp/application/application_connection.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 void Load(const GURL& url, | 115 void Load(const GURL& url, |
| 116 InterfaceRequest<Application> application_request) override { | 116 InterfaceRequest<Application> application_request) override { |
| 117 ++num_loads_; | 117 ++num_loads_; |
| 118 test_app_.reset(new ApplicationImpl(this, application_request.Pass())); | 118 test_app_.reset(new ApplicationImpl(this, application_request.Pass())); |
| 119 } | 119 } |
| 120 | 120 |
| 121 void OnApplicationError(ApplicationManager* manager, | 121 void OnApplicationError(ApplicationManager* manager, |
| 122 const GURL& url) override {} | 122 const GURL& url) override {} |
| 123 | 123 |
| 124 // ApplicationDelegate implementation. | 124 // ApplicationDelegate implementation. |
| 125 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 125 bool ConfigureIncomingConnection(ApplicationConnection* connection, const std: :string& url) override { |
| 126 connection->AddService(this); | 126 connection->AddService(this); |
| 127 return true; | 127 return true; |
| 128 } | 128 } |
| 129 | 129 |
| 130 // InterfaceFactory implementation. | 130 // InterfaceFactory implementation. |
| 131 void Create(ApplicationConnection* connection, | 131 void Create(ApplicationConnection* connection, |
| 132 InterfaceRequest<TestService> request) override { | 132 InterfaceRequest<TestService> request) override { |
| 133 new TestServiceImpl(context_, request.Pass()); | 133 new TestServiceImpl(context_, request.Pass()); |
| 134 } | 134 } |
| 135 | 135 |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 333 | 333 |
| 334 private: | 334 private: |
| 335 void Load(const GURL& url, | 335 void Load(const GURL& url, |
| 336 InterfaceRequest<Application> application_request) override { | 336 InterfaceRequest<Application> application_request) override { |
| 337 app_.reset(new ApplicationImpl(this, application_request.Pass())); | 337 app_.reset(new ApplicationImpl(this, application_request.Pass())); |
| 338 } | 338 } |
| 339 | 339 |
| 340 void OnApplicationError(ApplicationManager* manager, | 340 void OnApplicationError(ApplicationManager* manager, |
| 341 const GURL& url) override {} | 341 const GURL& url) override {} |
| 342 | 342 |
| 343 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 343 bool ConfigureIncomingConnection(ApplicationConnection* connection, const std: :string& url) override { |
| 344 if (!requestor_url_.empty() && | 344 if (!requestor_url_.empty() && |
| 345 requestor_url_ != connection->GetRemoteApplicationURL()) { | 345 requestor_url_ != connection->GetRemoteApplicationURL()) { |
| 346 context_->set_tester_called_quit(); | 346 context_->set_tester_called_quit(); |
| 347 context_->QuitSoon(); | 347 context_->QuitSoon(); |
| 348 base::MessageLoop::current()->Quit(); | 348 base::MessageLoop::current()->Quit(); |
| 349 return false; | 349 return false; |
| 350 } | 350 } |
| 351 // If we're coming from A, then add B, otherwise A. | 351 // If we're coming from A, then add B, otherwise A. |
| 352 if (connection->GetRemoteApplicationURL() == kTestAURLString) | 352 if (connection->GetRemoteApplicationURL() == kTestAURLString) |
| 353 connection->AddService<TestB>(this); | 353 connection->AddService<TestB>(this); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 416 | 416 |
| 417 class TestExternal : public ApplicationDelegate { | 417 class TestExternal : public ApplicationDelegate { |
| 418 public: | 418 public: |
| 419 TestExternal() : configure_incoming_connection_called_(false) {} | 419 TestExternal() : configure_incoming_connection_called_(false) {} |
| 420 | 420 |
| 421 void Initialize(ApplicationImpl* app) override { | 421 void Initialize(ApplicationImpl* app) override { |
| 422 initialize_args_ = app->args(); | 422 initialize_args_ = app->args(); |
| 423 base::MessageLoop::current()->Quit(); | 423 base::MessageLoop::current()->Quit(); |
| 424 } | 424 } |
| 425 | 425 |
| 426 bool ConfigureIncomingConnection(ApplicationConnection* connection) override { | 426 bool ConfigureIncomingConnection(ApplicationConnection* connection, const std: :string& url) override { |
| 427 configure_incoming_connection_called_ = true; | 427 configure_incoming_connection_called_ = true; |
| 428 base::MessageLoop::current()->Quit(); | 428 base::MessageLoop::current()->Quit(); |
| 429 return true; | 429 return true; |
| 430 } | 430 } |
| 431 | 431 |
| 432 const std::vector<std::string>& initialize_args() const { | 432 const std::vector<std::string>& initialize_args() const { |
| 433 return initialize_args_; | 433 return initialize_args_; |
| 434 } | 434 } |
| 435 | 435 |
| 436 bool configure_incoming_connection_called() const { | 436 bool configure_incoming_connection_called() const { |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 684 // ApplicationManager, so this cannot succeed (but also shouldn't crash). | 684 // ApplicationManager, so this cannot succeed (but also shouldn't crash). |
| 685 TestCPtr c; | 685 TestCPtr c; |
| 686 application_manager_->ConnectToService(GURL(kTestAURLString), &c); | 686 application_manager_->ConnectToService(GURL(kTestAURLString), &c); |
| 687 QuitMessageLoopErrorHandler quitter; | 687 QuitMessageLoopErrorHandler quitter; |
| 688 c.set_error_handler(&quitter); | 688 c.set_error_handler(&quitter); |
| 689 | 689 |
| 690 loop_.Run(); | 690 loop_.Run(); |
| 691 EXPECT_TRUE(c.encountered_error()); | 691 EXPECT_TRUE(c.encountered_error()); |
| 692 } | 692 } |
| 693 | 693 |
| 694 TEST_F(ApplicationManagerTest, MappedURLsShouldNotCauseDuplicateLoad) { | 694 TEST_F(ApplicationManagerTest, MappedURLsShouldNotCauseDuplicateLoad) { |
|
qsr
2015/02/27 17:15:58
Don't you want to add test, checking that url with
Aaron Boodman
2015/02/28 19:08:23
I did test that in the apptest. This file is reall
| |
| 695 test_delegate_.AddMapping(GURL("foo:foo2"), GURL("foo:foo")); | 695 test_delegate_.AddMapping(GURL("foo:foo2"), GURL("foo:foo")); |
| 696 // 1 because ApplicationManagerTest connects once at startup. | 696 // 1 because ApplicationManagerTest connects once at startup. |
| 697 EXPECT_EQ(1, test_loader_->num_loads()); | 697 EXPECT_EQ(1, test_loader_->num_loads()); |
| 698 | 698 |
| 699 TestServicePtr test_service; | 699 TestServicePtr test_service; |
| 700 application_manager_->ConnectToService(GURL("foo:foo"), &test_service); | 700 application_manager_->ConnectToService(GURL("foo:foo"), &test_service); |
| 701 EXPECT_EQ(2, test_loader_->num_loads()); | 701 EXPECT_EQ(2, test_loader_->num_loads()); |
| 702 | 702 |
| 703 TestServicePtr test_service2; | 703 TestServicePtr test_service2; |
| 704 application_manager_->ConnectToService(GURL("foo:foo2"), &test_service2); | 704 application_manager_->ConnectToService(GURL("foo:foo2"), &test_service2); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 733 application.Pass()); | 733 application.Pass()); |
| 734 loop_.Run(); | 734 loop_.Run(); |
| 735 EXPECT_EQ(args, external.initialize_args()); | 735 EXPECT_EQ(args, external.initialize_args()); |
| 736 application_manager_->ConnectToServiceByName(GURL("mojo:test"), | 736 application_manager_->ConnectToServiceByName(GURL("mojo:test"), |
| 737 std::string()); | 737 std::string()); |
| 738 loop_.Run(); | 738 loop_.Run(); |
| 739 EXPECT_TRUE(external.configure_incoming_connection_called()); | 739 EXPECT_TRUE(external.configure_incoming_connection_called()); |
| 740 }; | 740 }; |
| 741 | 741 |
| 742 } // namespace mojo | 742 } // namespace mojo |
| OLD | NEW |