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/ibus/ibus_config_client.h" | 5 #include "chromeos/dbus/ibus/ibus_config_client.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 IBusConfigClientTest() {} | 275 IBusConfigClientTest() {} |
276 | 276 |
277 protected: | 277 protected: |
278 virtual void SetUp() OVERRIDE { | 278 virtual void SetUp() OVERRIDE { |
279 dbus::Bus::Options options; | 279 dbus::Bus::Options options; |
280 mock_bus_ = new dbus::MockBus(options); | 280 mock_bus_ = new dbus::MockBus(options); |
281 mock_proxy_ = new dbus::MockObjectProxy(mock_bus_.get(), | 281 mock_proxy_ = new dbus::MockObjectProxy(mock_bus_.get(), |
282 ibus::kServiceName, | 282 ibus::kServiceName, |
283 dbus::ObjectPath( | 283 dbus::ObjectPath( |
284 ibus::config::kServicePath)); | 284 ibus::config::kServicePath)); |
285 EXPECT_CALL(*mock_bus_, ShutdownAndBlock()); | 285 EXPECT_CALL(*mock_bus_.get(), ShutdownAndBlock()); |
286 client_.reset(IBusConfigClient::Create(REAL_DBUS_CLIENT_IMPLEMENTATION, | 286 client_.reset(IBusConfigClient::Create(REAL_DBUS_CLIENT_IMPLEMENTATION, |
287 mock_bus_)); | 287 mock_bus_.get())); |
288 | 288 |
289 // Surpress uninteresting mock function call warning. | 289 // Surpress uninteresting mock function call warning. |
290 EXPECT_CALL(*mock_bus_.get(), AssertOnOriginThread()) | 290 EXPECT_CALL(*mock_bus_.get(), AssertOnOriginThread()) |
291 .WillRepeatedly(Return()); | 291 .WillRepeatedly(Return()); |
292 } | 292 } |
293 | 293 |
294 virtual void TearDown() OVERRIDE { | 294 virtual void TearDown() OVERRIDE { |
295 mock_bus_->ShutdownAndBlock(); | 295 mock_bus_->ShutdownAndBlock(); |
296 } | 296 } |
297 | 297 |
298 // Initialize |client_| by replying valid owner name synchronously. | 298 // Initialize |client_| by replying valid owner name synchronously. |
299 void InitializeSync() { | 299 void InitializeSync() { |
300 EXPECT_CALL(*mock_bus_, GetObjectProxy(ibus::config::kServiceName, | 300 EXPECT_CALL(*mock_bus_.get(), |
301 dbus::ObjectPath( | 301 GetObjectProxy(ibus::config::kServiceName, |
302 ibus::config::kServicePath))) | 302 dbus::ObjectPath(ibus::config::kServicePath))) |
303 .WillOnce(Return(mock_proxy_.get())); | 303 .WillOnce(Return(mock_proxy_.get())); |
304 | 304 |
305 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy | 305 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy |
306 = new dbus::MockObjectProxy(mock_bus_.get(), | 306 = new dbus::MockObjectProxy(mock_bus_.get(), |
307 ibus::kDBusServiceName, | 307 ibus::kDBusServiceName, |
308 dbus::ObjectPath(ibus::kDBusObjectPath)); | 308 dbus::ObjectPath(ibus::kDBusObjectPath)); |
309 EXPECT_CALL(*mock_bus_, | 309 EXPECT_CALL(*mock_bus_.get(), |
310 GetObjectProxy(ibus::kDBusServiceName, | 310 GetObjectProxy(ibus::kDBusServiceName, |
311 dbus::ObjectPath(ibus::kDBusObjectPath))) | 311 dbus::ObjectPath(ibus::kDBusObjectPath))) |
312 .WillOnce(Return(mock_dbus_proxy.get())); | 312 .WillOnce(Return(mock_dbus_proxy.get())); |
313 | 313 |
314 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; | 314 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; |
315 EXPECT_CALL(*mock_dbus_proxy, CallMethodWithErrorCallback(_, _, _, _)) | 315 EXPECT_CALL(*mock_dbus_proxy.get(), CallMethodWithErrorCallback(_, _, _, _)) |
316 .WillOnce(Invoke(&mock_get_name_owner_method_call, | 316 .WillOnce(Invoke(&mock_get_name_owner_method_call, |
317 &MockGetNameOwnerMethodCallHandler::Run)); | 317 &MockGetNameOwnerMethodCallHandler::Run)); |
318 NameOwnerChangedHandler handler; | 318 NameOwnerChangedHandler handler; |
319 EXPECT_CALL(*mock_dbus_proxy, ConnectToSignal( | 319 EXPECT_CALL(*mock_dbus_proxy.get(), |
320 ibus::kDBusInterface, | 320 ConnectToSignal( |
321 ibus::kNameOwnerChangedSignal, | 321 ibus::kDBusInterface, ibus::kNameOwnerChangedSignal, _, _)) |
322 _, | 322 .WillOnce( |
323 _)).WillOnce(Invoke(&handler, | 323 Invoke(&handler, &NameOwnerChangedHandler::OnConnectToSignal)); |
324 &NameOwnerChangedHandler::OnConnectToSignal)); | |
325 client_->InitializeAsync(base::Bind(&base::DoNothing)); | 324 client_->InitializeAsync(base::Bind(&base::DoNothing)); |
326 mock_get_name_owner_method_call.EmitReplyCallback(":0.1"); | 325 mock_get_name_owner_method_call.EmitReplyCallback(":0.1"); |
327 } | 326 } |
328 | 327 |
329 // The IBus config client to be tested. | 328 // The IBus config client to be tested. |
330 scoped_ptr<IBusConfigClient> client_; | 329 scoped_ptr<IBusConfigClient> client_; |
331 | 330 |
332 // A message loop to emulate asynchronous behavior. | 331 // A message loop to emulate asynchronous behavior. |
333 base::MessageLoop message_loop_; | 332 base::MessageLoop message_loop_; |
334 scoped_refptr<dbus::MockBus> mock_bus_; | 333 scoped_refptr<dbus::MockBus> mock_bus_; |
335 scoped_refptr<dbus::MockObjectProxy> mock_proxy_; | 334 scoped_refptr<dbus::MockObjectProxy> mock_proxy_; |
336 }; | 335 }; |
337 | 336 |
338 TEST_F(IBusConfigClientTest, SetStringValueTest) { | 337 TEST_F(IBusConfigClientTest, SetStringValueTest) { |
339 // Set expectations | 338 // Set expectations |
340 InitializeSync(); | 339 InitializeSync(); |
341 const char value[] = "value"; | 340 const char value[] = "value"; |
342 SetStringValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); | 341 SetStringValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); |
343 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 342 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
344 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 343 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
345 MockErrorCallback error_callback; | 344 MockErrorCallback error_callback; |
346 EXPECT_CALL(error_callback, Run()).Times(0); | 345 EXPECT_CALL(error_callback, Run()).Times(0); |
347 | 346 |
348 // Call SetStringValue. | 347 // Call SetStringValue. |
349 client_->SetStringValue(kKey, kSection, value, | 348 client_->SetStringValue(kKey, kSection, value, |
350 base::Bind(&MockErrorCallback::Run, | 349 base::Bind(&MockErrorCallback::Run, |
351 base::Unretained(&error_callback))); | 350 base::Unretained(&error_callback))); |
352 } | 351 } |
353 | 352 |
354 TEST_F(IBusConfigClientTest, SetStringValueTest_Fail) { | 353 TEST_F(IBusConfigClientTest, SetStringValueTest_Fail) { |
355 // Set expectations | 354 // Set expectations |
356 InitializeSync(); | 355 InitializeSync(); |
357 const char value[] = "value"; | 356 const char value[] = "value"; |
358 SetStringValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 357 SetStringValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
359 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 358 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
360 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 359 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
361 MockErrorCallback error_callback; | 360 MockErrorCallback error_callback; |
362 EXPECT_CALL(error_callback, Run()); | 361 EXPECT_CALL(error_callback, Run()); |
363 | 362 |
364 // Call SetStringValue. | 363 // Call SetStringValue. |
365 client_->SetStringValue(kKey, kSection, value, | 364 client_->SetStringValue(kKey, kSection, value, |
366 base::Bind(&MockErrorCallback::Run, | 365 base::Bind(&MockErrorCallback::Run, |
367 base::Unretained(&error_callback))); | 366 base::Unretained(&error_callback))); |
368 } | 367 } |
369 | 368 |
370 TEST_F(IBusConfigClientTest, SetIntValueTest) { | 369 TEST_F(IBusConfigClientTest, SetIntValueTest) { |
371 // Set expectations | 370 // Set expectations |
372 InitializeSync(); | 371 InitializeSync(); |
373 const int value = 1234; | 372 const int value = 1234; |
374 SetIntValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); | 373 SetIntValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); |
375 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 374 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
376 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 375 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
377 MockErrorCallback error_callback; | 376 MockErrorCallback error_callback; |
378 EXPECT_CALL(error_callback, Run()).Times(0); | 377 EXPECT_CALL(error_callback, Run()).Times(0); |
379 | 378 |
380 // Call SetIntValue. | 379 // Call SetIntValue. |
381 client_->SetIntValue(kKey, kSection, value, | 380 client_->SetIntValue(kKey, kSection, value, |
382 base::Bind(&MockErrorCallback::Run, | 381 base::Bind(&MockErrorCallback::Run, |
383 base::Unretained(&error_callback))); | 382 base::Unretained(&error_callback))); |
384 } | 383 } |
385 | 384 |
386 TEST_F(IBusConfigClientTest, SetIntValueTest_Fail) { | 385 TEST_F(IBusConfigClientTest, SetIntValueTest_Fail) { |
387 // Set expectations | 386 // Set expectations |
388 InitializeSync(); | 387 InitializeSync(); |
389 const int value = 1234; | 388 const int value = 1234; |
390 SetIntValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 389 SetIntValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
391 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 390 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
392 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 391 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
393 MockErrorCallback error_callback; | 392 MockErrorCallback error_callback; |
394 EXPECT_CALL(error_callback, Run()); | 393 EXPECT_CALL(error_callback, Run()); |
395 | 394 |
396 // Call SetIntValue. | 395 // Call SetIntValue. |
397 client_->SetIntValue(kKey, kSection, value, | 396 client_->SetIntValue(kKey, kSection, value, |
398 base::Bind(&MockErrorCallback::Run, | 397 base::Bind(&MockErrorCallback::Run, |
399 base::Unretained(&error_callback))); | 398 base::Unretained(&error_callback))); |
400 } | 399 } |
401 | 400 |
402 TEST_F(IBusConfigClientTest, SetBoolValueTest) { | 401 TEST_F(IBusConfigClientTest, SetBoolValueTest) { |
403 // Set expectations | 402 // Set expectations |
404 InitializeSync(); | 403 InitializeSync(); |
405 const bool value = true; | 404 const bool value = true; |
406 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); | 405 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); |
407 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 406 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
408 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 407 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
409 MockErrorCallback error_callback; | 408 MockErrorCallback error_callback; |
410 EXPECT_CALL(error_callback, Run()).Times(0); | 409 EXPECT_CALL(error_callback, Run()).Times(0); |
411 | 410 |
412 // Call SetBoolValue. | 411 // Call SetBoolValue. |
413 client_->SetBoolValue(kKey, kSection, value, | 412 client_->SetBoolValue(kKey, kSection, value, |
414 base::Bind(&MockErrorCallback::Run, | 413 base::Bind(&MockErrorCallback::Run, |
415 base::Unretained(&error_callback))); | 414 base::Unretained(&error_callback))); |
416 } | 415 } |
417 | 416 |
418 TEST_F(IBusConfigClientTest, SetBoolValueTest_Fail) { | 417 TEST_F(IBusConfigClientTest, SetBoolValueTest_Fail) { |
419 // Set expectations | 418 // Set expectations |
420 InitializeSync(); | 419 InitializeSync(); |
421 const bool value = true; | 420 const bool value = true; |
422 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 421 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
423 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 422 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
424 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 423 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
425 MockErrorCallback error_callback; | 424 MockErrorCallback error_callback; |
426 EXPECT_CALL(error_callback, Run()); | 425 EXPECT_CALL(error_callback, Run()); |
427 | 426 |
428 // Call SetBoolValue. | 427 // Call SetBoolValue. |
429 client_->SetBoolValue(kKey, kSection, value, | 428 client_->SetBoolValue(kKey, kSection, value, |
430 base::Bind(&MockErrorCallback::Run, | 429 base::Bind(&MockErrorCallback::Run, |
431 base::Unretained(&error_callback))); | 430 base::Unretained(&error_callback))); |
432 } | 431 } |
433 | 432 |
434 TEST_F(IBusConfigClientTest, SetStringListValueTest) { | 433 TEST_F(IBusConfigClientTest, SetStringListValueTest) { |
435 // Set expectations | 434 // Set expectations |
436 InitializeSync(); | 435 InitializeSync(); |
437 std::vector<std::string> value; | 436 std::vector<std::string> value; |
438 value.push_back("Sample value 1"); | 437 value.push_back("Sample value 1"); |
439 value.push_back("Sample value 2"); | 438 value.push_back("Sample value 2"); |
440 | 439 |
441 SetStringListValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); | 440 SetStringListValueHandler handler(kSection, kKey, value, HANDLER_SUCCESS); |
442 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 441 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
443 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 442 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
444 MockErrorCallback error_callback; | 443 MockErrorCallback error_callback; |
445 EXPECT_CALL(error_callback, Run()).Times(0); | 444 EXPECT_CALL(error_callback, Run()).Times(0); |
446 | 445 |
447 // Call SetStringListValue. | 446 // Call SetStringListValue. |
448 client_->SetStringListValue(kKey, kSection, value, | 447 client_->SetStringListValue(kKey, kSection, value, |
449 base::Bind(&MockErrorCallback::Run, | 448 base::Bind(&MockErrorCallback::Run, |
450 base::Unretained(&error_callback))); | 449 base::Unretained(&error_callback))); |
451 } | 450 } |
452 | 451 |
453 TEST_F(IBusConfigClientTest, SetStringListValueTest_Fail) { | 452 TEST_F(IBusConfigClientTest, SetStringListValueTest_Fail) { |
454 // Set expectations | 453 // Set expectations |
455 InitializeSync(); | 454 InitializeSync(); |
456 std::vector<std::string> value; | 455 std::vector<std::string> value; |
457 value.push_back("Sample value 1"); | 456 value.push_back("Sample value 1"); |
458 value.push_back("Sample value 2"); | 457 value.push_back("Sample value 2"); |
459 | 458 |
460 SetStringListValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 459 SetStringListValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
461 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 460 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
462 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 461 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
463 MockErrorCallback error_callback; | 462 MockErrorCallback error_callback; |
464 EXPECT_CALL(error_callback, Run()); | 463 EXPECT_CALL(error_callback, Run()); |
465 | 464 |
466 // Call SetStringListValue. | 465 // Call SetStringListValue. |
467 client_->SetStringListValue(kKey, kSection, value, | 466 client_->SetStringListValue(kKey, kSection, value, |
468 base::Bind(&MockErrorCallback::Run, | 467 base::Bind(&MockErrorCallback::Run, |
469 base::Unretained(&error_callback))); | 468 base::Unretained(&error_callback))); |
470 } | 469 } |
471 | 470 |
472 TEST_F(IBusConfigClientTest, IBusConfigDaemon_NotAvailableTest) { | 471 TEST_F(IBusConfigClientTest, IBusConfigDaemon_NotAvailableTest) { |
473 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; | 472 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; |
474 | 473 |
475 EXPECT_CALL(*mock_bus_, GetObjectProxy(ibus::kServiceName, | 474 EXPECT_CALL(*mock_bus_.get(), |
476 dbus::ObjectPath( | 475 GetObjectProxy(ibus::kServiceName, |
477 ibus::config::kServicePath))) | 476 dbus::ObjectPath(ibus::config::kServicePath))) |
478 .Times(0); | 477 .Times(0); |
479 | 478 |
480 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy | 479 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy |
481 = new dbus::MockObjectProxy(mock_bus_.get(), | 480 = new dbus::MockObjectProxy(mock_bus_.get(), |
482 ibus::kDBusServiceName, | 481 ibus::kDBusServiceName, |
483 dbus::ObjectPath(ibus::kDBusObjectPath)); | 482 dbus::ObjectPath(ibus::kDBusObjectPath)); |
484 EXPECT_CALL(*mock_bus_, | 483 EXPECT_CALL(*mock_bus_.get(), |
485 GetObjectProxy(ibus::kDBusServiceName, | 484 GetObjectProxy(ibus::kDBusServiceName, |
486 dbus::ObjectPath(ibus::kDBusObjectPath))) | 485 dbus::ObjectPath(ibus::kDBusObjectPath))) |
487 .WillOnce(Return(mock_dbus_proxy.get())); | 486 .WillOnce(Return(mock_dbus_proxy.get())); |
488 EXPECT_CALL(*mock_dbus_proxy, CallMethodWithErrorCallback(_, _, _, _)) | 487 EXPECT_CALL(*mock_dbus_proxy.get(), CallMethodWithErrorCallback(_, _, _, _)) |
489 .WillOnce(Invoke(&mock_get_name_owner_method_call, | 488 .WillOnce(Invoke(&mock_get_name_owner_method_call, |
490 &MockGetNameOwnerMethodCallHandler::Run)); | 489 &MockGetNameOwnerMethodCallHandler::Run)); |
491 NameOwnerChangedHandler handler; | 490 NameOwnerChangedHandler handler; |
492 EXPECT_CALL(*mock_dbus_proxy, ConnectToSignal( | 491 EXPECT_CALL(*mock_dbus_proxy.get(), |
493 ibus::kDBusInterface, | 492 ConnectToSignal( |
494 ibus::kNameOwnerChangedSignal, | 493 ibus::kDBusInterface, ibus::kNameOwnerChangedSignal, _, _)) |
495 _, | 494 .WillOnce(Invoke(&handler, &NameOwnerChangedHandler::OnConnectToSignal)); |
496 _)).WillOnce(Invoke(&handler, | |
497 &NameOwnerChangedHandler::OnConnectToSignal)); | |
498 client_->InitializeAsync(base::Bind(&base::DoNothing)); | 495 client_->InitializeAsync(base::Bind(&base::DoNothing)); |
499 | 496 |
500 // Passing empty string means there is no owner, thus ibus-config daemon is | 497 // Passing empty string means there is no owner, thus ibus-config daemon is |
501 // not ready. | 498 // not ready. |
502 mock_get_name_owner_method_call.EmitReplyCallback(""); | 499 mock_get_name_owner_method_call.EmitReplyCallback(""); |
503 | 500 |
504 // Make sure not crashing by function call without initialize. | 501 // Make sure not crashing by function call without initialize. |
505 const bool value = true; | 502 const bool value = true; |
506 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)).Times(0); | 503 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
| 504 .Times(0); |
507 MockErrorCallback error_callback; | 505 MockErrorCallback error_callback; |
508 EXPECT_CALL(error_callback, Run()).Times(0); | 506 EXPECT_CALL(error_callback, Run()).Times(0); |
509 client_->SetBoolValue(kKey, kSection, value, | 507 client_->SetBoolValue(kKey, kSection, value, |
510 base::Bind(&MockErrorCallback::Run, | 508 base::Bind(&MockErrorCallback::Run, |
511 base::Unretained(&error_callback))); | 509 base::Unretained(&error_callback))); |
512 } | 510 } |
513 | 511 |
514 TEST_F(IBusConfigClientTest, IBusConfigDaemon_SlowInitializeTest) { | 512 TEST_F(IBusConfigClientTest, IBusConfigDaemon_SlowInitializeTest) { |
515 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; | 513 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; |
516 | 514 |
517 EXPECT_CALL(*mock_bus_, GetObjectProxy(ibus::config::kServiceName, | 515 EXPECT_CALL(*mock_bus_.get(), |
518 dbus::ObjectPath( | 516 GetObjectProxy(ibus::config::kServiceName, |
519 ibus::config::kServicePath))) | 517 dbus::ObjectPath(ibus::config::kServicePath))) |
520 .WillOnce(Return(mock_proxy_.get())); | 518 .WillOnce(Return(mock_proxy_.get())); |
521 | 519 |
522 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy | 520 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy |
523 = new dbus::MockObjectProxy(mock_bus_.get(), | 521 = new dbus::MockObjectProxy(mock_bus_.get(), |
524 ibus::kDBusServiceName, | 522 ibus::kDBusServiceName, |
525 dbus::ObjectPath(ibus::kDBusObjectPath)); | 523 dbus::ObjectPath(ibus::kDBusObjectPath)); |
526 EXPECT_CALL(*mock_bus_, | 524 EXPECT_CALL(*mock_bus_.get(), |
527 GetObjectProxy(ibus::kDBusServiceName, | 525 GetObjectProxy(ibus::kDBusServiceName, |
528 dbus::ObjectPath(ibus::kDBusObjectPath))) | 526 dbus::ObjectPath(ibus::kDBusObjectPath))) |
529 .WillOnce(Return(mock_dbus_proxy.get())); | 527 .WillOnce(Return(mock_dbus_proxy.get())); |
530 EXPECT_CALL(*mock_dbus_proxy, CallMethodWithErrorCallback(_, _, _, _)) | 528 EXPECT_CALL(*mock_dbus_proxy.get(), CallMethodWithErrorCallback(_, _, _, _)) |
531 .WillOnce(Invoke(&mock_get_name_owner_method_call, | 529 .WillOnce(Invoke(&mock_get_name_owner_method_call, |
532 &MockGetNameOwnerMethodCallHandler::Run)); | 530 &MockGetNameOwnerMethodCallHandler::Run)); |
533 NameOwnerChangedHandler name_owner_changed_handler; | 531 NameOwnerChangedHandler name_owner_changed_handler; |
534 EXPECT_CALL(*mock_dbus_proxy, ConnectToSignal( | 532 EXPECT_CALL(*mock_dbus_proxy.get(), |
535 ibus::kDBusInterface, | 533 ConnectToSignal( |
536 ibus::kNameOwnerChangedSignal, | 534 ibus::kDBusInterface, ibus::kNameOwnerChangedSignal, _, _)) |
537 _, | 535 .WillOnce(Invoke(&name_owner_changed_handler, |
538 _)).WillOnce(Invoke(&name_owner_changed_handler, | 536 &NameOwnerChangedHandler::OnConnectToSignal)); |
539 &NameOwnerChangedHandler::OnConnectToSignal)); | |
540 client_->InitializeAsync(base::Bind(&base::DoNothing)); | 537 client_->InitializeAsync(base::Bind(&base::DoNothing)); |
541 | 538 |
542 // Passing empty string means there is no owner, thus ibus-config daemon is | 539 // Passing empty string means there is no owner, thus ibus-config daemon is |
543 // not ready. | 540 // not ready. |
544 mock_get_name_owner_method_call.EmitReplyCallback(""); | 541 mock_get_name_owner_method_call.EmitReplyCallback(""); |
545 | 542 |
546 // Fire NameOwnerChanged signal to emulate ibus-config daemon was acquired | 543 // Fire NameOwnerChanged signal to emulate ibus-config daemon was acquired |
547 // well-known name. | 544 // well-known name. |
548 name_owner_changed_handler.InvokeSignal(ibus::config::kServiceName, | 545 name_owner_changed_handler.InvokeSignal(ibus::config::kServiceName, |
549 "", | 546 "", |
550 ":0.1"); | 547 ":0.1"); |
551 | 548 |
552 // Make sure it is possible to emit method calls. | 549 // Make sure it is possible to emit method calls. |
553 const bool value = true; | 550 const bool value = true; |
554 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 551 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
555 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 552 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
556 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); | 553 .WillOnce(Invoke(&handler, &SetValueVerifierBase::Run)); |
557 MockErrorCallback error_callback; | 554 MockErrorCallback error_callback; |
558 EXPECT_CALL(error_callback, Run()); | 555 EXPECT_CALL(error_callback, Run()); |
559 | 556 |
560 // Call SetBoolValue. | 557 // Call SetBoolValue. |
561 client_->SetBoolValue(kKey, kSection, value, | 558 client_->SetBoolValue(kKey, kSection, value, |
562 base::Bind(&MockErrorCallback::Run, | 559 base::Bind(&MockErrorCallback::Run, |
563 base::Unretained(&error_callback))); | 560 base::Unretained(&error_callback))); |
564 } | 561 } |
565 | 562 |
566 TEST_F(IBusConfigClientTest, IBusConfigDaemon_ShutdownTest) { | 563 TEST_F(IBusConfigClientTest, IBusConfigDaemon_ShutdownTest) { |
567 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; | 564 MockGetNameOwnerMethodCallHandler mock_get_name_owner_method_call; |
568 | 565 |
569 EXPECT_CALL(*mock_bus_, GetObjectProxy(ibus::config::kServiceName, | 566 EXPECT_CALL(*mock_bus_.get(), |
570 dbus::ObjectPath( | 567 GetObjectProxy(ibus::config::kServiceName, |
571 ibus::config::kServicePath))) | 568 dbus::ObjectPath(ibus::config::kServicePath))) |
572 .WillRepeatedly(Return(mock_proxy_.get())); | 569 .WillRepeatedly(Return(mock_proxy_.get())); |
573 | 570 |
574 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy | 571 scoped_refptr<dbus::MockObjectProxy> mock_dbus_proxy |
575 = new dbus::MockObjectProxy(mock_bus_.get(), | 572 = new dbus::MockObjectProxy(mock_bus_.get(), |
576 ibus::kDBusServiceName, | 573 ibus::kDBusServiceName, |
577 dbus::ObjectPath(ibus::kDBusObjectPath)); | 574 dbus::ObjectPath(ibus::kDBusObjectPath)); |
578 EXPECT_CALL(*mock_bus_, | 575 EXPECT_CALL(*mock_bus_.get(), |
579 GetObjectProxy(ibus::kDBusServiceName, | 576 GetObjectProxy(ibus::kDBusServiceName, |
580 dbus::ObjectPath(ibus::kDBusObjectPath))) | 577 dbus::ObjectPath(ibus::kDBusObjectPath))) |
581 .WillOnce(Return(mock_dbus_proxy.get())); | 578 .WillOnce(Return(mock_dbus_proxy.get())); |
582 EXPECT_CALL(*mock_dbus_proxy, CallMethodWithErrorCallback(_, _, _, _)) | 579 EXPECT_CALL(*mock_dbus_proxy.get(), CallMethodWithErrorCallback(_, _, _, _)) |
583 .WillOnce(Invoke(&mock_get_name_owner_method_call, | 580 .WillOnce(Invoke(&mock_get_name_owner_method_call, |
584 &MockGetNameOwnerMethodCallHandler::Run)); | 581 &MockGetNameOwnerMethodCallHandler::Run)); |
585 NameOwnerChangedHandler name_owner_changed_handler; | 582 NameOwnerChangedHandler name_owner_changed_handler; |
586 EXPECT_CALL(*mock_dbus_proxy, ConnectToSignal( | 583 EXPECT_CALL(*mock_dbus_proxy.get(), |
587 ibus::kDBusInterface, | 584 ConnectToSignal( |
588 ibus::kNameOwnerChangedSignal, | 585 ibus::kDBusInterface, ibus::kNameOwnerChangedSignal, _, _)) |
589 _, | 586 .WillOnce(Invoke(&name_owner_changed_handler, |
590 _)).WillOnce(Invoke(&name_owner_changed_handler, | 587 &NameOwnerChangedHandler::OnConnectToSignal)); |
591 &NameOwnerChangedHandler::OnConnectToSignal)); | |
592 client_->InitializeAsync(base::Bind(&base::DoNothing)); | 588 client_->InitializeAsync(base::Bind(&base::DoNothing)); |
593 | 589 |
594 const bool value = true; | 590 const bool value = true; |
595 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); | 591 SetBoolValueHandler handler(kSection, kKey, value, HANDLER_FAIL); |
596 EXPECT_CALL(*mock_proxy_, CallMethodWithErrorCallback(_, _, _, _)) | 592 EXPECT_CALL(*mock_proxy_.get(), CallMethodWithErrorCallback(_, _, _, _)) |
597 .WillRepeatedly(Invoke(&handler, &SetValueVerifierBase::Run)); | 593 .WillRepeatedly(Invoke(&handler, &SetValueVerifierBase::Run)); |
598 MockErrorCallback error_callback; | 594 MockErrorCallback error_callback; |
599 EXPECT_CALL(error_callback, Run()).WillRepeatedly(Return()); | 595 EXPECT_CALL(error_callback, Run()).WillRepeatedly(Return()); |
600 | 596 |
601 // Initialize succeeded sucessfully. | 597 // Initialize succeeded sucessfully. |
602 mock_get_name_owner_method_call.EmitReplyCallback(":0.2"); | 598 mock_get_name_owner_method_call.EmitReplyCallback(":0.2"); |
603 | 599 |
604 // Call SetBoolValue. | 600 // Call SetBoolValue. |
605 client_->SetBoolValue(kKey, kSection, value, | 601 client_->SetBoolValue(kKey, kSection, value, |
606 base::Bind(&MockErrorCallback::Run, | 602 base::Bind(&MockErrorCallback::Run, |
(...skipping 15 matching lines...) Expand all Loading... |
622 "", | 618 "", |
623 ":0.2"); | 619 ":0.2"); |
624 | 620 |
625 // Make sure it is possible to emit method calls. | 621 // Make sure it is possible to emit method calls. |
626 client_->SetBoolValue(kKey, kSection, value, | 622 client_->SetBoolValue(kKey, kSection, value, |
627 base::Bind(&MockErrorCallback::Run, | 623 base::Bind(&MockErrorCallback::Run, |
628 base::Unretained(&error_callback))); | 624 base::Unretained(&error_callback))); |
629 } | 625 } |
630 | 626 |
631 } // namespace chromeos | 627 } // namespace chromeos |
OLD | NEW |