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

Side by Side Diff: chromeos/dbus/shill_client_unittest_base.cc

Issue 681723003: Add new shill client for VPN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removes dependence on basic_types.h and fixes a build error Created 6 years, 1 month 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 (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/shill_client_unittest_base.h" 5 #include "chromeos/dbus/shill_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 "base/json/json_writer.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chromeos/network/shill_property_util.h" 10 #include "chromeos/network/shill_property_util.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 ShillClientUnittestBase::MockErrorCallback::MockErrorCallback() {} 92 ShillClientUnittestBase::MockErrorCallback::MockErrorCallback() {}
93 93
94 ShillClientUnittestBase::MockErrorCallback::~MockErrorCallback() {} 94 ShillClientUnittestBase::MockErrorCallback::~MockErrorCallback() {}
95 95
96 ShillClientUnittestBase::MockPropertyChangeObserver:: 96 ShillClientUnittestBase::MockPropertyChangeObserver::
97 MockPropertyChangeObserver() {} 97 MockPropertyChangeObserver() {}
98 98
99 ShillClientUnittestBase::MockPropertyChangeObserver:: 99 ShillClientUnittestBase::MockPropertyChangeObserver::
100 ~MockPropertyChangeObserver() {} 100 ~MockPropertyChangeObserver() {}
101 101
102 ShillClientUnittestBase::MockShillThirdPartyVpnObserver::
103 MockShillThirdPartyVpnObserver() {}
104
105 ShillClientUnittestBase::MockShillThirdPartyVpnObserver::
106 ~MockShillThirdPartyVpnObserver() {}
107
102 ShillClientHelper::ErrorCallback 108 ShillClientHelper::ErrorCallback
103 ShillClientUnittestBase::MockErrorCallback::GetCallback() { 109 ShillClientUnittestBase::MockErrorCallback::GetCallback() {
104 return base::Bind(&MockErrorCallback::Run, base::Unretained(this)); 110 return base::Bind(&MockErrorCallback::Run, base::Unretained(this));
105 } 111 }
106 112
107 113
108 ShillClientUnittestBase::ShillClientUnittestBase( 114 ShillClientUnittestBase::ShillClientUnittestBase(
109 const std::string& interface_name, 115 const std::string& interface_name,
110 const dbus::ObjectPath& object_path) 116 const dbus::ObjectPath& object_path)
111 : interface_name_(interface_name), 117 : interface_name_(interface_name),
(...skipping 21 matching lines...) Expand all
133 EXPECT_CALL(*mock_proxy_.get(), CallMethod(_, _, _)) 139 EXPECT_CALL(*mock_proxy_.get(), CallMethod(_, _, _))
134 .WillRepeatedly(Invoke(this, &ShillClientUnittestBase::OnCallMethod)); 140 .WillRepeatedly(Invoke(this, &ShillClientUnittestBase::OnCallMethod));
135 141
136 // Set an expectation so mock_proxy's CallMethodWithErrorCallback() will use 142 // Set an expectation so mock_proxy's CallMethodWithErrorCallback() will use
137 // OnCallMethodWithErrorCallback() to return responses. 143 // OnCallMethodWithErrorCallback() to return responses.
138 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) 144 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _))
139 .WillRepeatedly(Invoke( 145 .WillRepeatedly(Invoke(
140 this, &ShillClientUnittestBase::OnCallMethodWithErrorCallback)); 146 this, &ShillClientUnittestBase::OnCallMethodWithErrorCallback));
141 147
142 // Set an expectation so mock_proxy's ConnectToSignal() will use 148 // Set an expectation so mock_proxy's ConnectToSignal() will use
143 // OnConnectToSignal() to run the callback. 149 // OnConnectToPropertyChanged() to run the callback.
144 EXPECT_CALL( 150 EXPECT_CALL(
145 *mock_proxy_.get(), 151 *mock_proxy_.get(),
146 ConnectToSignal(interface_name_, shill::kMonitorPropertyChanged, _, _)) 152 ConnectToSignal(interface_name_, shill::kMonitorPropertyChanged, _, _))
147 .WillRepeatedly( 153 .WillRepeatedly(
148 Invoke(this, &ShillClientUnittestBase::OnConnectToSignal)); 154 Invoke(this, &ShillClientUnittestBase::OnConnectToPropertyChanged));
155
156 EXPECT_CALL(
157 *mock_proxy_.get(),
158 ConnectToSignal(interface_name_, shill::kOnPlatformMessageFunction, _, _))
159 .WillRepeatedly(
160 Invoke(this, &ShillClientUnittestBase::OnConnectToPlatformMessage));
161
162 EXPECT_CALL(
163 *mock_proxy_.get(),
164 ConnectToSignal(interface_name_, shill::kOnPacketReceivedFunction, _, _))
165 .WillRepeatedly(
166 Invoke(this, &ShillClientUnittestBase::OnConnectToPacketReceived));
149 167
150 // Set an expectation so mock_bus's GetObjectProxy() for the given 168 // Set an expectation so mock_bus's GetObjectProxy() for the given
151 // service name and the object path will return mock_proxy_. 169 // service name and the object path will return mock_proxy_.
152 EXPECT_CALL(*mock_bus_.get(), 170 EXPECT_CALL(*mock_bus_.get(),
153 GetObjectProxy(shill::kFlimflamServiceName, object_path_)) 171 GetObjectProxy(shill::kFlimflamServiceName, object_path_))
154 .WillOnce(Return(mock_proxy_.get())); 172 .WillOnce(Return(mock_proxy_.get()));
155 173
156 // Set an expectation so mock_bus's GetDBusTaskRunner will return the current 174 // Set an expectation so mock_bus's GetDBusTaskRunner will return the current
157 // task runner. 175 // task runner.
158 EXPECT_CALL(*mock_bus_.get(), GetDBusTaskRunner()) 176 EXPECT_CALL(*mock_bus_.get(), GetDBusTaskRunner())
159 .WillRepeatedly(Return(message_loop_.message_loop_proxy().get())); 177 .WillRepeatedly(Return(message_loop_.message_loop_proxy().get()));
160 178
161 // ShutdownAndBlock() will be called in TearDown(). 179 // ShutdownAndBlock() will be called in TearDown().
162 EXPECT_CALL(*mock_bus_.get(), ShutdownAndBlock()).WillOnce(Return()); 180 EXPECT_CALL(*mock_bus_.get(), ShutdownAndBlock()).WillOnce(Return());
163 } 181 }
164 182
165 void ShillClientUnittestBase::TearDown() { 183 void ShillClientUnittestBase::TearDown() {
166 mock_bus_->ShutdownAndBlock(); 184 mock_bus_->ShutdownAndBlock();
167 } 185 }
168 186
169 void ShillClientUnittestBase::PrepareForMethodCall( 187 void ShillClientUnittestBase::PrepareForMethodCall(
170 const std::string& method_name, 188 const std::string& method_name,
171 const ArgumentCheckCallback& argument_checker, 189 const ArgumentCheckCallback& argument_checker,
172 dbus::Response* response) { 190 dbus::Response* response) {
173 expected_method_name_ = method_name; 191 expected_method_name_ = method_name;
174 argument_checker_ = argument_checker; 192 argument_checker_ = argument_checker;
175 response_ = response; 193 response_ = response;
176 } 194 }
177 195
196 void ShillClientUnittestBase::SendPlatformMessageSignal(
197 dbus::Signal* signal) {
198 ASSERT_FALSE(platform_message_handler_.is_null());
199 platform_message_handler_.Run(signal);
200 }
201
202 void ShillClientUnittestBase::SendPacketReceievedSignal(
203 dbus::Signal* signal) {
204 ASSERT_FALSE(packet_receieved__handler_.is_null());
205 packet_receieved__handler_.Run(signal);
206 }
207
178 void ShillClientUnittestBase::SendPropertyChangedSignal( 208 void ShillClientUnittestBase::SendPropertyChangedSignal(
179 dbus::Signal* signal) { 209 dbus::Signal* signal) {
180 ASSERT_FALSE(property_changed_handler_.is_null()); 210 ASSERT_FALSE(property_changed_handler_.is_null());
181 property_changed_handler_.Run(signal); 211 property_changed_handler_.Run(signal);
182 } 212 }
183 213
184 // static 214 // static
185 void ShillClientUnittestBase::ExpectPropertyChanged( 215 void ShillClientUnittestBase::ExpectPropertyChanged(
186 const std::string& expected_name, 216 const std::string& expected_name,
187 const base::Value* expected_value, 217 const base::Value* expected_value,
188 const std::string& name, 218 const std::string& name,
189 const base::Value& value) { 219 const base::Value& value) {
190 EXPECT_EQ(expected_name, name); 220 EXPECT_EQ(expected_name, name);
191 EXPECT_TRUE(expected_value->Equals(&value)); 221 EXPECT_TRUE(expected_value->Equals(&value));
192 } 222 }
193 223
194 // static 224 // static
195 void ShillClientUnittestBase::ExpectNoArgument(dbus::MessageReader* reader) { 225 void ShillClientUnittestBase::ExpectNoArgument(dbus::MessageReader* reader) {
196 EXPECT_FALSE(reader->HasMoreData()); 226 EXPECT_FALSE(reader->HasMoreData());
197 } 227 }
198 228
199 // static 229 // static
230 void ShillClientUnittestBase::ExpectUint32Argument(
231 uint32_t expected_value,
232 dbus::MessageReader* reader) {
233 uint32_t value;
234 ASSERT_TRUE(reader->PopUint32(&value));
235 EXPECT_EQ(expected_value, value);
236 EXPECT_FALSE(reader->HasMoreData());
237 }
238
239 // static
240 void ShillClientUnittestBase::ExpectArrayOfBytesArgument(
241 const std::string& expected_bytes,
242 dbus::MessageReader* reader) {
243 const uint8_t* bytes = nullptr;
244 size_t size = 0;
245 ASSERT_TRUE(reader->PopArrayOfBytes(&bytes, &size));
246 EXPECT_EQ(expected_bytes.size(), size);
247 for (size_t i = 0; i < size; ++i) {
248 EXPECT_EQ(expected_bytes[i], bytes[i]);
249 }
250 EXPECT_FALSE(reader->HasMoreData());
251 }
252
253 // static
200 void ShillClientUnittestBase::ExpectStringArgument( 254 void ShillClientUnittestBase::ExpectStringArgument(
201 const std::string& expected_string, 255 const std::string& expected_string,
202 dbus::MessageReader* reader) { 256 dbus::MessageReader* reader) {
203 std::string str; 257 std::string str;
204 ASSERT_TRUE(reader->PopString(&str)); 258 ASSERT_TRUE(reader->PopString(&str));
205 EXPECT_EQ(expected_string, str); 259 EXPECT_EQ(expected_string, str);
206 EXPECT_FALSE(reader->HasMoreData()); 260 EXPECT_FALSE(reader->HasMoreData());
207 } 261 }
208 262
209 // static 263 // static
(...skipping 26 matching lines...) Expand all
236 EXPECT_EQ(expected_string, str); 290 EXPECT_EQ(expected_string, str);
237 scoped_ptr<base::Value> value(dbus::PopDataAsValue(reader)); 291 scoped_ptr<base::Value> value(dbus::PopDataAsValue(reader));
238 ASSERT_TRUE(value.get()); 292 ASSERT_TRUE(value.get());
239 EXPECT_TRUE(value->Equals(expected_value)); 293 EXPECT_TRUE(value->Equals(expected_value));
240 EXPECT_FALSE(reader->HasMoreData()); 294 EXPECT_FALSE(reader->HasMoreData());
241 } 295 }
242 296
243 // static 297 // static
244 void ShillClientUnittestBase::ExpectDictionaryValueArgument( 298 void ShillClientUnittestBase::ExpectDictionaryValueArgument(
245 const base::DictionaryValue* expected_dictionary, 299 const base::DictionaryValue* expected_dictionary,
300 bool string_valued,
246 dbus::MessageReader* reader) { 301 dbus::MessageReader* reader) {
247 dbus::MessageReader array_reader(NULL); 302 dbus::MessageReader array_reader(NULL);
248 ASSERT_TRUE(reader->PopArray(&array_reader)); 303 ASSERT_TRUE(reader->PopArray(&array_reader));
249 while (array_reader.HasMoreData()) { 304 while (array_reader.HasMoreData()) {
250 dbus::MessageReader entry_reader(NULL); 305 dbus::MessageReader entry_reader(NULL);
251 ASSERT_TRUE(array_reader.PopDictEntry(&entry_reader)); 306 ASSERT_TRUE(array_reader.PopDictEntry(&entry_reader));
252 std::string key; 307 std::string key;
253 ASSERT_TRUE(entry_reader.PopString(&key)); 308 ASSERT_TRUE(entry_reader.PopString(&key));
309 if (string_valued) {
310 std::string value;
311 std::string expected_value;
312 ASSERT_TRUE(entry_reader.PopString(&value));
313 EXPECT_TRUE(expected_dictionary->GetStringWithoutPathExpansion(
314 key, &expected_value));
315 EXPECT_EQ(expected_value, value);
316 continue;
317 }
254 dbus::MessageReader variant_reader(NULL); 318 dbus::MessageReader variant_reader(NULL);
255 ASSERT_TRUE(entry_reader.PopVariant(&variant_reader)); 319 ASSERT_TRUE(entry_reader.PopVariant(&variant_reader));
256 scoped_ptr<base::Value> value; 320 scoped_ptr<base::Value> value;
257 // Variants in the dictionary can be basic types or string-to-string 321 // Variants in the dictionary can be basic types or string-to-string
258 // dictinoary. 322 // dictinoary.
259 switch (variant_reader.GetDataType()) { 323 switch (variant_reader.GetDataType()) {
260 case dbus::Message::ARRAY: 324 case dbus::Message::ARRAY:
261 value.reset(PopStringToStringDictionary(&variant_reader)); 325 value.reset(PopStringToStringDictionary(&variant_reader));
262 break; 326 break;
263 case dbus::Message::BOOL: 327 case dbus::Message::BOOL:
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 407
344 // static 408 // static
345 void ShillClientUnittestBase::ExpectDictionaryValueResult( 409 void ShillClientUnittestBase::ExpectDictionaryValueResult(
346 const base::DictionaryValue* expected_result, 410 const base::DictionaryValue* expected_result,
347 DBusMethodCallStatus call_status, 411 DBusMethodCallStatus call_status,
348 const base::DictionaryValue& result) { 412 const base::DictionaryValue& result) {
349 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status); 413 EXPECT_EQ(DBUS_METHOD_CALL_SUCCESS, call_status);
350 ExpectDictionaryValueResultWithoutStatus(expected_result, result); 414 ExpectDictionaryValueResultWithoutStatus(expected_result, result);
351 } 415 }
352 416
353 void ShillClientUnittestBase::OnConnectToSignal( 417 void ShillClientUnittestBase::OnConnectToPlatformMessage(
354 const std::string& interface_name, 418 const std::string& interface_name,
355 const std::string& signal_name, 419 const std::string& signal_name,
356 const dbus::ObjectProxy::SignalCallback& signal_callback, 420 const dbus::ObjectProxy::SignalCallback& signal_callback,
421 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) {
422 platform_message_handler_ = signal_callback;
423 const bool success = true;
424 message_loop_.PostTask(FROM_HERE,
425 base::Bind(on_connected_callback,
426 interface_name,
427 signal_name,
428 success));
429 }
430
431 void ShillClientUnittestBase::OnConnectToPacketReceived(
432 const std::string& interface_name,
433 const std::string& signal_name,
434 const dbus::ObjectProxy::SignalCallback& signal_callback,
435 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) {
436 packet_receieved__handler_ = signal_callback;
437 const bool success = true;
438 message_loop_.PostTask(FROM_HERE,
439 base::Bind(on_connected_callback,
440 interface_name,
441 signal_name,
442 success));
443 }
444
445 void ShillClientUnittestBase::OnConnectToPropertyChanged(
446 const std::string& interface_name,
447 const std::string& signal_name,
448 const dbus::ObjectProxy::SignalCallback& signal_callback,
357 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) { 449 const dbus::ObjectProxy::OnConnectedCallback& on_connected_callback) {
358 property_changed_handler_ = signal_callback; 450 property_changed_handler_ = signal_callback;
359 const bool success = true; 451 const bool success = true;
360 message_loop_.PostTask(FROM_HERE, 452 message_loop_.PostTask(FROM_HERE,
361 base::Bind(on_connected_callback, 453 base::Bind(on_connected_callback,
362 interface_name, 454 interface_name,
363 signal_name, 455 signal_name,
364 success)); 456 success));
365 } 457 }
366 458
(...skipping 11 matching lines...) Expand all
378 470
379 void ShillClientUnittestBase::OnCallMethodWithErrorCallback( 471 void ShillClientUnittestBase::OnCallMethodWithErrorCallback(
380 dbus::MethodCall* method_call, 472 dbus::MethodCall* method_call,
381 int timeout_ms, 473 int timeout_ms,
382 const dbus::ObjectProxy::ResponseCallback& response_callback, 474 const dbus::ObjectProxy::ResponseCallback& response_callback,
383 const dbus::ObjectProxy::ErrorCallback& error_callback) { 475 const dbus::ObjectProxy::ErrorCallback& error_callback) {
384 OnCallMethod(method_call, timeout_ms, response_callback); 476 OnCallMethod(method_call, timeout_ms, response_callback);
385 } 477 }
386 478
387 } // namespace chromeos 479 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698