Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: shell/application_manager/application_manager_unittest.cc

Issue 1219683015: Convert //shell/... to use set_connection_error_handler() instead of set_error_handler(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 28 matching lines...) Expand all
39 std::string last_test_string; 39 std::string last_test_string;
40 int num_impls; 40 int num_impls;
41 int num_loader_deletes; 41 int num_loader_deletes;
42 }; 42 };
43 43
44 void QuitClosure(bool* value) { 44 void QuitClosure(bool* value) {
45 *value = true; 45 *value = true;
46 base::MessageLoop::current()->QuitWhenIdle(); 46 base::MessageLoop::current()->QuitWhenIdle();
47 } 47 }
48 48
49 class QuitMessageLoopErrorHandler : public mojo::ErrorHandler {
50 public:
51 QuitMessageLoopErrorHandler() {}
52 ~QuitMessageLoopErrorHandler() override {}
53
54 // |mojo::ErrorHandler| implementation:
55 void OnConnectionError() override {
56 base::MessageLoop::current()->QuitWhenIdle();
57 }
58
59 private:
60 DISALLOW_COPY_AND_ASSIGN(QuitMessageLoopErrorHandler);
61 };
62
63 class TestServiceImpl : public TestService { 49 class TestServiceImpl : public TestService {
64 public: 50 public:
65 TestServiceImpl(TestContext* context, InterfaceRequest<TestService> request) 51 TestServiceImpl(TestContext* context, InterfaceRequest<TestService> request)
66 : context_(context), binding_(this, request.Pass()) { 52 : context_(context), binding_(this, request.Pass()) {
67 ++context_->num_impls; 53 ++context_->num_impls;
68 } 54 }
69 55
70 ~TestServiceImpl() override { 56 ~TestServiceImpl() override {
71 --context_->num_impls; 57 --context_->num_impls;
72 if (!base::MessageLoop::current()->is_running()) 58 if (!base::MessageLoop::current()->is_running())
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 EXPECT_TRUE(tester_context_.tester_called_quit()); 720 EXPECT_TRUE(tester_context_.tester_called_quit());
735 } 721 }
736 722
737 TEST_F(ApplicationManagerTest, NoServiceNoLoad) { 723 TEST_F(ApplicationManagerTest, NoServiceNoLoad) {
738 AddLoaderForURL(GURL(kTestAURLString), std::string()); 724 AddLoaderForURL(GURL(kTestAURLString), std::string());
739 725
740 // There is no TestC service implementation registered with 726 // There is no TestC service implementation registered with
741 // ApplicationManager, so this cannot succeed (but also shouldn't crash). 727 // ApplicationManager, so this cannot succeed (but also shouldn't crash).
742 TestCPtr c; 728 TestCPtr c;
743 application_manager_->ConnectToService(GURL(kTestAURLString), &c); 729 application_manager_->ConnectToService(GURL(kTestAURLString), &c);
744 QuitMessageLoopErrorHandler quitter; 730 c.set_connection_error_handler(
745 c.set_error_handler(&quitter); 731 []() { base::MessageLoop::current()->QuitWhenIdle(); });
746 732
747 loop_.Run(); 733 loop_.Run();
748 EXPECT_TRUE(c.encountered_error()); 734 EXPECT_TRUE(c.encountered_error());
749 } 735 }
750 736
751 TEST_F(ApplicationManagerTest, MappedURLsShouldNotCauseDuplicateLoad) { 737 TEST_F(ApplicationManagerTest, MappedURLsShouldNotCauseDuplicateLoad) {
752 test_delegate_.AddMapping(GURL("foo:foo2"), GURL("foo:foo")); 738 test_delegate_.AddMapping(GURL("foo:foo2"), GURL("foo:foo"));
753 // 1 because ApplicationManagerTest connects once at startup. 739 // 1 because ApplicationManagerTest connects once at startup.
754 EXPECT_EQ(1, test_loader_->num_loads()); 740 EXPECT_EQ(1, test_loader_->num_loads());
755 741
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 bool called = false; 796 bool called = false;
811 application_manager_->ConnectToApplication( 797 application_manager_->ConnectToApplication(
812 GURL("test:test"), GURL(), nullptr, nullptr, 798 GURL("test:test"), GURL(), nullptr, nullptr,
813 base::Bind(&QuitClosure, base::Unretained(&called))); 799 base::Bind(&QuitClosure, base::Unretained(&called)));
814 loop_.Run(); 800 loop_.Run();
815 EXPECT_TRUE(called); 801 EXPECT_TRUE(called);
816 } 802 }
817 803
818 } // namespace 804 } // namespace
819 } // namespace shell 805 } // namespace shell
OLDNEW
« no previous file with comments | « shell/application_manager/application_manager.cc ('k') | shell/application_manager/shell_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698