OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <algorithm> | 5 #include <algorithm> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 base::ThreadRestrictions::SetIOAllowed(false); | 40 base::ThreadRestrictions::SetIOAllowed(false); |
41 | 41 |
42 // Start the D-Bus thread. | 42 // Start the D-Bus thread. |
43 dbus_thread_.reset(new base::Thread("D-Bus Thread")); | 43 dbus_thread_.reset(new base::Thread("D-Bus Thread")); |
44 base::Thread::Options thread_options; | 44 base::Thread::Options thread_options; |
45 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; | 45 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; |
46 ASSERT_TRUE(dbus_thread_->StartWithOptions(thread_options)); | 46 ASSERT_TRUE(dbus_thread_->StartWithOptions(thread_options)); |
47 | 47 |
48 // Start the test service, using the D-Bus thread. | 48 // Start the test service, using the D-Bus thread. |
49 TestService::Options options; | 49 TestService::Options options; |
50 options.dbus_task_runner = dbus_thread_->message_loop_proxy(); | 50 options.dbus_task_runner = dbus_thread_->task_runner(); |
51 test_service_.reset(new TestService(options)); | 51 test_service_.reset(new TestService(options)); |
52 ASSERT_TRUE(test_service_->StartService()); | 52 ASSERT_TRUE(test_service_->StartService()); |
53 ASSERT_TRUE(test_service_->WaitUntilServiceIsStarted()); | 53 ASSERT_TRUE(test_service_->WaitUntilServiceIsStarted()); |
54 ASSERT_TRUE(test_service_->HasDBusThread()); | 54 ASSERT_TRUE(test_service_->HasDBusThread()); |
55 | 55 |
56 // Create the client, using the D-Bus thread. | 56 // Create the client, using the D-Bus thread. |
57 Bus::Options bus_options; | 57 Bus::Options bus_options; |
58 bus_options.bus_type = Bus::SESSION; | 58 bus_options.bus_type = Bus::SESSION; |
59 bus_options.connection_type = Bus::PRIVATE; | 59 bus_options.connection_type = Bus::PRIVATE; |
60 bus_options.dbus_task_runner = dbus_thread_->message_loop_proxy(); | 60 bus_options.dbus_task_runner = dbus_thread_->task_runner(); |
61 bus_ = new Bus(bus_options); | 61 bus_ = new Bus(bus_options); |
62 object_proxy_ = bus_->GetObjectProxy( | 62 object_proxy_ = bus_->GetObjectProxy( |
63 "org.chromium.TestService", | 63 "org.chromium.TestService", |
64 ObjectPath("/org/chromium/TestObject")); | 64 ObjectPath("/org/chromium/TestObject")); |
65 ASSERT_TRUE(bus_->HasDBusThread()); | 65 ASSERT_TRUE(bus_->HasDBusThread()); |
66 | 66 |
67 // Connect to the "Test" signal of "org.chromium.TestInterface" from | 67 // Connect to the "Test" signal of "org.chromium.TestInterface" from |
68 // the remote object. | 68 // the remote object. |
69 object_proxy_->ConnectToSignal( | 69 object_proxy_->ConnectToSignal( |
70 "org.chromium.TestInterface", | 70 "org.chromium.TestInterface", |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 void SetUpBrokenBus() { | 131 void SetUpBrokenBus() { |
132 // Shut down the existing bus. | 132 // Shut down the existing bus. |
133 bus_->ShutdownOnDBusThreadAndBlock(); | 133 bus_->ShutdownOnDBusThreadAndBlock(); |
134 | 134 |
135 // Create new bus with invalid address. | 135 // Create new bus with invalid address. |
136 const char kInvalidAddress[] = ""; | 136 const char kInvalidAddress[] = ""; |
137 Bus::Options bus_options; | 137 Bus::Options bus_options; |
138 bus_options.bus_type = Bus::CUSTOM_ADDRESS; | 138 bus_options.bus_type = Bus::CUSTOM_ADDRESS; |
139 bus_options.address = kInvalidAddress; | 139 bus_options.address = kInvalidAddress; |
140 bus_options.connection_type = Bus::PRIVATE; | 140 bus_options.connection_type = Bus::PRIVATE; |
141 bus_options.dbus_task_runner = dbus_thread_->message_loop_proxy(); | 141 bus_options.dbus_task_runner = dbus_thread_->task_runner(); |
142 bus_ = new Bus(bus_options); | 142 bus_ = new Bus(bus_options); |
143 ASSERT_TRUE(bus_->HasDBusThread()); | 143 ASSERT_TRUE(bus_->HasDBusThread()); |
144 | 144 |
145 // Create new object proxy. | 145 // Create new object proxy. |
146 object_proxy_ = bus_->GetObjectProxy( | 146 object_proxy_ = bus_->GetObjectProxy( |
147 "org.chromium.TestService", | 147 "org.chromium.TestService", |
148 ObjectPath("/org/chromium/TestObject")); | 148 ObjectPath("/org/chromium/TestObject")); |
149 } | 149 } |
150 | 150 |
151 // Calls the method asynchronously. OnResponse() will be called once the | 151 // Calls the method asynchronously. OnResponse() will be called once the |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 test_service_->SendTestSignal(kMessage); | 655 test_service_->SendTestSignal(kMessage); |
656 // Receive the signal with the object proxy. | 656 // Receive the signal with the object proxy. |
657 WaitForTestSignal(); | 657 WaitForTestSignal(); |
658 // Verify the string WAS received by the original handler. | 658 // Verify the string WAS received by the original handler. |
659 ASSERT_EQ(kMessage, test_signal_string_); | 659 ASSERT_EQ(kMessage, test_signal_string_); |
660 // Verify the signal WAS ALSO received by the additional handler. | 660 // Verify the signal WAS ALSO received by the additional handler. |
661 ASSERT_EQ(kMessage, additional_test_signal_string_); | 661 ASSERT_EQ(kMessage, additional_test_signal_string_); |
662 } | 662 } |
663 | 663 |
664 } // namespace dbus | 664 } // namespace dbus |
OLD | NEW |