Chromium Code Reviews| 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 "chromeos/dbus/flimflam_client_unittest_base.h" | 5 #include "chromeos/dbus/flimflam_client_unittest_base.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/json/json_writer.h" | |
| 8 #include "dbus/message.h" | 9 #include "dbus/message.h" |
| 9 #include "dbus/object_path.h" | 10 #include "dbus/object_path.h" |
| 10 #include "dbus/values_util.h" | 11 #include "dbus/values_util.h" |
| 11 #include "testing/gmock/include/gmock/gmock.h" | 12 #include "testing/gmock/include/gmock/gmock.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 13 #include "third_party/cros_system_api/dbus/service_constants.h" | 14 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 14 | 15 |
| 15 using ::testing::_; | 16 using ::testing::_; |
| 16 using ::testing::Invoke; | 17 using ::testing::Invoke; |
| 17 using ::testing::Return; | 18 using ::testing::Return; |
| 18 | 19 |
| 19 namespace chromeos { | 20 namespace chromeos { |
| 20 | 21 |
| 21 FlimflamClientUnittestBase::FlimflamClientUnittestBase( | 22 FlimflamClientUnittestBase::FlimflamClientUnittestBase( |
| 22 const std::string& interface_name) : interface_name_(interface_name) { | 23 const std::string& interface_name, |
| 24 const dbus::ObjectPath& object_path) : interface_name_(interface_name), | |
|
stevenjb
2012/04/12 17:38:30
nit: newline and indent before ':'
hashimoto
2012/04/13 06:31:14
Done.
| |
| 25 object_path_(object_path) { | |
| 23 } | 26 } |
| 24 | 27 |
| 25 FlimflamClientUnittestBase::~FlimflamClientUnittestBase() { | 28 FlimflamClientUnittestBase::~FlimflamClientUnittestBase() { |
| 26 } | 29 } |
| 27 | 30 |
| 28 void FlimflamClientUnittestBase::SetUp() { | 31 void FlimflamClientUnittestBase::SetUp() { |
| 29 // Create a mock bus. | 32 // Create a mock bus. |
| 30 dbus::Bus::Options options; | 33 dbus::Bus::Options options; |
| 31 options.bus_type = dbus::Bus::SYSTEM; | 34 options.bus_type = dbus::Bus::SYSTEM; |
| 32 mock_bus_ = new dbus::MockBus(options); | 35 mock_bus_ = new dbus::MockBus(options); |
| 33 | 36 |
| 34 // Create a mock proxy. | 37 // Create a mock proxy. |
| 35 mock_proxy_ = new dbus::MockObjectProxy( | 38 mock_proxy_ = new dbus::MockObjectProxy( |
| 36 mock_bus_.get(), | 39 mock_bus_.get(), |
| 37 flimflam::kFlimflamServiceName, | 40 flimflam::kFlimflamServiceName, |
| 38 dbus::ObjectPath(flimflam::kFlimflamServicePath)); | 41 object_path_); |
| 39 | 42 |
| 40 // Set an expectation so mock_proxy's CallMethod() will use OnCallMethod() | 43 // Set an expectation so mock_proxy's CallMethod() will use OnCallMethod() |
| 41 // to return responses. | 44 // to return responses. |
| 42 EXPECT_CALL(*mock_proxy_, CallMethod(_, _, _)) | 45 EXPECT_CALL(*mock_proxy_, CallMethod(_, _, _)) |
| 43 .WillRepeatedly(Invoke(this, &FlimflamClientUnittestBase::OnCallMethod)); | 46 .WillRepeatedly(Invoke(this, &FlimflamClientUnittestBase::OnCallMethod)); |
| 44 | 47 |
| 45 // Set an expectation so mock_proxy's ConnectToSignal() will use | 48 // Set an expectation so mock_proxy's ConnectToSignal() will use |
| 46 // OnConnectToSignal() to run the callback. | 49 // OnConnectToSignal() to run the callback. |
| 47 EXPECT_CALL(*mock_proxy_, ConnectToSignal( | 50 EXPECT_CALL(*mock_proxy_, ConnectToSignal( |
| 48 interface_name_, | 51 interface_name_, |
| 49 flimflam::kMonitorPropertyChanged, _, _)) | 52 flimflam::kMonitorPropertyChanged, _, _)) |
| 50 .WillRepeatedly(Invoke(this, | 53 .WillRepeatedly(Invoke(this, |
| 51 &FlimflamClientUnittestBase::OnConnectToSignal)); | 54 &FlimflamClientUnittestBase::OnConnectToSignal)); |
| 52 | 55 |
| 53 // Set an expectation so mock_bus's GetObjectProxy() for the given | 56 // Set an expectation so mock_bus's GetObjectProxy() for the given |
| 54 // service name and the object path will return mock_proxy_. | 57 // service name and the object path will return mock_proxy_. |
| 55 EXPECT_CALL(*mock_bus_, GetObjectProxy( | 58 EXPECT_CALL(*mock_bus_, GetObjectProxy(flimflam::kFlimflamServiceName, |
| 56 flimflam::kFlimflamServiceName, | 59 object_path_)) |
| 57 dbus::ObjectPath(flimflam::kFlimflamServicePath))) | |
| 58 .WillOnce(Return(mock_proxy_.get())); | 60 .WillOnce(Return(mock_proxy_.get())); |
| 59 | 61 |
| 60 // ShutdownAndBlock() will be called in TearDown(). | 62 // ShutdownAndBlock() will be called in TearDown(). |
| 61 EXPECT_CALL(*mock_bus_, ShutdownAndBlock()).WillOnce(Return()); | 63 EXPECT_CALL(*mock_bus_, ShutdownAndBlock()).WillOnce(Return()); |
| 62 } | 64 } |
| 63 | 65 |
| 64 void FlimflamClientUnittestBase::TearDown() { | 66 void FlimflamClientUnittestBase::TearDown() { |
| 65 mock_bus_->ShutdownAndBlock(); | 67 mock_bus_->ShutdownAndBlock(); |
| 66 } | 68 } |
| 67 | 69 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status); | 145 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status); |
| 144 EXPECT_EQ(expected_result, result); | 146 EXPECT_EQ(expected_result, result); |
| 145 } | 147 } |
| 146 | 148 |
| 147 // static | 149 // static |
| 148 void FlimflamClientUnittestBase::ExpectDictionaryValueResult( | 150 void FlimflamClientUnittestBase::ExpectDictionaryValueResult( |
| 149 const base::DictionaryValue* expected_result, | 151 const base::DictionaryValue* expected_result, |
| 150 DBusMethodCallStatus call_status, | 152 DBusMethodCallStatus call_status, |
| 151 const base::DictionaryValue& result) { | 153 const base::DictionaryValue& result) { |
| 152 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status); | 154 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status); |
| 153 EXPECT_TRUE(expected_result->Equals(&result)); | 155 std::string expected_result_string; |
| 156 base::JSONWriter::Write(expected_result, &expected_result_string); | |
| 157 std::string result_string; | |
| 158 base::JSONWriter::Write(&result, &result_string); | |
| 159 EXPECT_EQ(expected_result_string, result_string); | |
| 154 } | 160 } |
| 155 | 161 |
| 156 void FlimflamClientUnittestBase::OnConnectToSignal( | 162 void FlimflamClientUnittestBase::OnConnectToSignal( |
| 157 const std::string& interface_name, | 163 const std::string& interface_name, |
| 158 const std::string& signal_name, | 164 const std::string& signal_name, |
| 159 const dbus::ObjectProxy::SignalCallback& signal_callback, | 165 const dbus::ObjectProxy::SignalCallback& signal_callback, |
| 160 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) { | 166 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) { |
| 161 property_changed_handler_ = signal_callback; | 167 property_changed_handler_ = signal_callback; |
| 162 const bool success = true; | 168 const bool success = true; |
| 163 message_loop_.PostTask(FROM_HERE, | 169 message_loop_.PostTask(FROM_HERE, |
| 164 base::Bind(on_connected_callback, | 170 base::Bind(on_connected_callback, |
| 165 interface_name, | 171 interface_name, |
| 166 signal_name, | 172 signal_name, |
| 167 success)); | 173 success)); |
| 168 } | 174 } |
| 169 | 175 |
| 170 void FlimflamClientUnittestBase::OnCallMethod( | 176 void FlimflamClientUnittestBase::OnCallMethod( |
| 171 dbus::MethodCall* method_call, | 177 dbus::MethodCall* method_call, |
| 172 int timeout_ms, | 178 int timeout_ms, |
| 173 const dbus::ObjectProxy::ResponseCallback& response_callback) { | 179 const dbus::ObjectProxy::ResponseCallback& response_callback) { |
| 174 EXPECT_EQ(interface_name_, method_call->GetInterface()); | 180 EXPECT_EQ(interface_name_, method_call->GetInterface()); |
| 175 EXPECT_EQ(expected_method_name_, method_call->GetMember()); | 181 EXPECT_EQ(expected_method_name_, method_call->GetMember()); |
| 176 dbus::MessageReader reader(method_call); | 182 dbus::MessageReader reader(method_call); |
| 177 argument_checker_.Run(&reader); | 183 argument_checker_.Run(&reader); |
| 178 message_loop_.PostTask(FROM_HERE, | 184 message_loop_.PostTask(FROM_HERE, |
| 179 base::Bind(response_callback, response_)); | 185 base::Bind(response_callback, response_)); |
| 180 } | 186 } |
| 181 | 187 |
| 182 } // namespace chromeos | 188 } // namespace chromeos |
| OLD | NEW |