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

Side by Side Diff: components/gcm_driver/gcm_client_impl_unittest.cc

Issue 2148163003: Fix asserts in gcm_client_impl_unittest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « no previous file | no next file » | 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 "components/gcm_driver/gcm_client_impl.h" 5 #include "components/gcm_driver/gcm_client_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 415
416 GCMClientImplTest::~GCMClientImplTest() {} 416 GCMClientImplTest::~GCMClientImplTest() {}
417 417
418 void GCMClientImplTest::SetUp() { 418 void GCMClientImplTest::SetUp() {
419 testing::Test::SetUp(); 419 testing::Test::SetUp();
420 ASSERT_TRUE(CreateUniqueTempDir()); 420 ASSERT_TRUE(CreateUniqueTempDir());
421 BuildGCMClient(base::TimeDelta()); 421 BuildGCMClient(base::TimeDelta());
422 InitializeGCMClient(); 422 InitializeGCMClient();
423 StartGCMClient(); 423 StartGCMClient();
424 SetUpUrlFetcherFactory(); 424 SetUpUrlFetcherFactory();
425 CompleteCheckin(kDeviceAndroidId, 425 ASSERT_NO_FATAL_FAILURE(
426 kDeviceSecurityToken, 426 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken, std::string(),
427 std::string(), 427 std::map<std::string, std::string>()));
428 std::map<std::string, std::string>());
429 } 428 }
430 429
431 void GCMClientImplTest::SetUpUrlFetcherFactory() { 430 void GCMClientImplTest::SetUpUrlFetcherFactory() {
432 url_fetcher_factory_.set_remove_fetcher_on_delete(true); 431 url_fetcher_factory_.set_remove_fetcher_on_delete(true);
433 } 432 }
434 433
435 void GCMClientImplTest::PumpLoopUntilIdle() { 434 void GCMClientImplTest::PumpLoopUntilIdle() {
436 task_runner_->RunUntilIdle(); 435 task_runner_->RunUntilIdle();
437 } 436 }
438 437
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 base::FilePath store_file_path = 650 base::FilePath store_file_path =
652 gcm_store_path().Append(FILE_PATH_LITERAL("CURRENT")); 651 gcm_store_path().Append(FILE_PATH_LITERAL("CURRENT"));
653 ASSERT_TRUE(base::AppendToFile(store_file_path, "A", 1)); 652 ASSERT_TRUE(base::AppendToFile(store_file_path, "A", 1));
654 653
655 // Restart GCM client. The store should be reset and the loading should 654 // Restart GCM client. The store should be reset and the loading should
656 // complete successfully. 655 // complete successfully.
657 reset_last_event(); 656 reset_last_event();
658 BuildGCMClient(base::TimeDelta()); 657 BuildGCMClient(base::TimeDelta());
659 InitializeGCMClient(); 658 InitializeGCMClient();
660 StartGCMClient(); 659 StartGCMClient();
661 CompleteCheckin(kDeviceAndroidId2, 660 ASSERT_NO_FATAL_FAILURE(
662 kDeviceSecurityToken2, 661 CompleteCheckin(kDeviceAndroidId2, kDeviceSecurityToken2, std::string(),
663 std::string(), 662 std::map<std::string, std::string>()));
664 std::map<std::string, std::string>());
665 663
666 EXPECT_EQ(LOADING_COMPLETED, last_event()); 664 EXPECT_EQ(LOADING_COMPLETED, last_event());
667 EXPECT_EQ(kDeviceAndroidId2, mcs_client()->last_android_id()); 665 EXPECT_EQ(kDeviceAndroidId2, mcs_client()->last_android_id());
668 EXPECT_EQ(kDeviceSecurityToken2, mcs_client()->last_security_token()); 666 EXPECT_EQ(kDeviceSecurityToken2, mcs_client()->last_security_token());
669 } 667 }
670 668
671 TEST_F(GCMClientImplTest, DestroyStoreWhenNotNeeded) { 669 TEST_F(GCMClientImplTest, DestroyStoreWhenNotNeeded) {
672 // Close the GCM store. 670 // Close the GCM store.
673 gcm_client()->Stop(); 671 gcm_client()->Stop();
674 PumpLoopUntilIdle(); 672 PumpLoopUntilIdle();
(...skipping 17 matching lines...) Expand all
692 EXPECT_FALSE(device_checkin_info().android_id); 690 EXPECT_FALSE(device_checkin_info().android_id);
693 EXPECT_FALSE(device_checkin_info().secret); 691 EXPECT_FALSE(device_checkin_info().secret);
694 } 692 }
695 693
696 TEST_F(GCMClientImplTest, RegisterApp) { 694 TEST_F(GCMClientImplTest, RegisterApp) {
697 EXPECT_FALSE(ExistsRegistration(kAppId)); 695 EXPECT_FALSE(ExistsRegistration(kAppId));
698 696
699 std::vector<std::string> senders; 697 std::vector<std::string> senders;
700 senders.push_back("sender"); 698 senders.push_back("sender");
701 Register(kAppId, senders); 699 Register(kAppId, senders);
702 CompleteRegistration("reg_id"); 700 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
703 701
704 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 702 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
705 EXPECT_EQ(kAppId, last_app_id()); 703 EXPECT_EQ(kAppId, last_app_id());
706 EXPECT_EQ("reg_id", last_registration_id()); 704 EXPECT_EQ("reg_id", last_registration_id());
707 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 705 EXPECT_EQ(GCMClient::SUCCESS, last_result());
708 EXPECT_TRUE(ExistsRegistration(kAppId)); 706 EXPECT_TRUE(ExistsRegistration(kAppId));
709 } 707 }
710 708
711 TEST_F(GCMClientImplTest, DISABLED_RegisterAppFromCache) { 709 TEST_F(GCMClientImplTest, DISABLED_RegisterAppFromCache) {
712 EXPECT_FALSE(ExistsRegistration(kAppId)); 710 EXPECT_FALSE(ExistsRegistration(kAppId));
713 711
714 std::vector<std::string> senders; 712 std::vector<std::string> senders;
715 senders.push_back("sender"); 713 senders.push_back("sender");
716 Register(kAppId, senders); 714 Register(kAppId, senders);
717 CompleteRegistration("reg_id"); 715 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
718 EXPECT_TRUE(ExistsRegistration(kAppId)); 716 EXPECT_TRUE(ExistsRegistration(kAppId));
719 717
720 EXPECT_EQ(kAppId, last_app_id()); 718 EXPECT_EQ(kAppId, last_app_id());
721 EXPECT_EQ("reg_id", last_registration_id()); 719 EXPECT_EQ("reg_id", last_registration_id());
722 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 720 EXPECT_EQ(GCMClient::SUCCESS, last_result());
723 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 721 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
724 722
725 // Recreate GCMClient in order to load from the persistent store. 723 // Recreate GCMClient in order to load from the persistent store.
726 BuildGCMClient(base::TimeDelta()); 724 BuildGCMClient(base::TimeDelta());
727 InitializeGCMClient(); 725 InitializeGCMClient();
728 StartGCMClient(); 726 StartGCMClient();
729 727
730 EXPECT_TRUE(ExistsRegistration(kAppId)); 728 EXPECT_TRUE(ExistsRegistration(kAppId));
731 } 729 }
732 730
733 TEST_F(GCMClientImplTest, RegisterPreviousSenderAgain) { 731 TEST_F(GCMClientImplTest, RegisterPreviousSenderAgain) {
734 EXPECT_FALSE(ExistsRegistration(kAppId)); 732 EXPECT_FALSE(ExistsRegistration(kAppId));
735 733
736 // Register a sender. 734 // Register a sender.
737 std::vector<std::string> senders; 735 std::vector<std::string> senders;
738 senders.push_back("sender"); 736 senders.push_back("sender");
739 Register(kAppId, senders); 737 Register(kAppId, senders);
740 CompleteRegistration("reg_id"); 738 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
741 739
742 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 740 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
743 EXPECT_EQ(kAppId, last_app_id()); 741 EXPECT_EQ(kAppId, last_app_id());
744 EXPECT_EQ("reg_id", last_registration_id()); 742 EXPECT_EQ("reg_id", last_registration_id());
745 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 743 EXPECT_EQ(GCMClient::SUCCESS, last_result());
746 EXPECT_TRUE(ExistsRegistration(kAppId)); 744 EXPECT_TRUE(ExistsRegistration(kAppId));
747 745
748 reset_last_event(); 746 reset_last_event();
749 747
750 // Register a different sender. Different registration ID from previous one 748 // Register a different sender. Different registration ID from previous one
751 // should be returned. 749 // should be returned.
752 std::vector<std::string> senders2; 750 std::vector<std::string> senders2;
753 senders2.push_back("sender2"); 751 senders2.push_back("sender2");
754 Register(kAppId, senders2); 752 Register(kAppId, senders2);
755 CompleteRegistration("reg_id2"); 753 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id2"));
756 754
757 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 755 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
758 EXPECT_EQ(kAppId, last_app_id()); 756 EXPECT_EQ(kAppId, last_app_id());
759 EXPECT_EQ("reg_id2", last_registration_id()); 757 EXPECT_EQ("reg_id2", last_registration_id());
760 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 758 EXPECT_EQ(GCMClient::SUCCESS, last_result());
761 EXPECT_TRUE(ExistsRegistration(kAppId)); 759 EXPECT_TRUE(ExistsRegistration(kAppId));
762 760
763 reset_last_event(); 761 reset_last_event();
764 762
765 // Register the 1st sender again. Different registration ID from previous one 763 // Register the 1st sender again. Different registration ID from previous one
766 // should be returned. 764 // should be returned.
767 std::vector<std::string> senders3; 765 std::vector<std::string> senders3;
768 senders3.push_back("sender"); 766 senders3.push_back("sender");
769 Register(kAppId, senders3); 767 Register(kAppId, senders3);
770 CompleteRegistration("reg_id"); 768 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
771 769
772 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 770 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
773 EXPECT_EQ(kAppId, last_app_id()); 771 EXPECT_EQ(kAppId, last_app_id());
774 EXPECT_EQ("reg_id", last_registration_id()); 772 EXPECT_EQ("reg_id", last_registration_id());
775 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 773 EXPECT_EQ(GCMClient::SUCCESS, last_result());
776 EXPECT_TRUE(ExistsRegistration(kAppId)); 774 EXPECT_TRUE(ExistsRegistration(kAppId));
777 } 775 }
778 776
779 TEST_F(GCMClientImplTest, UnregisterApp) { 777 TEST_F(GCMClientImplTest, UnregisterApp) {
780 EXPECT_FALSE(ExistsRegistration(kAppId)); 778 EXPECT_FALSE(ExistsRegistration(kAppId));
781 779
782 std::vector<std::string> senders; 780 std::vector<std::string> senders;
783 senders.push_back("sender"); 781 senders.push_back("sender");
784 Register(kAppId, senders); 782 Register(kAppId, senders);
785 CompleteRegistration("reg_id"); 783 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
786 EXPECT_TRUE(ExistsRegistration(kAppId)); 784 EXPECT_TRUE(ExistsRegistration(kAppId));
787 785
788 Unregister(kAppId); 786 Unregister(kAppId);
789 CompleteUnregistration(kAppId); 787 ASSERT_NO_FATAL_FAILURE(CompleteUnregistration(kAppId));
790 788
791 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 789 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
792 EXPECT_EQ(kAppId, last_app_id()); 790 EXPECT_EQ(kAppId, last_app_id());
793 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 791 EXPECT_EQ(GCMClient::SUCCESS, last_result());
794 EXPECT_FALSE(ExistsRegistration(kAppId)); 792 EXPECT_FALSE(ExistsRegistration(kAppId));
795 } 793 }
796 794
797 // Tests that stopping the GCMClient also deletes pending registration requests. 795 // Tests that stopping the GCMClient also deletes pending registration requests.
798 // This is tested by checking that url fetcher contained in the request was 796 // This is tested by checking that url fetcher contained in the request was
799 // deleted. 797 // deleted.
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 StartGCMClient(); 958 StartGCMClient();
961 } 959 }
962 960
963 TEST_F(GCMClientImplCheckinTest, GServicesSettingsAfterInitialCheckin) { 961 TEST_F(GCMClientImplCheckinTest, GServicesSettingsAfterInitialCheckin) {
964 std::map<std::string, std::string> settings; 962 std::map<std::string, std::string> settings;
965 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 963 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
966 settings["checkin_url"] = "http://alternative.url/checkin"; 964 settings["checkin_url"] = "http://alternative.url/checkin";
967 settings["gcm_hostname"] = "alternative.gcm.host"; 965 settings["gcm_hostname"] = "alternative.gcm.host";
968 settings["gcm_secure_port"] = "7777"; 966 settings["gcm_secure_port"] = "7777";
969 settings["gcm_registration_url"] = "http://alternative.url/registration"; 967 settings["gcm_registration_url"] = "http://alternative.url/registration";
970 CompleteCheckin(kDeviceAndroidId, 968 ASSERT_NO_FATAL_FAILURE(
971 kDeviceSecurityToken, 969 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
972 GServicesSettings::CalculateDigest(settings), 970 GServicesSettings::CalculateDigest(settings), settings));
973 settings);
974 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval), 971 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
975 gservices_settings().GetCheckinInterval()); 972 gservices_settings().GetCheckinInterval());
976 EXPECT_EQ(GURL("http://alternative.url/checkin"), 973 EXPECT_EQ(GURL("http://alternative.url/checkin"),
977 gservices_settings().GetCheckinURL()); 974 gservices_settings().GetCheckinURL());
978 EXPECT_EQ(GURL("http://alternative.url/registration"), 975 EXPECT_EQ(GURL("http://alternative.url/registration"),
979 gservices_settings().GetRegistrationURL()); 976 gservices_settings().GetRegistrationURL());
980 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"), 977 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"),
981 gservices_settings().GetMCSMainEndpoint()); 978 gservices_settings().GetMCSMainEndpoint());
982 EXPECT_EQ(GURL("https://alternative.gcm.host:443"), 979 EXPECT_EQ(GURL("https://alternative.gcm.host:443"),
983 gservices_settings().GetMCSFallbackEndpoint()); 980 gservices_settings().GetMCSFallbackEndpoint());
984 } 981 }
985 982
986 // This test only checks that periodic checkin happens. 983 // This test only checks that periodic checkin happens.
987 TEST_F(GCMClientImplCheckinTest, PeriodicCheckin) { 984 TEST_F(GCMClientImplCheckinTest, PeriodicCheckin) {
988 std::map<std::string, std::string> settings; 985 std::map<std::string, std::string> settings;
989 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 986 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
990 settings["checkin_url"] = "http://alternative.url/checkin"; 987 settings["checkin_url"] = "http://alternative.url/checkin";
991 settings["gcm_hostname"] = "alternative.gcm.host"; 988 settings["gcm_hostname"] = "alternative.gcm.host";
992 settings["gcm_secure_port"] = "7777"; 989 settings["gcm_secure_port"] = "7777";
993 settings["gcm_registration_url"] = "http://alternative.url/registration"; 990 settings["gcm_registration_url"] = "http://alternative.url/registration";
994 CompleteCheckin(kDeviceAndroidId, 991 ASSERT_NO_FATAL_FAILURE(
995 kDeviceSecurityToken, 992 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
996 GServicesSettings::CalculateDigest(settings), 993 GServicesSettings::CalculateDigest(settings), settings));
997 settings);
998 994
999 EXPECT_EQ(2, clock()->call_count()); 995 EXPECT_EQ(2, clock()->call_count());
1000 996
1001 PumpLoopUntilIdle(); 997 PumpLoopUntilIdle();
1002 CompleteCheckin(kDeviceAndroidId, 998 ASSERT_NO_FATAL_FAILURE(
1003 kDeviceSecurityToken, 999 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1004 GServicesSettings::CalculateDigest(settings), 1000 GServicesSettings::CalculateDigest(settings), settings));
1005 settings);
1006 } 1001 }
1007 1002
1008 TEST_F(GCMClientImplCheckinTest, LoadGSettingsFromStore) { 1003 TEST_F(GCMClientImplCheckinTest, LoadGSettingsFromStore) {
1009 std::map<std::string, std::string> settings; 1004 std::map<std::string, std::string> settings;
1010 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 1005 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
1011 settings["checkin_url"] = "http://alternative.url/checkin"; 1006 settings["checkin_url"] = "http://alternative.url/checkin";
1012 settings["gcm_hostname"] = "alternative.gcm.host"; 1007 settings["gcm_hostname"] = "alternative.gcm.host";
1013 settings["gcm_secure_port"] = "7777"; 1008 settings["gcm_secure_port"] = "7777";
1014 settings["gcm_registration_url"] = "http://alternative.url/registration"; 1009 settings["gcm_registration_url"] = "http://alternative.url/registration";
1015 CompleteCheckin(kDeviceAndroidId, 1010 ASSERT_NO_FATAL_FAILURE(
1016 kDeviceSecurityToken, 1011 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1017 GServicesSettings::CalculateDigest(settings), 1012 GServicesSettings::CalculateDigest(settings), settings));
1018 settings);
1019 1013
1020 BuildGCMClient(base::TimeDelta()); 1014 BuildGCMClient(base::TimeDelta());
1021 InitializeGCMClient(); 1015 InitializeGCMClient();
1022 StartGCMClient(); 1016 StartGCMClient();
1023 1017
1024 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval), 1018 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
1025 gservices_settings().GetCheckinInterval()); 1019 gservices_settings().GetCheckinInterval());
1026 EXPECT_EQ(GURL("http://alternative.url/checkin"), 1020 EXPECT_EQ(GURL("http://alternative.url/checkin"),
1027 gservices_settings().GetCheckinURL()); 1021 gservices_settings().GetCheckinURL());
1028 EXPECT_EQ(GURL("http://alternative.url/registration"), 1022 EXPECT_EQ(GURL("http://alternative.url/registration"),
1029 gservices_settings().GetRegistrationURL()); 1023 gservices_settings().GetRegistrationURL());
1030 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"), 1024 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"),
1031 gservices_settings().GetMCSMainEndpoint()); 1025 gservices_settings().GetMCSMainEndpoint());
1032 EXPECT_EQ(GURL("https://alternative.gcm.host:443"), 1026 EXPECT_EQ(GURL("https://alternative.gcm.host:443"),
1033 gservices_settings().GetMCSFallbackEndpoint()); 1027 gservices_settings().GetMCSFallbackEndpoint());
1034 } 1028 }
1035 1029
1036 // This test only checks that periodic checkin happens. 1030 // This test only checks that periodic checkin happens.
1037 TEST_F(GCMClientImplCheckinTest, CheckinWithAccounts) { 1031 TEST_F(GCMClientImplCheckinTest, CheckinWithAccounts) {
1038 std::map<std::string, std::string> settings; 1032 std::map<std::string, std::string> settings;
1039 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 1033 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
1040 settings["checkin_url"] = "http://alternative.url/checkin"; 1034 settings["checkin_url"] = "http://alternative.url/checkin";
1041 settings["gcm_hostname"] = "alternative.gcm.host"; 1035 settings["gcm_hostname"] = "alternative.gcm.host";
1042 settings["gcm_secure_port"] = "7777"; 1036 settings["gcm_secure_port"] = "7777";
1043 settings["gcm_registration_url"] = "http://alternative.url/registration"; 1037 settings["gcm_registration_url"] = "http://alternative.url/registration";
1044 CompleteCheckin(kDeviceAndroidId, 1038 ASSERT_NO_FATAL_FAILURE(
1045 kDeviceSecurityToken, 1039 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1046 GServicesSettings::CalculateDigest(settings), 1040 GServicesSettings::CalculateDigest(settings), settings));
1047 settings);
1048 1041
1049 std::vector<GCMClient::AccountTokenInfo> account_tokens; 1042 std::vector<GCMClient::AccountTokenInfo> account_tokens;
1050 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); 1043 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1"));
1051 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); 1044 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2"));
1052 gcm_client()->SetAccountTokens(account_tokens); 1045 gcm_client()->SetAccountTokens(account_tokens);
1053 1046
1054 EXPECT_TRUE(device_checkin_info().last_checkin_accounts.empty()); 1047 EXPECT_TRUE(device_checkin_info().last_checkin_accounts.empty());
1055 EXPECT_TRUE(device_checkin_info().accounts_set); 1048 EXPECT_TRUE(device_checkin_info().accounts_set);
1056 EXPECT_EQ(MakeEmailToTokenMap(account_tokens), 1049 EXPECT_EQ(MakeEmailToTokenMap(account_tokens),
1057 device_checkin_info().account_tokens); 1050 device_checkin_info().account_tokens);
1058 1051
1059 PumpLoopUntilIdle(); 1052 PumpLoopUntilIdle();
1060 CompleteCheckin(kDeviceAndroidId, 1053 ASSERT_NO_FATAL_FAILURE(
1061 kDeviceSecurityToken, 1054 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1062 GServicesSettings::CalculateDigest(settings), 1055 GServicesSettings::CalculateDigest(settings), settings));
1063 settings);
1064 1056
1065 std::set<std::string> accounts; 1057 std::set<std::string> accounts;
1066 accounts.insert("test_user1@gmail.com"); 1058 accounts.insert("test_user1@gmail.com");
1067 accounts.insert("test_user2@gmail.com"); 1059 accounts.insert("test_user2@gmail.com");
1068 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); 1060 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts);
1069 EXPECT_TRUE(device_checkin_info().accounts_set); 1061 EXPECT_TRUE(device_checkin_info().accounts_set);
1070 EXPECT_EQ(MakeEmailToTokenMap(account_tokens), 1062 EXPECT_EQ(MakeEmailToTokenMap(account_tokens),
1071 device_checkin_info().account_tokens); 1063 device_checkin_info().account_tokens);
1072 } 1064 }
1073 1065
1074 // This test only checks that periodic checkin happens. 1066 // This test only checks that periodic checkin happens.
1075 TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountRemoved) { 1067 TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountRemoved) {
1076 std::map<std::string, std::string> settings; 1068 std::map<std::string, std::string> settings;
1077 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 1069 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
1078 settings["checkin_url"] = "http://alternative.url/checkin"; 1070 settings["checkin_url"] = "http://alternative.url/checkin";
1079 settings["gcm_hostname"] = "alternative.gcm.host"; 1071 settings["gcm_hostname"] = "alternative.gcm.host";
1080 settings["gcm_secure_port"] = "7777"; 1072 settings["gcm_secure_port"] = "7777";
1081 settings["gcm_registration_url"] = "http://alternative.url/registration"; 1073 settings["gcm_registration_url"] = "http://alternative.url/registration";
1082 CompleteCheckin(kDeviceAndroidId, 1074 ASSERT_NO_FATAL_FAILURE(
1083 kDeviceSecurityToken, 1075 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1084 GServicesSettings::CalculateDigest(settings), 1076 GServicesSettings::CalculateDigest(settings), settings));
1085 settings);
1086 1077
1087 std::vector<GCMClient::AccountTokenInfo> account_tokens; 1078 std::vector<GCMClient::AccountTokenInfo> account_tokens;
1088 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); 1079 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1"));
1089 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); 1080 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2"));
1090 gcm_client()->SetAccountTokens(account_tokens); 1081 gcm_client()->SetAccountTokens(account_tokens);
1091 PumpLoopUntilIdle(); 1082 PumpLoopUntilIdle();
1092 CompleteCheckin(kDeviceAndroidId, 1083 ASSERT_NO_FATAL_FAILURE(
1093 kDeviceSecurityToken, 1084 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1094 GServicesSettings::CalculateDigest(settings), 1085 GServicesSettings::CalculateDigest(settings), settings));
1095 settings);
1096 1086
1097 EXPECT_EQ(2UL, device_checkin_info().last_checkin_accounts.size()); 1087 EXPECT_EQ(2UL, device_checkin_info().last_checkin_accounts.size());
1098 EXPECT_TRUE(device_checkin_info().accounts_set); 1088 EXPECT_TRUE(device_checkin_info().accounts_set);
1099 EXPECT_EQ(MakeEmailToTokenMap(account_tokens), 1089 EXPECT_EQ(MakeEmailToTokenMap(account_tokens),
1100 device_checkin_info().account_tokens); 1090 device_checkin_info().account_tokens);
1101 1091
1102 account_tokens.erase(account_tokens.begin() + 1); 1092 account_tokens.erase(account_tokens.begin() + 1);
1103 gcm_client()->SetAccountTokens(account_tokens); 1093 gcm_client()->SetAccountTokens(account_tokens);
1104 1094
1105 PumpLoopUntilIdle(); 1095 PumpLoopUntilIdle();
1106 CompleteCheckin(kDeviceAndroidId, 1096 ASSERT_NO_FATAL_FAILURE(
1107 kDeviceSecurityToken, 1097 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1108 GServicesSettings::CalculateDigest(settings), 1098 GServicesSettings::CalculateDigest(settings), settings));
1109 settings);
1110 1099
1111 std::set<std::string> accounts; 1100 std::set<std::string> accounts;
1112 accounts.insert("test_user1@gmail.com"); 1101 accounts.insert("test_user1@gmail.com");
1113 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); 1102 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts);
1114 EXPECT_TRUE(device_checkin_info().accounts_set); 1103 EXPECT_TRUE(device_checkin_info().accounts_set);
1115 EXPECT_EQ(MakeEmailToTokenMap(account_tokens), 1104 EXPECT_EQ(MakeEmailToTokenMap(account_tokens),
1116 device_checkin_info().account_tokens); 1105 device_checkin_info().account_tokens);
1117 } 1106 }
1118 1107
1119 // This test only checks that periodic checkin happens. 1108 // This test only checks that periodic checkin happens.
1120 TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountReplaced) { 1109 TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountReplaced) {
1121 std::map<std::string, std::string> settings; 1110 std::map<std::string, std::string> settings;
1122 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 1111 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
1123 settings["checkin_url"] = "http://alternative.url/checkin"; 1112 settings["checkin_url"] = "http://alternative.url/checkin";
1124 settings["gcm_hostname"] = "alternative.gcm.host"; 1113 settings["gcm_hostname"] = "alternative.gcm.host";
1125 settings["gcm_secure_port"] = "7777"; 1114 settings["gcm_secure_port"] = "7777";
1126 settings["gcm_registration_url"] = "http://alternative.url/registration"; 1115 settings["gcm_registration_url"] = "http://alternative.url/registration";
1127 CompleteCheckin(kDeviceAndroidId, 1116 ASSERT_NO_FATAL_FAILURE(
1128 kDeviceSecurityToken, 1117 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1129 GServicesSettings::CalculateDigest(settings), 1118 GServicesSettings::CalculateDigest(settings), settings));
1130 settings);
1131 1119
1132 std::vector<GCMClient::AccountTokenInfo> account_tokens; 1120 std::vector<GCMClient::AccountTokenInfo> account_tokens;
1133 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); 1121 account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1"));
1134 gcm_client()->SetAccountTokens(account_tokens); 1122 gcm_client()->SetAccountTokens(account_tokens);
1135 1123
1136 PumpLoopUntilIdle(); 1124 PumpLoopUntilIdle();
1137 CompleteCheckin(kDeviceAndroidId, 1125 ASSERT_NO_FATAL_FAILURE(
1138 kDeviceSecurityToken, 1126 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1139 GServicesSettings::CalculateDigest(settings), 1127 GServicesSettings::CalculateDigest(settings), settings));
1140 settings);
1141 1128
1142 std::set<std::string> accounts; 1129 std::set<std::string> accounts;
1143 accounts.insert("test_user1@gmail.com"); 1130 accounts.insert("test_user1@gmail.com");
1144 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); 1131 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts);
1145 1132
1146 // This should trigger another checkin, because the list of accounts is 1133 // This should trigger another checkin, because the list of accounts is
1147 // different. 1134 // different.
1148 account_tokens.clear(); 1135 account_tokens.clear();
1149 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); 1136 account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2"));
1150 gcm_client()->SetAccountTokens(account_tokens); 1137 gcm_client()->SetAccountTokens(account_tokens);
1151 1138
1152 PumpLoopUntilIdle(); 1139 PumpLoopUntilIdle();
1153 CompleteCheckin(kDeviceAndroidId, 1140 ASSERT_NO_FATAL_FAILURE(
1154 kDeviceSecurityToken, 1141 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken,
1155 GServicesSettings::CalculateDigest(settings), 1142 GServicesSettings::CalculateDigest(settings), settings));
1156 settings);
1157 1143
1158 accounts.clear(); 1144 accounts.clear();
1159 accounts.insert("test_user2@gmail.com"); 1145 accounts.insert("test_user2@gmail.com");
1160 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); 1146 EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts);
1161 EXPECT_TRUE(device_checkin_info().accounts_set); 1147 EXPECT_TRUE(device_checkin_info().accounts_set);
1162 EXPECT_EQ(MakeEmailToTokenMap(account_tokens), 1148 EXPECT_EQ(MakeEmailToTokenMap(account_tokens),
1163 device_checkin_info().account_tokens); 1149 device_checkin_info().account_tokens);
1164 } 1150 }
1165 1151
1166 class GCMClientImplStartAndStopTest : public GCMClientImplTest { 1152 class GCMClientImplStartAndStopTest : public GCMClientImplTest {
(...skipping 14 matching lines...) Expand all
1181 1167
1182 void GCMClientImplStartAndStopTest::SetUp() { 1168 void GCMClientImplStartAndStopTest::SetUp() {
1183 testing::Test::SetUp(); 1169 testing::Test::SetUp();
1184 ASSERT_TRUE(CreateUniqueTempDir()); 1170 ASSERT_TRUE(CreateUniqueTempDir());
1185 BuildGCMClient(base::TimeDelta()); 1171 BuildGCMClient(base::TimeDelta());
1186 InitializeGCMClient(); 1172 InitializeGCMClient();
1187 } 1173 }
1188 1174
1189 void GCMClientImplStartAndStopTest::DefaultCompleteCheckin() { 1175 void GCMClientImplStartAndStopTest::DefaultCompleteCheckin() {
1190 SetUpUrlFetcherFactory(); 1176 SetUpUrlFetcherFactory();
1191 CompleteCheckin(kDeviceAndroidId, 1177 ASSERT_NO_FATAL_FAILURE(
1192 kDeviceSecurityToken, 1178 CompleteCheckin(kDeviceAndroidId, kDeviceSecurityToken, std::string(),
1193 std::string(), 1179 std::map<std::string, std::string>()));
1194 std::map<std::string, std::string>());
1195 PumpLoopUntilIdle(); 1180 PumpLoopUntilIdle();
1196 } 1181 }
1197 1182
1198 TEST_F(GCMClientImplStartAndStopTest, StartStopAndRestart) { 1183 TEST_F(GCMClientImplStartAndStopTest, StartStopAndRestart) {
1199 // GCMClientImpl should be in INITIALIZED state at first. 1184 // GCMClientImpl should be in INITIALIZED state at first.
1200 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1185 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1201 1186
1202 // Delay start the GCM. 1187 // Delay start the GCM.
1203 gcm_client()->Start(GCMClient::DELAYED_START); 1188 gcm_client()->Start(GCMClient::DELAYED_START);
1204 PumpLoopUntilIdle(); 1189 PumpLoopUntilIdle();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 } 1247 }
1263 1248
1264 TEST_F(GCMClientImplStartAndStopTest, ImmediateStartAndThenImmediateStart) { 1249 TEST_F(GCMClientImplStartAndStopTest, ImmediateStartAndThenImmediateStart) {
1265 // GCMClientImpl should be in INITIALIZED state at first. 1250 // GCMClientImpl should be in INITIALIZED state at first.
1266 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1251 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1267 1252
1268 // Start the GCM immediately and complete the checkin. 1253 // Start the GCM immediately and complete the checkin.
1269 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1254 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1270 PumpLoopUntilIdle(); 1255 PumpLoopUntilIdle();
1271 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state()); 1256 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state());
1272 DefaultCompleteCheckin(); 1257 ASSERT_NO_FATAL_FAILURE(DefaultCompleteCheckin());
1273 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1258 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1274 1259
1275 // Stop the GCM. 1260 // Stop the GCM.
1276 gcm_client()->Stop(); 1261 gcm_client()->Stop();
1277 PumpLoopUntilIdle(); 1262 PumpLoopUntilIdle();
1278 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1263 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1279 1264
1280 // Start the GCM immediately. GCMClientImpl should be in READY state. 1265 // Start the GCM immediately. GCMClientImpl should be in READY state.
1281 BuildGCMClient(base::TimeDelta()); 1266 BuildGCMClient(base::TimeDelta());
1282 InitializeGCMClient(); 1267 InitializeGCMClient();
1283 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1268 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1284 PumpLoopUntilIdle(); 1269 PumpLoopUntilIdle();
1285 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1270 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1286 } 1271 }
1287 1272
1288 TEST_F(GCMClientImplStartAndStopTest, ImmediateStartAndThenDelayStart) { 1273 TEST_F(GCMClientImplStartAndStopTest, ImmediateStartAndThenDelayStart) {
1289 // GCMClientImpl should be in INITIALIZED state at first. 1274 // GCMClientImpl should be in INITIALIZED state at first.
1290 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1275 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1291 1276
1292 // Start the GCM immediately and complete the checkin. 1277 // Start the GCM immediately and complete the checkin.
1293 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1278 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1294 PumpLoopUntilIdle(); 1279 PumpLoopUntilIdle();
1295 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state()); 1280 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state());
1296 DefaultCompleteCheckin(); 1281 ASSERT_NO_FATAL_FAILURE(DefaultCompleteCheckin());
1297 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1282 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1298 1283
1299 // Stop the GCM. 1284 // Stop the GCM.
1300 gcm_client()->Stop(); 1285 gcm_client()->Stop();
1301 PumpLoopUntilIdle(); 1286 PumpLoopUntilIdle();
1302 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1287 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1303 1288
1304 // Delay start the GCM. GCMClientImpl should be in LOADED state. 1289 // Delay start the GCM. GCMClientImpl should be in LOADED state.
1305 BuildGCMClient(base::TimeDelta()); 1290 BuildGCMClient(base::TimeDelta());
1306 InitializeGCMClient(); 1291 InitializeGCMClient();
1307 gcm_client()->Start(GCMClient::DELAYED_START); 1292 gcm_client()->Start(GCMClient::DELAYED_START);
1308 PumpLoopUntilIdle(); 1293 PumpLoopUntilIdle();
1309 EXPECT_EQ(GCMClientImpl::LOADED, gcm_client_state()); 1294 EXPECT_EQ(GCMClientImpl::LOADED, gcm_client_state());
1310 } 1295 }
1311 1296
1312 TEST_F(GCMClientImplStartAndStopTest, DelayedStartRace) { 1297 TEST_F(GCMClientImplStartAndStopTest, DelayedStartRace) {
1313 // GCMClientImpl should be in INITIALIZED state at first. 1298 // GCMClientImpl should be in INITIALIZED state at first.
1314 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1299 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1315 1300
1316 // Delay start the GCM, then start it immediately while it's still loading. 1301 // Delay start the GCM, then start it immediately while it's still loading.
1317 gcm_client()->Start(GCMClient::DELAYED_START); 1302 gcm_client()->Start(GCMClient::DELAYED_START);
1318 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1303 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1319 PumpLoopUntilIdle(); 1304 PumpLoopUntilIdle();
1320 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state()); 1305 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state());
1321 DefaultCompleteCheckin(); 1306 ASSERT_NO_FATAL_FAILURE(DefaultCompleteCheckin());
1322 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1307 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1323 } 1308 }
1324 1309
1325 TEST_F(GCMClientImplStartAndStopTest, DelayedStart) { 1310 TEST_F(GCMClientImplStartAndStopTest, DelayedStart) {
1326 // GCMClientImpl should be in INITIALIZED state at first. 1311 // GCMClientImpl should be in INITIALIZED state at first.
1327 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1312 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1328 1313
1329 // Delay start the GCM. The store will not be loaded and GCMClientImpl should 1314 // Delay start the GCM. The store will not be loaded and GCMClientImpl should
1330 // still be in INITIALIZED state. 1315 // still be in INITIALIZED state.
1331 gcm_client()->Start(GCMClient::DELAYED_START); 1316 gcm_client()->Start(GCMClient::DELAYED_START);
1332 PumpLoopUntilIdle(); 1317 PumpLoopUntilIdle();
1333 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1318 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1334 1319
1335 // Start the GCM immediately and complete the checkin. 1320 // Start the GCM immediately and complete the checkin.
1336 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1321 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1337 PumpLoopUntilIdle(); 1322 PumpLoopUntilIdle();
1338 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state()); 1323 EXPECT_EQ(GCMClientImpl::INITIAL_DEVICE_CHECKIN, gcm_client_state());
1339 DefaultCompleteCheckin(); 1324 ASSERT_NO_FATAL_FAILURE(DefaultCompleteCheckin());
1340 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1325 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1341 1326
1342 // Registration. 1327 // Registration.
1343 std::vector<std::string> senders; 1328 std::vector<std::string> senders;
1344 senders.push_back("sender"); 1329 senders.push_back("sender");
1345 Register(kAppId, senders); 1330 Register(kAppId, senders);
1346 CompleteRegistration("reg_id"); 1331 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("reg_id"));
1347 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1332 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1348 1333
1349 // Stop the GCM. 1334 // Stop the GCM.
1350 gcm_client()->Stop(); 1335 gcm_client()->Stop();
1351 PumpLoopUntilIdle(); 1336 PumpLoopUntilIdle();
1352 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state()); 1337 EXPECT_EQ(GCMClientImpl::INITIALIZED, gcm_client_state());
1353 1338
1354 // Delay start the GCM. GCM is indeed started without delay because the 1339 // Delay start the GCM. GCM is indeed started without delay because the
1355 // registration record has been found. 1340 // registration record has been found.
1356 BuildGCMClient(base::TimeDelta()); 1341 BuildGCMClient(base::TimeDelta());
1357 InitializeGCMClient(); 1342 InitializeGCMClient();
1358 gcm_client()->Start(GCMClient::DELAYED_START); 1343 gcm_client()->Start(GCMClient::DELAYED_START);
1359 PumpLoopUntilIdle(); 1344 PumpLoopUntilIdle();
1360 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state()); 1345 EXPECT_EQ(GCMClientImpl::READY, gcm_client_state());
1361 } 1346 }
1362 1347
1363 // Test for known account mappings and last token fetching time being passed 1348 // Test for known account mappings and last token fetching time being passed
1364 // to OnGCMReady. 1349 // to OnGCMReady.
1365 TEST_F(GCMClientImplStartAndStopTest, OnGCMReadyAccountsAndTokenFetchingTime) { 1350 TEST_F(GCMClientImplStartAndStopTest, OnGCMReadyAccountsAndTokenFetchingTime) {
1366 // Start the GCM and wait until it is ready. 1351 // Start the GCM and wait until it is ready.
1367 gcm_client()->Start(GCMClient::IMMEDIATE_START); 1352 gcm_client()->Start(GCMClient::IMMEDIATE_START);
1368 PumpLoopUntilIdle(); 1353 PumpLoopUntilIdle();
1369 DefaultCompleteCheckin(); 1354 ASSERT_NO_FATAL_FAILURE(DefaultCompleteCheckin());
1370 1355
1371 base::Time expected_time = base::Time::Now(); 1356 base::Time expected_time = base::Time::Now();
1372 gcm_client()->SetLastTokenFetchTime(expected_time); 1357 gcm_client()->SetLastTokenFetchTime(expected_time);
1373 AccountMapping expected_mapping; 1358 AccountMapping expected_mapping;
1374 expected_mapping.account_id = "accId"; 1359 expected_mapping.account_id = "accId";
1375 expected_mapping.email = "email@gmail.com"; 1360 expected_mapping.email = "email@gmail.com";
1376 expected_mapping.status = AccountMapping::MAPPED; 1361 expected_mapping.status = AccountMapping::MAPPED;
1377 expected_mapping.status_change_timestamp = expected_time; 1362 expected_mapping.status_change_timestamp = expected_time;
1378 gcm_client()->UpdateAccountMapping(expected_mapping); 1363 gcm_client()->UpdateAccountMapping(expected_mapping);
1379 PumpLoopUntilIdle(); 1364 PumpLoopUntilIdle();
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1479 return gcm_client()->registrations_.count( 1464 return gcm_client()->registrations_.count(
1480 make_linked_ptr<RegistrationInfo>(instance_id_info.release())) > 0; 1465 make_linked_ptr<RegistrationInfo>(instance_id_info.release())) > 0;
1481 } 1466 }
1482 1467
1483 TEST_F(GCMClientInstanceIDTest, GetToken) { 1468 TEST_F(GCMClientInstanceIDTest, GetToken) {
1484 AddInstanceID(kAppId, kInstanceID); 1469 AddInstanceID(kAppId, kInstanceID);
1485 1470
1486 // Get a token. 1471 // Get a token.
1487 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1472 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1488 GetToken(kAppId, kSender, kScope); 1473 GetToken(kAppId, kSender, kScope);
1489 CompleteRegistration("token1"); 1474 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token1"));
1490 1475
1491 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1476 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1492 EXPECT_EQ(kAppId, last_app_id()); 1477 EXPECT_EQ(kAppId, last_app_id());
1493 EXPECT_EQ("token1", last_registration_id()); 1478 EXPECT_EQ("token1", last_registration_id());
1494 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1479 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1495 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1480 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1496 1481
1497 // Get another token. 1482 // Get another token.
1498 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope)); 1483 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope));
1499 GetToken(kAppId, kSender2, kScope); 1484 GetToken(kAppId, kSender2, kScope);
1500 CompleteRegistration("token2"); 1485 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token2"));
1501 1486
1502 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1487 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1503 EXPECT_EQ(kAppId, last_app_id()); 1488 EXPECT_EQ(kAppId, last_app_id());
1504 EXPECT_EQ("token2", last_registration_id()); 1489 EXPECT_EQ("token2", last_registration_id());
1505 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1490 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1506 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope)); 1491 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope));
1507 // The 1st token still exists. 1492 // The 1st token still exists.
1508 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1493 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1509 } 1494 }
1510 1495
(...skipping 18 matching lines...) Expand all
1529 EXPECT_EQ(kAppId, last_app_id()); 1514 EXPECT_EQ(kAppId, last_app_id());
1530 EXPECT_EQ(GCMClient::INVALID_PARAMETER, last_result()); 1515 EXPECT_EQ(GCMClient::INVALID_PARAMETER, last_result());
1531 } 1516 }
1532 1517
1533 TEST_F(GCMClientInstanceIDTest, DeleteSingleToken) { 1518 TEST_F(GCMClientInstanceIDTest, DeleteSingleToken) {
1534 AddInstanceID(kAppId, kInstanceID); 1519 AddInstanceID(kAppId, kInstanceID);
1535 1520
1536 // Get a token. 1521 // Get a token.
1537 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1522 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1538 GetToken(kAppId, kSender, kScope); 1523 GetToken(kAppId, kSender, kScope);
1539 CompleteRegistration("token1"); 1524 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token1"));
1540 1525
1541 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1526 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1542 EXPECT_EQ(kAppId, last_app_id()); 1527 EXPECT_EQ(kAppId, last_app_id());
1543 EXPECT_EQ("token1", last_registration_id()); 1528 EXPECT_EQ("token1", last_registration_id());
1544 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1529 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1545 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1530 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1546 1531
1547 reset_last_event(); 1532 reset_last_event();
1548 1533
1549 // Get another token. 1534 // Get another token.
1550 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope)); 1535 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope));
1551 GetToken(kAppId, kSender2, kScope); 1536 GetToken(kAppId, kSender2, kScope);
1552 CompleteRegistration("token2"); 1537 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token2"));
1553 1538
1554 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1539 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1555 EXPECT_EQ(kAppId, last_app_id()); 1540 EXPECT_EQ(kAppId, last_app_id());
1556 EXPECT_EQ("token2", last_registration_id()); 1541 EXPECT_EQ("token2", last_registration_id());
1557 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1542 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1558 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope)); 1543 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope));
1559 // The 1st token still exists. 1544 // The 1st token still exists.
1560 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1545 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1561 1546
1562 reset_last_event(); 1547 reset_last_event();
1563 1548
1564 // Delete the 2nd token. 1549 // Delete the 2nd token.
1565 DeleteToken(kAppId, kSender2, kScope); 1550 DeleteToken(kAppId, kSender2, kScope);
1566 CompleteDeleteToken(); 1551 ASSERT_NO_FATAL_FAILURE(CompleteDeleteToken());
1567 1552
1568 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 1553 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
1569 EXPECT_EQ(kAppId, last_app_id()); 1554 EXPECT_EQ(kAppId, last_app_id());
1570 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1555 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1571 // The 2nd token is gone while the 1st token still exists. 1556 // The 2nd token is gone while the 1st token still exists.
1572 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1557 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1573 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope)); 1558 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope));
1574 1559
1575 reset_last_event(); 1560 reset_last_event();
1576 1561
1577 // Delete the 1st token. 1562 // Delete the 1st token.
1578 DeleteToken(kAppId, kSender, kScope); 1563 DeleteToken(kAppId, kSender, kScope);
1579 CompleteDeleteToken(); 1564 ASSERT_NO_FATAL_FAILURE(CompleteDeleteToken());
1580 1565
1581 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 1566 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
1582 EXPECT_EQ(kAppId, last_app_id()); 1567 EXPECT_EQ(kAppId, last_app_id());
1583 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1568 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1584 // Both tokens are gone now. 1569 // Both tokens are gone now.
1585 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1570 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1586 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1571 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1587 1572
1588 reset_last_event(); 1573 reset_last_event();
1589 1574
1590 // Trying to delete the token again will get an error. 1575 // Trying to delete the token again will get an error.
1591 DeleteToken(kAppId, kSender, kScope); 1576 DeleteToken(kAppId, kSender, kScope);
1592 PumpLoopUntilIdle(); 1577 PumpLoopUntilIdle();
1593 1578
1594 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 1579 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
1595 EXPECT_EQ(kAppId, last_app_id()); 1580 EXPECT_EQ(kAppId, last_app_id());
1596 EXPECT_EQ(GCMClient::INVALID_PARAMETER, last_result()); 1581 EXPECT_EQ(GCMClient::INVALID_PARAMETER, last_result());
1597 } 1582 }
1598 1583
1599 TEST_F(GCMClientInstanceIDTest, DeleteAllTokens) { 1584 TEST_F(GCMClientInstanceIDTest, DeleteAllTokens) {
1600 AddInstanceID(kAppId, kInstanceID); 1585 AddInstanceID(kAppId, kInstanceID);
1601 1586
1602 // Get a token. 1587 // Get a token.
1603 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1588 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1604 GetToken(kAppId, kSender, kScope); 1589 GetToken(kAppId, kSender, kScope);
1605 CompleteRegistration("token1"); 1590 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token1"));
1606 1591
1607 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1592 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1608 EXPECT_EQ(kAppId, last_app_id()); 1593 EXPECT_EQ(kAppId, last_app_id());
1609 EXPECT_EQ("token1", last_registration_id()); 1594 EXPECT_EQ("token1", last_registration_id());
1610 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1595 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1611 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1596 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1612 1597
1613 reset_last_event(); 1598 reset_last_event();
1614 1599
1615 // Get another token. 1600 // Get another token.
1616 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope)); 1601 EXPECT_FALSE(ExistsToken(kAppId, kSender2, kScope));
1617 GetToken(kAppId, kSender2, kScope); 1602 GetToken(kAppId, kSender2, kScope);
1618 CompleteRegistration("token2"); 1603 ASSERT_NO_FATAL_FAILURE(CompleteRegistration("token2"));
1619 1604
1620 EXPECT_EQ(REGISTRATION_COMPLETED, last_event()); 1605 EXPECT_EQ(REGISTRATION_COMPLETED, last_event());
1621 EXPECT_EQ(kAppId, last_app_id()); 1606 EXPECT_EQ(kAppId, last_app_id());
1622 EXPECT_EQ("token2", last_registration_id()); 1607 EXPECT_EQ("token2", last_registration_id());
1623 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1608 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1624 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope)); 1609 EXPECT_TRUE(ExistsToken(kAppId, kSender2, kScope));
1625 // The 1st token still exists. 1610 // The 1st token still exists.
1626 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope)); 1611 EXPECT_TRUE(ExistsToken(kAppId, kSender, kScope));
1627 1612
1628 reset_last_event(); 1613 reset_last_event();
1629 1614
1630 // Delete all tokens. 1615 // Delete all tokens.
1631 DeleteToken(kAppId, "*", "*"); 1616 DeleteToken(kAppId, "*", "*");
1632 CompleteDeleteToken(); 1617 ASSERT_NO_FATAL_FAILURE(CompleteDeleteToken());
1633 1618
1634 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 1619 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
1635 EXPECT_EQ(kAppId, last_app_id()); 1620 EXPECT_EQ(kAppId, last_app_id());
1636 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1621 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1637 // All tokens are gone now. 1622 // All tokens are gone now.
1638 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1623 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1639 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope)); 1624 EXPECT_FALSE(ExistsToken(kAppId, kSender, kScope));
1640 } 1625 }
1641 1626
1642 TEST_F(GCMClientInstanceIDTest, DeleteAllTokensBeforeGetAnyToken) { 1627 TEST_F(GCMClientInstanceIDTest, DeleteAllTokensBeforeGetAnyToken) {
1643 AddInstanceID(kAppId, kInstanceID); 1628 AddInstanceID(kAppId, kInstanceID);
1644 1629
1645 // Delete all tokens without getting a token first. 1630 // Delete all tokens without getting a token first.
1646 DeleteToken(kAppId, "*", "*"); 1631 DeleteToken(kAppId, "*", "*");
1647 // No need to call CompleteDeleteToken since unregistration request should 1632 // No need to call CompleteDeleteToken since unregistration request should
1648 // not be triggered. 1633 // not be triggered.
1649 PumpLoopUntilIdle(); 1634 PumpLoopUntilIdle();
1650 1635
1651 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event()); 1636 EXPECT_EQ(UNREGISTRATION_COMPLETED, last_event());
1652 EXPECT_EQ(kAppId, last_app_id()); 1637 EXPECT_EQ(kAppId, last_app_id());
1653 EXPECT_EQ(GCMClient::SUCCESS, last_result()); 1638 EXPECT_EQ(GCMClient::SUCCESS, last_result());
1654 } 1639 }
1655 1640
1656 } // namespace gcm 1641 } // namespace gcm
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698