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

Side by Side Diff: google_apis/gcm/gcm_client_impl_unittest.cc

Issue 288433002: G-services settings v3 implementation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding tests for settings diff, addressing CR feedback" 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
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 "google_apis/gcm/gcm_client_impl.h" 5 #include "google_apis/gcm/gcm_client_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 24 matching lines...) Expand all
35 REGISTRATION_COMPLETED, 35 REGISTRATION_COMPLETED,
36 UNREGISTRATION_COMPLETED, 36 UNREGISTRATION_COMPLETED,
37 MESSAGE_SEND_ERROR, 37 MESSAGE_SEND_ERROR,
38 MESSAGE_RECEIVED, 38 MESSAGE_RECEIVED,
39 MESSAGES_DELETED, 39 MESSAGES_DELETED,
40 }; 40 };
41 41
42 const uint64 kDeviceAndroidId = 54321; 42 const uint64 kDeviceAndroidId = 54321;
43 const uint64 kDeviceSecurityToken = 12345; 43 const uint64 kDeviceSecurityToken = 12345;
44 const int64 kSettingsCheckinInterval = 16 * 60 * 60; 44 const int64 kSettingsCheckinInterval = 16 * 60 * 60;
45 const char kSettingsDefaultDigest[] = "default_digest";
46 const char kAppId[] = "app_id"; 45 const char kAppId[] = "app_id";
47 const char kSender[] = "project_id"; 46 const char kSender[] = "project_id";
48 const char kSender2[] = "project_id2"; 47 const char kSender2[] = "project_id2";
49 const char kSender3[] = "project_id3"; 48 const char kSender3[] = "project_id3";
50 const char kRegistrationResponsePrefix[] = "token="; 49 const char kRegistrationResponsePrefix[] = "token=";
51 const char kUnregistrationResponsePrefix[] = "deleted="; 50 const char kUnregistrationResponsePrefix[] = "deleted=";
52 51
53 // Helper for building arbitrary data messages. 52 // Helper for building arbitrary data messages.
54 MCSMessage BuildDownstreamMessage( 53 MCSMessage BuildDownstreamMessage(
55 const std::string& project_id, 54 const std::string& project_id,
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 if (!digest.empty()) { 385 if (!digest.empty()) {
387 response.set_digest(digest); 386 response.set_digest(digest);
388 for (std::map<std::string, std::string>::const_iterator it = 387 for (std::map<std::string, std::string>::const_iterator it =
389 settings.begin(); 388 settings.begin();
390 it != settings.end(); 389 it != settings.end();
391 ++it) { 390 ++it) {
392 checkin_proto::GservicesSetting* setting = response.add_setting(); 391 checkin_proto::GservicesSetting* setting = response.add_setting();
393 setting->set_name(it->first); 392 setting->set_name(it->first);
394 setting->set_value(it->second); 393 setting->set_value(it->second);
395 } 394 }
395 response.set_settings_diff(false);
396 } 396 }
397 397
398 std::string response_string; 398 std::string response_string;
399 response.SerializeToString(&response_string); 399 response.SerializeToString(&response_string);
400 400
401 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); 401 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
402 ASSERT_TRUE(fetcher); 402 ASSERT_TRUE(fetcher);
403 fetcher->set_response_code(net::HTTP_OK); 403 fetcher->set_response_code(net::HTTP_OK);
404 fetcher->SetResponseString(response_string); 404 fetcher->SetResponseString(response_string);
405 fetcher->delegate()->OnURLFetchComplete(fetcher); 405 fetcher->delegate()->OnURLFetchComplete(fetcher);
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 EXPECT_EQ("value", 683 EXPECT_EQ("value",
684 mcs_client()->last_data_message_stanza().app_data(0).value()); 684 mcs_client()->last_data_message_stanza().app_data(0).value());
685 } 685 }
686 686
687 class GCMClientImplCheckinTest : public GCMClientImplTest { 687 class GCMClientImplCheckinTest : public GCMClientImplTest {
688 public: 688 public:
689 GCMClientImplCheckinTest(); 689 GCMClientImplCheckinTest();
690 virtual ~GCMClientImplCheckinTest(); 690 virtual ~GCMClientImplCheckinTest();
691 691
692 virtual void SetUp() OVERRIDE; 692 virtual void SetUp() OVERRIDE;
693
694 std::map<std::string, std::string> GenerateSettings(int64 checkin_interval);
695 }; 693 };
696 694
697 GCMClientImplCheckinTest::GCMClientImplCheckinTest() { 695 GCMClientImplCheckinTest::GCMClientImplCheckinTest() {
698 } 696 }
699 697
700 GCMClientImplCheckinTest::~GCMClientImplCheckinTest() { 698 GCMClientImplCheckinTest::~GCMClientImplCheckinTest() {
701 } 699 }
702 700
703 void GCMClientImplCheckinTest::SetUp() { 701 void GCMClientImplCheckinTest::SetUp() {
704 testing::Test::SetUp(); 702 testing::Test::SetUp();
(...skipping 10 matching lines...) Expand all
715 InitializeGCMClient(); 713 InitializeGCMClient();
716 } 714 }
717 715
718 TEST_F(GCMClientImplCheckinTest, GServicesSettingsAfterInitialCheckin) { 716 TEST_F(GCMClientImplCheckinTest, GServicesSettingsAfterInitialCheckin) {
719 std::map<std::string, std::string> settings; 717 std::map<std::string, std::string> settings;
720 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval); 718 settings["checkin_interval"] = base::Int64ToString(kSettingsCheckinInterval);
721 settings["checkin_url"] = "http://alternative.url/checkin"; 719 settings["checkin_url"] = "http://alternative.url/checkin";
722 settings["gcm_hostname"] = "alternative.gcm.host"; 720 settings["gcm_hostname"] = "alternative.gcm.host";
723 settings["gcm_secure_port"] = "7777"; 721 settings["gcm_secure_port"] = "7777";
724 settings["gcm_registration_url"] = "http://alternative.url/registration"; 722 settings["gcm_registration_url"] = "http://alternative.url/registration";
725 CompleteCheckin( 723 CompleteCheckin(kDeviceAndroidId,
726 kDeviceAndroidId, kDeviceSecurityToken, kSettingsDefaultDigest, settings); 724 kDeviceSecurityToken,
725 GServicesSettings::CalculateDigest(settings),
726 settings);
727 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval), 727 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
728 gservices_settings().checkin_interval()); 728 gservices_settings().GetCheckinInterval());
729 EXPECT_EQ(GURL("http://alternative.url/checkin"), 729 EXPECT_EQ(GURL("http://alternative.url/checkin"),
730 gservices_settings().checkin_url()); 730 gservices_settings().GetCheckinURL());
731 EXPECT_EQ(GURL("http://alternative.url/registration"), 731 EXPECT_EQ(GURL("http://alternative.url/registration"),
732 gservices_settings().registration_url()); 732 gservices_settings().GetRegistrationURL());
733 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"), 733 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"),
734 gservices_settings().mcs_main_endpoint()); 734 gservices_settings().GetMCSMainEndpoint());
735 EXPECT_EQ(GURL("https://alternative.gcm.host:443"), 735 EXPECT_EQ(GURL("https://alternative.gcm.host:443"),
736 gservices_settings().mcs_fallback_endpoint()); 736 gservices_settings().GetMCSFallbackEndpoint());
737 } 737 }
738 738
739 // This test only checks that periodic checkin happens. 739 // This test only checks that periodic checkin happens.
740 TEST_F(GCMClientImplCheckinTest, PeriodicCheckin) { 740 TEST_F(GCMClientImplCheckinTest, PeriodicCheckin) {
741 std::map<std::string, std::string> settings; 741 std::map<std::string, std::string> settings;
742 settings["checkin_interval"] = base::IntToString(kSettingsCheckinInterval); 742 settings["checkin_interval"] = base::IntToString(kSettingsCheckinInterval);
743 settings["checkin_url"] = "http://alternative.url/checkin"; 743 settings["checkin_url"] = "http://alternative.url/checkin";
744 settings["gcm_hostname"] = "alternative.gcm.host"; 744 settings["gcm_hostname"] = "alternative.gcm.host";
745 settings["gcm_secure_port"] = "7777"; 745 settings["gcm_secure_port"] = "7777";
746 settings["gcm_registration_url"] = "http://alternative.url/registration"; 746 settings["gcm_registration_url"] = "http://alternative.url/registration";
747 CompleteCheckin( 747 CompleteCheckin(kDeviceAndroidId,
748 kDeviceAndroidId, kDeviceSecurityToken, kSettingsDefaultDigest, settings); 748 kDeviceSecurityToken,
749 GServicesSettings::CalculateDigest(settings),
750 settings);
749 EXPECT_EQ(2, clock()->call_count()); 751 EXPECT_EQ(2, clock()->call_count());
750 752
751 PumpLoopUntilIdle(); 753 PumpLoopUntilIdle();
752 CompleteCheckin( 754 CompleteCheckin(kDeviceAndroidId,
753 kDeviceAndroidId, kDeviceSecurityToken, kSettingsDefaultDigest, settings); 755 kDeviceSecurityToken,
756 GServicesSettings::CalculateDigest(settings),
757 settings);
754 } 758 }
755 759
756 TEST_F(GCMClientImplCheckinTest, LoadGSettingsFromStore) { 760 TEST_F(GCMClientImplCheckinTest, LoadGSettingsFromStore) {
757 std::map<std::string, std::string> settings; 761 std::map<std::string, std::string> settings;
758 settings["checkin_interval"] = base::IntToString(kSettingsCheckinInterval); 762 settings["checkin_interval"] = base::IntToString(kSettingsCheckinInterval);
759 settings["checkin_url"] = "http://alternative.url/checkin"; 763 settings["checkin_url"] = "http://alternative.url/checkin";
760 settings["gcm_hostname"] = "alternative.gcm.host"; 764 settings["gcm_hostname"] = "alternative.gcm.host";
761 settings["gcm_secure_port"] = "7777"; 765 settings["gcm_secure_port"] = "7777";
762 settings["gcm_registration_url"] = "http://alternative.url/registration"; 766 settings["gcm_registration_url"] = "http://alternative.url/registration";
763 CompleteCheckin( 767 CompleteCheckin(kDeviceAndroidId,
764 kDeviceAndroidId, kDeviceSecurityToken, kSettingsDefaultDigest, settings); 768 kDeviceSecurityToken,
769 GServicesSettings::CalculateDigest(settings),
770 settings);
765 771
766 BuildGCMClient(base::TimeDelta()); 772 BuildGCMClient(base::TimeDelta());
767 InitializeGCMClient(); 773 InitializeGCMClient();
768 774
769 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval), 775 EXPECT_EQ(base::TimeDelta::FromSeconds(kSettingsCheckinInterval),
770 gservices_settings().checkin_interval()); 776 gservices_settings().GetCheckinInterval());
771 EXPECT_EQ(GURL("http://alternative.url/checkin"), 777 EXPECT_EQ(GURL("http://alternative.url/checkin"),
772 gservices_settings().checkin_url()); 778 gservices_settings().GetCheckinURL());
773 EXPECT_EQ(GURL("http://alternative.url/registration"), 779 EXPECT_EQ(GURL("http://alternative.url/registration"),
774 gservices_settings().registration_url()); 780 gservices_settings().GetRegistrationURL());
775 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"), 781 EXPECT_EQ(GURL("https://alternative.gcm.host:7777"),
776 gservices_settings().mcs_main_endpoint()); 782 gservices_settings().GetMCSMainEndpoint());
777 EXPECT_EQ(GURL("https://alternative.gcm.host:443"), 783 EXPECT_EQ(GURL("https://alternative.gcm.host:443"),
778 gservices_settings().mcs_fallback_endpoint()); 784 gservices_settings().GetMCSFallbackEndpoint());
779 } 785 }
780 786
781 } // namespace gcm 787 } // namespace gcm
OLDNEW
« google_apis/gcm/engine/gservices_settings_unittest.cc ('K') | « google_apis/gcm/gcm_client_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698