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

Side by Side Diff: chrome/browser/services/gcm/gcm_service_unittest.cc

Issue 285623002: Rename GCMClient::Load to GCMClient::Start (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/services/gcm/gcm_service.cc ('k') | google_apis/gcm/gcm_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/services/gcm/gcm_service.h" 5 #include "chrome/browser/services/gcm/gcm_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 return unregistration_result_; 227 return unregistration_result_;
228 } 228 }
229 229
230 void ClearRegistrationResult(); 230 void ClearRegistrationResult();
231 void ClearUnregistrationResult(); 231 void ClearUnregistrationResult();
232 232
233 bool ServiceHasAppHandlers() const; 233 bool ServiceHasAppHandlers() const;
234 GCMClientMock* GetGCMClient(); 234 GCMClientMock* GetGCMClient();
235 235
236 void CreateService(bool start_automatically, 236 void CreateService(bool start_automatically,
237 GCMClientMock::LoadingDelay gcm_client_loading_delay); 237 GCMClientMock::StartMode gcm_client_start_mode);
238 238
239 void SignIn(const std::string& account_id); 239 void SignIn(const std::string& account_id);
240 void SignOut(); 240 void SignOut();
241 241
242 void Register(const std::string& app_id, 242 void Register(const std::string& app_id,
243 const std::vector<std::string>& sender_ids, 243 const std::vector<std::string>& sender_ids,
244 WaitToFinish wait_to_finish); 244 WaitToFinish wait_to_finish);
245 void Send(const std::string& app_id, 245 void Send(const std::string& app_id,
246 const std::string& receiver_id, 246 const std::string& receiver_id,
247 const GCMClient::OutgoingMessage& message, 247 const GCMClient::OutgoingMessage& message,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 bool TestGCMServiceWrapper::ServiceHasAppHandlers() const { 306 bool TestGCMServiceWrapper::ServiceHasAppHandlers() const {
307 return !service_->app_handlers_.empty(); 307 return !service_->app_handlers_.empty();
308 } 308 }
309 309
310 GCMClientMock* TestGCMServiceWrapper::GetGCMClient() { 310 GCMClientMock* TestGCMServiceWrapper::GetGCMClient() {
311 return static_cast<GCMClientMock*>(service_->GetGCMClientForTesting()); 311 return static_cast<GCMClientMock*>(service_->GetGCMClientForTesting());
312 } 312 }
313 313
314 void TestGCMServiceWrapper::CreateService( 314 void TestGCMServiceWrapper::CreateService(
315 bool start_automatically, 315 bool start_automatically,
316 GCMClientMock::LoadingDelay gcm_client_loading_delay) { 316 GCMClientMock::StartMode gcm_client_start_mode) {
317 service_.reset(new TestGCMService( 317 service_.reset(new TestGCMService(
318 start_automatically, 318 start_automatically,
319 identity_provider_owner_.PassAs<IdentityProvider>(), 319 identity_provider_owner_.PassAs<IdentityProvider>(),
320 request_context_)); 320 request_context_));
321 service_->Initialize(scoped_ptr<GCMClientFactory>( 321 service_->Initialize(scoped_ptr<GCMClientFactory>(
322 new FakeGCMClientFactory(gcm_client_loading_delay))); 322 new FakeGCMClientFactory(gcm_client_start_mode)));
323 323
324 gcm_app_handler_.reset(new FakeGCMAppHandler); 324 gcm_app_handler_.reset(new FakeGCMAppHandler);
325 service_->AddAppHandler(kTestAppID1, gcm_app_handler_.get()); 325 service_->AddAppHandler(kTestAppID1, gcm_app_handler_.get());
326 service_->AddAppHandler(kTestAppID2, gcm_app_handler_.get()); 326 service_->AddAppHandler(kTestAppID2, gcm_app_handler_.get());
327 } 327 }
328 328
329 void TestGCMServiceWrapper::SignIn(const std::string& account_id) { 329 void TestGCMServiceWrapper::SignIn(const std::string& account_id) {
330 token_service_.AddAccount(account_id); 330 token_service_.AddAccount(account_id);
331 identity_provider_->LogIn(account_id); 331 identity_provider_->LogIn(account_id);
332 PumpIOLoop(); 332 PumpIOLoop();
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 content::BrowserThread::IO)); 438 content::BrowserThread::IO));
439 wrapper_.reset(new TestGCMServiceWrapper(request_context_)); 439 wrapper_.reset(new TestGCMServiceWrapper(request_context_));
440 } 440 }
441 441
442 void GCMServiceTest::TearDown() { 442 void GCMServiceTest::TearDown() {
443 wrapper_.reset(); 443 wrapper_.reset();
444 } 444 }
445 445
446 TEST_F(GCMServiceTest, CreateGCMServiceBeforeSignIn) { 446 TEST_F(GCMServiceTest, CreateGCMServiceBeforeSignIn) {
447 // Create CreateGMCService first. 447 // Create CreateGMCService first.
448 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 448 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
449 EXPECT_FALSE(wrapper_->service()->IsStarted()); 449 EXPECT_FALSE(wrapper_->service()->IsStarted());
450 450
451 // Sign in. This will kick off the check-in. 451 // Sign in. This will kick off the check-in.
452 wrapper_->SignIn(kTestAccountID1); 452 wrapper_->SignIn(kTestAccountID1);
453 EXPECT_TRUE(wrapper_->service()->IsStarted()); 453 EXPECT_TRUE(wrapper_->service()->IsStarted());
454 } 454 }
455 455
456 TEST_F(GCMServiceTest, CreateGCMServiceAfterSignIn) { 456 TEST_F(GCMServiceTest, CreateGCMServiceAfterSignIn) {
457 // Sign in. This will not initiate the check-in. 457 // Sign in. This will not initiate the check-in.
458 wrapper_->SignIn(kTestAccountID1); 458 wrapper_->SignIn(kTestAccountID1);
459 459
460 // Create GCMeService after sign-in. 460 // Create GCMeService after sign-in.
461 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 461 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
462 EXPECT_TRUE(wrapper_->service()->IsStarted()); 462 EXPECT_TRUE(wrapper_->service()->IsStarted());
463 } 463 }
464 464
465 TEST_F(GCMServiceTest, Shutdown) { 465 TEST_F(GCMServiceTest, Shutdown) {
466 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 466 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
467 EXPECT_TRUE(wrapper_->ServiceHasAppHandlers()); 467 EXPECT_TRUE(wrapper_->ServiceHasAppHandlers());
468 468
469 wrapper_->service()->ShutdownService(); 469 wrapper_->service()->ShutdownService();
470 EXPECT_FALSE(wrapper_->ServiceHasAppHandlers()); 470 EXPECT_FALSE(wrapper_->ServiceHasAppHandlers());
471 } 471 }
472 472
473 TEST_F(GCMServiceTest, SignInAndSignOutUnderPositiveChannelSignal) { 473 TEST_F(GCMServiceTest, SignInAndSignOutUnderPositiveChannelSignal) {
474 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 474 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
475 wrapper_->SignIn(kTestAccountID1); 475 wrapper_->SignIn(kTestAccountID1);
476 476
477 // GCMClient should be loaded. 477 // GCMClient should be loaded.
478 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 478 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
479 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 479 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
480 480
481 wrapper_->SignOut(); 481 wrapper_->SignOut();
482 482
483 // GCMClient should be checked out. 483 // GCMClient should be checked out.
484 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 484 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
485 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status()); 485 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status());
486 } 486 }
487 487
488 TEST_F(GCMServiceTest, SignInAndSignOutUnderNonPositiveChannelSignal) { 488 TEST_F(GCMServiceTest, SignInAndSignOutUnderNonPositiveChannelSignal) {
489 // Non-positive channel signal will prevent GCMClient from checking in during 489 // Non-positive channel signal will prevent GCMClient from checking in during
490 // sign-in. 490 // sign-in.
491 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_LOADING); 491 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_START);
492 wrapper_->SignIn(kTestAccountID1); 492 wrapper_->SignIn(kTestAccountID1);
493 493
494 // GCMClient should not be loaded. 494 // GCMClient should not be loaded.
495 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 495 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
496 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status()); 496 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status());
497 497
498 wrapper_->SignOut(); 498 wrapper_->SignOut();
499 499
500 // Check-out should still be performed. 500 // Check-out should still be performed.
501 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 501 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
502 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status()); 502 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status());
503 } 503 }
504 504
505 TEST_F(GCMServiceTest, SignOutAndThenSignIn) { 505 TEST_F(GCMServiceTest, SignOutAndThenSignIn) {
506 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 506 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
507 wrapper_->SignIn(kTestAccountID1); 507 wrapper_->SignIn(kTestAccountID1);
508 508
509 // GCMClient should be loaded. 509 // GCMClient should be loaded.
510 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 510 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
511 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 511 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
512 512
513 wrapper_->SignOut(); 513 wrapper_->SignOut();
514 514
515 // GCMClient should be checked out. 515 // GCMClient should be checked out.
516 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 516 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
517 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status()); 517 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status());
518 518
519 // Sign-in with a different account. 519 // Sign-in with a different account.
520 wrapper_->SignIn(kTestAccountID2); 520 wrapper_->SignIn(kTestAccountID2);
521 521
522 // GCMClient should be loaded again. 522 // GCMClient should be loaded again.
523 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 523 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
524 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 524 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
525 } 525 }
526 526
527 TEST_F(GCMServiceTest, StopAndRestartGCM) { 527 TEST_F(GCMServiceTest, StopAndRestartGCM) {
528 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 528 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
529 wrapper_->SignIn(kTestAccountID1); 529 wrapper_->SignIn(kTestAccountID1);
530 530
531 // GCMClient should be loaded. 531 // GCMClient should be loaded.
532 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 532 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
533 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 533 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
534 534
535 // Stops the GCM. 535 // Stops the GCM.
536 wrapper_->service()->Stop(); 536 wrapper_->service()->Stop();
537 PumpIOLoop(); 537 PumpIOLoop();
538 PumpUILoop(); 538 PumpUILoop();
539 539
540 // GCMClient should be stopped. 540 // GCMClient should be stopped.
541 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 541 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
542 EXPECT_EQ(GCMClientMock::STOPPED, wrapper_->GetGCMClient()->status()); 542 EXPECT_EQ(GCMClientMock::STOPPED, wrapper_->GetGCMClient()->status());
543 543
544 // Restarts the GCM. 544 // Restarts the GCM.
545 wrapper_->service()->Start(); 545 wrapper_->service()->Start();
546 PumpIOLoop(); 546 PumpIOLoop();
547 PumpUILoop(); 547 PumpUILoop();
548 548
549 // GCMClient should be loaded. 549 // GCMClient should be loaded.
550 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 550 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
551 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 551 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
552 552
553 // Stops the GCM. 553 // Stops the GCM.
554 wrapper_->service()->Stop(); 554 wrapper_->service()->Stop();
555 PumpIOLoop(); 555 PumpIOLoop();
556 PumpUILoop(); 556 PumpUILoop();
557 557
558 // GCMClient should be stopped. 558 // GCMClient should be stopped.
559 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 559 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
560 EXPECT_EQ(GCMClientMock::STOPPED, wrapper_->GetGCMClient()->status()); 560 EXPECT_EQ(GCMClientMock::STOPPED, wrapper_->GetGCMClient()->status());
561 561
562 // Sign out. 562 // Sign out.
563 wrapper_->SignOut(); 563 wrapper_->SignOut();
564 564
565 // GCMClient should be checked out. 565 // GCMClient should be checked out.
566 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 566 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
567 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status()); 567 EXPECT_EQ(GCMClientMock::CHECKED_OUT, wrapper_->GetGCMClient()->status());
568 } 568 }
569 569
570 TEST_F(GCMServiceTest, RegisterWhenNotSignedIn) { 570 TEST_F(GCMServiceTest, RegisterWhenNotSignedIn) {
571 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 571 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
572 572
573 std::vector<std::string> sender_ids; 573 std::vector<std::string> sender_ids;
574 sender_ids.push_back("sender1"); 574 sender_ids.push_back("sender1");
575 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT); 575 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT);
576 576
577 EXPECT_TRUE(wrapper_->registration_id().empty()); 577 EXPECT_TRUE(wrapper_->registration_id().empty());
578 EXPECT_EQ(GCMClient::NOT_SIGNED_IN, wrapper_->registration_result()); 578 EXPECT_EQ(GCMClient::NOT_SIGNED_IN, wrapper_->registration_result());
579 } 579 }
580 580
581 TEST_F(GCMServiceTest, RegisterUnderNonPositiveChannelSignal) { 581 TEST_F(GCMServiceTest, RegisterUnderNonPositiveChannelSignal) {
582 // Non-positive channel signal will prevent GCMClient from checking in during 582 // Non-positive channel signal will prevent GCMClient from checking in during
583 // sign-in. 583 // sign-in.
584 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_LOADING); 584 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_START);
585 wrapper_->SignIn(kTestAccountID1); 585 wrapper_->SignIn(kTestAccountID1);
586 586
587 // GCMClient should not be checked in. 587 // GCMClient should not be checked in.
588 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 588 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
589 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status()); 589 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status());
590 590
591 // Invoking register will make GCMClient checked in. 591 // Invoking register will make GCMClient checked in.
592 std::vector<std::string> sender_ids; 592 std::vector<std::string> sender_ids;
593 sender_ids.push_back("sender1"); 593 sender_ids.push_back("sender1");
594 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT); 594 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT);
595 595
596 // GCMClient should be checked in. 596 // GCMClient should be checked in.
597 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 597 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
598 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 598 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
599 599
600 // Registration should succeed. 600 // Registration should succeed.
601 const std::string expected_registration_id = 601 const std::string expected_registration_id =
602 GCMClientMock::GetRegistrationIdFromSenderIds(sender_ids); 602 GCMClientMock::GetRegistrationIdFromSenderIds(sender_ids);
603 EXPECT_EQ(expected_registration_id, wrapper_->registration_id()); 603 EXPECT_EQ(expected_registration_id, wrapper_->registration_id());
604 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->registration_result()); 604 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->registration_result());
605 } 605 }
606 606
607 TEST_F(GCMServiceTest, SendWhenNotSignedIn) { 607 TEST_F(GCMServiceTest, SendWhenNotSignedIn) {
608 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 608 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
609 609
610 GCMClient::OutgoingMessage message; 610 GCMClient::OutgoingMessage message;
611 message.id = "1"; 611 message.id = "1";
612 message.data["key1"] = "value1"; 612 message.data["key1"] = "value1";
613 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT); 613 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT);
614 614
615 EXPECT_TRUE(wrapper_->send_message_id().empty()); 615 EXPECT_TRUE(wrapper_->send_message_id().empty());
616 EXPECT_EQ(GCMClient::NOT_SIGNED_IN, wrapper_->send_result()); 616 EXPECT_EQ(GCMClient::NOT_SIGNED_IN, wrapper_->send_result());
617 } 617 }
618 618
619 TEST_F(GCMServiceTest, SendUnderNonPositiveChannelSignal) { 619 TEST_F(GCMServiceTest, SendUnderNonPositiveChannelSignal) {
620 // Non-positive channel signal will prevent GCMClient from checking in during 620 // Non-positive channel signal will prevent GCMClient from checking in during
621 // sign-in. 621 // sign-in.
622 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_LOADING); 622 wrapper_->CreateService(false, GCMClientMock::NO_DELAY_START);
623 wrapper_->SignIn(kTestAccountID1); 623 wrapper_->SignIn(kTestAccountID1);
624 624
625 // GCMClient should not be checked in. 625 // GCMClient should not be checked in.
626 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady()); 626 EXPECT_FALSE(wrapper_->service()->IsGCMClientReady());
627 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status()); 627 EXPECT_EQ(GCMClientMock::UNINITIALIZED, wrapper_->GetGCMClient()->status());
628 628
629 // Invoking send will make GCMClient checked in. 629 // Invoking send will make GCMClient checked in.
630 GCMClient::OutgoingMessage message; 630 GCMClient::OutgoingMessage message;
631 message.id = "1"; 631 message.id = "1";
632 message.data["key1"] = "value1"; 632 message.data["key1"] = "value1";
633 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT); 633 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT);
634 634
635 // GCMClient should be checked in. 635 // GCMClient should be checked in.
636 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady()); 636 EXPECT_TRUE(wrapper_->service()->IsGCMClientReady());
637 EXPECT_EQ(GCMClientMock::LOADED, wrapper_->GetGCMClient()->status()); 637 EXPECT_EQ(GCMClientMock::STARTED, wrapper_->GetGCMClient()->status());
638 638
639 // Sending should succeed. 639 // Sending should succeed.
640 EXPECT_EQ(message.id, wrapper_->send_message_id()); 640 EXPECT_EQ(message.id, wrapper_->send_message_id());
641 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->send_result()); 641 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->send_result());
642 } 642 }
643 643
644 // Tests a single instance of GCMService. 644 // Tests a single instance of GCMService.
645 class GCMServiceSingleInstanceTest : public GCMServiceTest { 645 class GCMServiceSingleInstanceTest : public GCMServiceTest {
646 public: 646 public:
647 GCMServiceSingleInstanceTest(); 647 GCMServiceSingleInstanceTest();
648 virtual ~GCMServiceSingleInstanceTest(); 648 virtual ~GCMServiceSingleInstanceTest();
649 649
650 // GCMServiceTest: 650 // GCMServiceTest:
651 virtual void SetUp() OVERRIDE; 651 virtual void SetUp() OVERRIDE;
652 652
653 private: 653 private:
654 DISALLOW_COPY_AND_ASSIGN(GCMServiceSingleInstanceTest); 654 DISALLOW_COPY_AND_ASSIGN(GCMServiceSingleInstanceTest);
655 }; 655 };
656 656
657 GCMServiceSingleInstanceTest::GCMServiceSingleInstanceTest() { 657 GCMServiceSingleInstanceTest::GCMServiceSingleInstanceTest() {
658 } 658 }
659 659
660 GCMServiceSingleInstanceTest::~GCMServiceSingleInstanceTest() { 660 GCMServiceSingleInstanceTest::~GCMServiceSingleInstanceTest() {
661 } 661 }
662 662
663 void GCMServiceSingleInstanceTest::SetUp() { 663 void GCMServiceSingleInstanceTest::SetUp() {
664 GCMServiceTest::SetUp(); 664 GCMServiceTest::SetUp();
665 665
666 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 666 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
667 wrapper_->SignIn(kTestAccountID1); 667 wrapper_->SignIn(kTestAccountID1);
668 } 668 }
669 669
670 TEST_F(GCMServiceSingleInstanceTest, Register) { 670 TEST_F(GCMServiceSingleInstanceTest, Register) {
671 std::vector<std::string> sender_ids; 671 std::vector<std::string> sender_ids;
672 sender_ids.push_back("sender1"); 672 sender_ids.push_back("sender1");
673 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT); 673 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT);
674 const std::string expected_registration_id = 674 const std::string expected_registration_id =
675 GCMClientMock::GetRegistrationIdFromSenderIds(sender_ids); 675 GCMClientMock::GetRegistrationIdFromSenderIds(sender_ids);
676 676
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 // Calling register 2nd time with the different sender IDs will get back a new 733 // Calling register 2nd time with the different sender IDs will get back a new
734 // registration ID. 734 // registration ID.
735 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT); 735 wrapper_->Register(kTestAppID1, sender_ids, TestGCMServiceWrapper::WAIT);
736 EXPECT_EQ(expected_registration_id2, wrapper_->registration_id()); 736 EXPECT_EQ(expected_registration_id2, wrapper_->registration_id());
737 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->registration_result()); 737 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->registration_result());
738 } 738 }
739 739
740 TEST_F(GCMServiceSingleInstanceTest, GCMClientNotReadyBeforeRegistration) { 740 TEST_F(GCMServiceSingleInstanceTest, GCMClientNotReadyBeforeRegistration) {
741 // Make GCMClient not ready initially. 741 // Make GCMClient not ready initially.
742 wrapper_.reset(new TestGCMServiceWrapper(request_context_)); 742 wrapper_.reset(new TestGCMServiceWrapper(request_context_));
743 wrapper_->CreateService(true, GCMClientMock::DELAY_LOADING); 743 wrapper_->CreateService(true, GCMClientMock::DELAY_START);
744 wrapper_->SignIn(kTestAccountID1); 744 wrapper_->SignIn(kTestAccountID1);
745 745
746 // The registration is on hold until GCMClient is ready. 746 // The registration is on hold until GCMClient is ready.
747 std::vector<std::string> sender_ids; 747 std::vector<std::string> sender_ids;
748 sender_ids.push_back("sender1"); 748 sender_ids.push_back("sender1");
749 wrapper_->Register(kTestAppID1, 749 wrapper_->Register(kTestAppID1,
750 sender_ids, 750 sender_ids,
751 TestGCMServiceWrapper::DO_NOT_WAIT); 751 TestGCMServiceWrapper::DO_NOT_WAIT);
752 PumpIOLoop(); 752 PumpIOLoop();
753 PumpUILoop(); 753 PumpUILoop();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 message.data["key2"] = "value2"; 865 message.data["key2"] = "value2";
866 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT); 866 wrapper_->Send(kTestAppID1, kUserID1, message, TestGCMServiceWrapper::WAIT);
867 867
868 EXPECT_EQ(message.id, wrapper_->send_message_id()); 868 EXPECT_EQ(message.id, wrapper_->send_message_id());
869 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->send_result()); 869 EXPECT_EQ(GCMClient::SUCCESS, wrapper_->send_result());
870 } 870 }
871 871
872 TEST_F(GCMServiceSingleInstanceTest, GCMClientNotReadyBeforeSending) { 872 TEST_F(GCMServiceSingleInstanceTest, GCMClientNotReadyBeforeSending) {
873 // Make GCMClient not ready initially. 873 // Make GCMClient not ready initially.
874 wrapper_.reset(new TestGCMServiceWrapper(request_context_)); 874 wrapper_.reset(new TestGCMServiceWrapper(request_context_));
875 wrapper_->CreateService(true, GCMClientMock::DELAY_LOADING); 875 wrapper_->CreateService(true, GCMClientMock::DELAY_START);
876 wrapper_->SignIn(kTestAccountID1); 876 wrapper_->SignIn(kTestAccountID1);
877 877
878 // The sending is on hold until GCMClient is ready. 878 // The sending is on hold until GCMClient is ready.
879 GCMClient::OutgoingMessage message; 879 GCMClient::OutgoingMessage message;
880 message.id = "1"; 880 message.id = "1";
881 message.data["key1"] = "value1"; 881 message.data["key1"] = "value1";
882 message.data["key2"] = "value2"; 882 message.data["key2"] = "value2";
883 wrapper_->Send(kTestAppID1, 883 wrapper_->Send(kTestAppID1,
884 kUserID1, 884 kUserID1,
885 message, 885 message,
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 } 1001 }
1002 1002
1003 GCMServiceMultipleInstanceTest::~GCMServiceMultipleInstanceTest() { 1003 GCMServiceMultipleInstanceTest::~GCMServiceMultipleInstanceTest() {
1004 } 1004 }
1005 1005
1006 void GCMServiceMultipleInstanceTest::SetUp() { 1006 void GCMServiceMultipleInstanceTest::SetUp() {
1007 GCMServiceTest::SetUp(); 1007 GCMServiceTest::SetUp();
1008 1008
1009 wrapper2_.reset(new TestGCMServiceWrapper(request_context_)); 1009 wrapper2_.reset(new TestGCMServiceWrapper(request_context_));
1010 1010
1011 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 1011 wrapper_->CreateService(true, GCMClientMock::NO_DELAY_START);
1012 wrapper2_->CreateService(true, GCMClientMock::NO_DELAY_LOADING); 1012 wrapper2_->CreateService(true, GCMClientMock::NO_DELAY_START);
1013 1013
1014 // Initiate check-in for each instance. 1014 // Initiate check-in for each instance.
1015 wrapper_->SignIn(kTestAccountID1); 1015 wrapper_->SignIn(kTestAccountID1);
1016 wrapper2_->SignIn(kTestAccountID2); 1016 wrapper2_->SignIn(kTestAccountID2);
1017 } 1017 }
1018 1018
1019 void GCMServiceMultipleInstanceTest::TearDown() { 1019 void GCMServiceMultipleInstanceTest::TearDown() {
1020 wrapper2_.reset(); 1020 wrapper2_.reset();
1021 } 1021 }
1022 1022
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1312 wrapper_->GetGCMClient()->ReceiveMessage(kTestAppID1, in_message5); 1312 wrapper_->GetGCMClient()->ReceiveMessage(kTestAppID1, in_message5);
1313 1313
1314 wrapper_->gcm_app_handler()->WaitForNotification(); 1314 wrapper_->gcm_app_handler()->WaitForNotification();
1315 1315
1316 EXPECT_EQ(FakeGCMAppHandler::MESSAGE_EVENT, 1316 EXPECT_EQ(FakeGCMAppHandler::MESSAGE_EVENT,
1317 wrapper_->gcm_app_handler()->received_event()); 1317 wrapper_->gcm_app_handler()->received_event());
1318 EXPECT_EQ(in_message5.data, wrapper_->gcm_app_handler()->message().data); 1318 EXPECT_EQ(in_message5.data, wrapper_->gcm_app_handler()->message().data);
1319 } 1319 }
1320 1320
1321 } // namespace gcm 1321 } // namespace gcm
OLDNEW
« no previous file with comments | « chrome/browser/services/gcm/gcm_service.cc ('k') | google_apis/gcm/gcm_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698