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

Side by Side Diff: chrome/browser/web_resource/promo_resource_service_unittest.cc

Issue 9960077: Modify the base::JSONReader interface to take a set of options rather than a boolean flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/json/json_reader.h" 5 #include "base/json/json_reader.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/string_number_conversions.h" 7 #include "base/string_number_conversions.h"
8 #include "base/time.h" 8 #include "base/time.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 " \"inproduct\": \"31/01/10 01:00 GMT\"" 50 " \"inproduct\": \"31/01/10 01:00 GMT\""
51 " }," 51 " },"
52 " {" 52 " {"
53 " \"name\": \"custom_logo_end\"," 53 " \"name\": \"custom_logo_end\","
54 " \"inproduct\": \"31/01/12 01:00 GMT\"" 54 " \"inproduct\": \"31/01/12 01:00 GMT\""
55 " }" 55 " }"
56 " ]" 56 " ]"
57 " }" 57 " }"
58 "}"; 58 "}";
59 scoped_ptr<DictionaryValue> test_json( 59 scoped_ptr<DictionaryValue> test_json(
60 static_cast<DictionaryValue*>(base::JSONReader::Read(json, false))); 60 static_cast<DictionaryValue*>(base::JSONReader::Read(json)));
61 61
62 // Check that prefs are set correctly. 62 // Check that prefs are set correctly.
63 web_resource_service_->UnpackLogoSignal(*(test_json.get())); 63 web_resource_service_->UnpackLogoSignal(*(test_json.get()));
64 PrefService* prefs = profile_.GetPrefs(); 64 PrefService* prefs = profile_.GetPrefs();
65 ASSERT_TRUE(prefs != NULL); 65 ASSERT_TRUE(prefs != NULL);
66 66
67 double logo_start = 67 double logo_start =
68 prefs->GetDouble(prefs::kNtpCustomLogoStart); 68 prefs->GetDouble(prefs::kNtpCustomLogoStart);
69 EXPECT_EQ(logo_start, 1264899600); // unix epoch for Jan 31 2010 0100 GMT. 69 EXPECT_EQ(logo_start, 1264899600); // unix epoch for Jan 31 2010 0100 GMT.
70 double logo_end = 70 double logo_end =
(...skipping 10 matching lines...) Expand all
81 " }," 81 " },"
82 " {" 82 " {"
83 " \"name\": \"custom_logo_end\"," 83 " \"name\": \"custom_logo_end\","
84 " \"inproduct\": \"31/01/12 01:00 GMT\"" 84 " \"inproduct\": \"31/01/12 01:00 GMT\""
85 " }" 85 " }"
86 " ]" 86 " ]"
87 " }" 87 " }"
88 "}"; 88 "}";
89 test_json->Clear(); 89 test_json->Clear();
90 test_json.reset(static_cast<DictionaryValue*>( 90 test_json.reset(static_cast<DictionaryValue*>(
91 base::JSONReader::Read(json, false))); 91 base::JSONReader::Read(json)));
92 92
93 // Check that prefs are set correctly. 93 // Check that prefs are set correctly.
94 web_resource_service_->UnpackLogoSignal(*(test_json.get())); 94 web_resource_service_->UnpackLogoSignal(*(test_json.get()));
95 95
96 logo_start = prefs->GetDouble(prefs::kNtpCustomLogoStart); 96 logo_start = prefs->GetDouble(prefs::kNtpCustomLogoStart);
97 EXPECT_EQ(logo_start, 1267365600); // date changes to Feb 28 2010 1400 GMT. 97 EXPECT_EQ(logo_start, 1267365600); // date changes to Feb 28 2010 1400 GMT.
98 98
99 // If no date is included in the prefs, reset custom logo dates to 0. 99 // If no date is included in the prefs, reset custom logo dates to 0.
100 json = "{ " 100 json = "{ "
101 " \"topic\": {" 101 " \"topic\": {"
102 " \"answers\": [" 102 " \"answers\": ["
103 " {" 103 " {"
104 " }" 104 " }"
105 " ]" 105 " ]"
106 " }" 106 " }"
107 "}"; 107 "}";
108 test_json->Clear(); 108 test_json->Clear();
109 test_json.reset(static_cast<DictionaryValue*>( 109 test_json.reset(static_cast<DictionaryValue*>(
110 base::JSONReader::Read(json, false))); 110 base::JSONReader::Read(json)));
111 111
112 // Check that prefs are set correctly. 112 // Check that prefs are set correctly.
113 web_resource_service_->UnpackLogoSignal(*(test_json.get())); 113 web_resource_service_->UnpackLogoSignal(*(test_json.get()));
114 logo_start = prefs->GetDouble(prefs::kNtpCustomLogoStart); 114 logo_start = prefs->GetDouble(prefs::kNtpCustomLogoStart);
115 EXPECT_EQ(logo_start, 0); // date value reset to 0; 115 EXPECT_EQ(logo_start, 0); // date value reset to 0;
116 logo_end = prefs->GetDouble(prefs::kNtpCustomLogoEnd); 116 logo_end = prefs->GetDouble(prefs::kNtpCustomLogoEnd);
117 EXPECT_EQ(logo_end, 0); // date value reset to 0; 117 EXPECT_EQ(logo_end, 0); // date value reset to 0;
118 } 118 }
119 119
120 class NotificationPromoTestDelegate : public NotificationPromo::Delegate { 120 class NotificationPromoTestDelegate : public NotificationPromo::Delegate {
(...skipping 22 matching lines...) Expand all
143 void Init(NotificationPromo* notification_promo, 143 void Init(NotificationPromo* notification_promo,
144 const std::string& json, 144 const std::string& json,
145 double start, double end, 145 double start, double end,
146 int build, int time_slice, 146 int build, int time_slice,
147 int max_group, int max_views, int platform, 147 int max_group, int max_views, int platform,
148 int feature_mask, const std::string& text, bool closed, 148 int feature_mask, const std::string& text, bool closed,
149 bool gplus) { 149 bool gplus) {
150 notification_promo_ = notification_promo; 150 notification_promo_ = notification_promo;
151 151
152 test_json_.reset(static_cast<DictionaryValue*>( 152 test_json_.reset(static_cast<DictionaryValue*>(
153 base::JSONReader::Read(json, false))); 153 base::JSONReader::Read(json)));
154 154
155 start_ = start; 155 start_ = start;
156 end_ = end; 156 end_ = end;
157 157
158 build_ = build; 158 build_ = build;
159 time_slice_ = time_slice; 159 time_slice_ = time_slice;
160 max_group_ = max_group; 160 max_group_ = max_group;
161 max_views_ = max_views; 161 max_views_ = max_views;
162 platform_ = platform; 162 platform_ = platform;
163 163
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 " \"name\": \"webstore_promo:15:1:\"," 689 " \"name\": \"webstore_promo:15:1:\","
690 " \"question\": \"The header!\"," 690 " \"question\": \"The header!\","
691 " \"inproduct_target\": \"The button label!\"," 691 " \"inproduct_target\": \"The button label!\","
692 " \"inproduct\": \"http://link.com\"," 692 " \"inproduct\": \"http://link.com\","
693 " \"tooltip\": \"No thanks, hide this.\"" 693 " \"tooltip\": \"No thanks, hide this.\""
694 " }" 694 " }"
695 " ]" 695 " ]"
696 " }" 696 " }"
697 "}"; 697 "}";
698 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>( 698 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>(
699 base::JSONReader::Read(json, false))); 699 base::JSONReader::Read(json)));
700 700
701 // Set the source logo URL to verify that it gets cleared. 701 // Set the source logo URL to verify that it gets cleared.
702 AppsPromo::SetSourcePromoLogoURL(GURL("https://www.google.com/test.png")); 702 AppsPromo::SetSourcePromoLogoURL(GURL("https://www.google.com/test.png"));
703 703
704 // Check that prefs are set correctly. 704 // Check that prefs are set correctly.
705 web_resource_service_->UnpackWebStoreSignal(*(test_json.get())); 705 web_resource_service_->UnpackWebStoreSignal(*(test_json.get()));
706 706
707 AppsPromo::PromoData actual_data = AppsPromo::GetPromo(); 707 AppsPromo::PromoData actual_data = AppsPromo::GetPromo();
708 EXPECT_EQ("341252", actual_data.id); 708 EXPECT_EQ("341252", actual_data.id);
709 EXPECT_EQ("The header!", actual_data.header); 709 EXPECT_EQ("The header!", actual_data.header);
(...skipping 15 matching lines...) Expand all
725 " \"topic\": {" 725 " \"topic\": {"
726 " \"answers\": [" 726 " \"answers\": ["
727 " {" 727 " {"
728 " \"answer_id\": \"sdlfj32\"," 728 " \"answer_id\": \"sdlfj32\","
729 " \"name\": \"webstore_promo:#klsdjlfSD\"" 729 " \"name\": \"webstore_promo:#klsdjlfSD\""
730 " }" 730 " }"
731 " ]" 731 " ]"
732 " }" 732 " }"
733 "}"; 733 "}";
734 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>( 734 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>(
735 base::JSONReader::Read(json, false))); 735 base::JSONReader::Read(json)));
736 736
737 // Check that prefs are set correctly. 737 // Check that prefs are set correctly.
738 web_resource_service_->UnpackWebStoreSignal(*(test_json.get())); 738 web_resource_service_->UnpackWebStoreSignal(*(test_json.get()));
739 EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale()); 739 EXPECT_FALSE(AppsPromo::IsPromoSupportedForLocale());
740 EXPECT_TRUE(AppsPromo::IsWebStoreSupportedForLocale()); 740 EXPECT_TRUE(AppsPromo::IsWebStoreSupportedForLocale());
741 } 741 }
742 742
743 // Tests that we can successfully unpack web store signals with HTTPS 743 // Tests that we can successfully unpack web store signals with HTTPS
744 // logos. 744 // logos.
745 TEST_F(PromoResourceServiceTest, UnpackWebStoreSignalHttpsLogo) { 745 TEST_F(PromoResourceServiceTest, UnpackWebStoreSignalHttpsLogo) {
(...skipping 16 matching lines...) Expand all
762 " \"question\": \"Header!\"," 762 " \"question\": \"Header!\","
763 " \"inproduct_target\": \"The button label!\"," 763 " \"inproduct_target\": \"The button label!\","
764 " \"inproduct\": \"http://link.com\"," 764 " \"inproduct\": \"http://link.com\","
765 " \"tooltip\": \"No thanks, hide this.\"" 765 " \"tooltip\": \"No thanks, hide this.\""
766 " }" 766 " }"
767 " ]" 767 " ]"
768 " }" 768 " }"
769 "}"; 769 "}";
770 770
771 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>( 771 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>(
772 base::JSONReader::Read(json, false))); 772 base::JSONReader::Read(json)));
773 773
774 // Update the promo multiple times to verify the logo is cached correctly. 774 // Update the promo multiple times to verify the logo is cached correctly.
775 for (size_t i = 0; i < 2; ++i) { 775 for (size_t i = 0; i < 2; ++i) {
776 web_resource_service_->UnpackWebStoreSignal(*(test_json.get())); 776 web_resource_service_->UnpackWebStoreSignal(*(test_json.get()));
777 777
778 // We should only need to run the message loop the first time since the 778 // We should only need to run the message loop the first time since the
779 // image is then cached. 779 // image is then cached.
780 if (i == 0) 780 if (i == 0)
781 loop_.RunAllPending(); 781 loop_.RunAllPending();
782 782
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 " \"question\": \"Header!\"," 822 " \"question\": \"Header!\","
823 " \"inproduct_target\": \"The button label!\"," 823 " \"inproduct_target\": \"The button label!\","
824 " \"inproduct\": \"http://link.com\"," 824 " \"inproduct\": \"http://link.com\","
825 " \"tooltip\": \"No thanks, hide this.\"" 825 " \"tooltip\": \"No thanks, hide this.\""
826 " }" 826 " }"
827 " ]" 827 " ]"
828 " }" 828 " }"
829 "}"; 829 "}";
830 830
831 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>( 831 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>(
832 base::JSONReader::Read(json, false))); 832 base::JSONReader::Read(json)));
833 833
834 web_resource_service_->UnpackWebStoreSignal(*(test_json.get())); 834 web_resource_service_->UnpackWebStoreSignal(*(test_json.get()));
835 835
836 loop_.RunAllPending(); 836 loop_.RunAllPending();
837 837
838 // Reset this scoped_ptr to prevent a DCHECK. 838 // Reset this scoped_ptr to prevent a DCHECK.
839 web_resource_service_->apps_promo_logo_fetcher_.reset(); 839 web_resource_service_->apps_promo_logo_fetcher_.reset();
840 840
841 AppsPromo::PromoData actual_data = AppsPromo::GetPromo(); 841 AppsPromo::PromoData actual_data = AppsPromo::GetPromo();
842 EXPECT_EQ("340252", actual_data.id); 842 EXPECT_EQ("340252", actual_data.id);
(...skipping 30 matching lines...) Expand all
873 " \"question\": \"Header!\"," 873 " \"question\": \"Header!\","
874 " \"inproduct_target\": \"The button label!\"," 874 " \"inproduct_target\": \"The button label!\","
875 " \"inproduct\": \"http://link.com\"," 875 " \"inproduct\": \"http://link.com\","
876 " \"tooltip\": \"No thanks, hide this.\"" 876 " \"tooltip\": \"No thanks, hide this.\""
877 " }" 877 " }"
878 " ]" 878 " ]"
879 " }" 879 " }"
880 "}"; 880 "}";
881 881
882 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>( 882 scoped_ptr<DictionaryValue> test_json(static_cast<DictionaryValue*>(
883 base::JSONReader::Read(json, false))); 883 base::JSONReader::Read(json)));
884 884
885 web_resource_service_->UnpackWebStoreSignal(*(test_json.get())); 885 web_resource_service_->UnpackWebStoreSignal(*(test_json.get()));
886 886
887 loop_.RunAllPending(); 887 loop_.RunAllPending();
888 888
889 // Reset this scoped_ptr to prevent a DCHECK. 889 // Reset this scoped_ptr to prevent a DCHECK.
890 web_resource_service_->apps_promo_logo_fetcher_.reset(); 890 web_resource_service_->apps_promo_logo_fetcher_.reset();
891 891
892 AppsPromo::PromoData actual_data = AppsPromo::GetPromo(); 892 AppsPromo::PromoData actual_data = AppsPromo::GetPromo();
893 EXPECT_EQ("340252", actual_data.id); 893 EXPECT_EQ("340252", actual_data.id);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
941 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 7)); 941 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 7));
942 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 15)); 942 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 15));
943 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 8)); 943 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 8));
944 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 11)); 944 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, 11));
945 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 12)); 945 EXPECT_TRUE(PromoResourceService::IsBuildTargeted(stable, 12));
946 946
947 // invalid 947 // invalid
948 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, -1)); 948 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, -1));
949 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, INT_MAX)); 949 EXPECT_FALSE(PromoResourceService::IsBuildTargeted(stable, INT_MAX));
950 } 950 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698