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

Side by Side Diff: components/variations/variations_http_header_provider_unittest.cc

Issue 2558913003: Restrict transmission of external exp ids to signed in users. (Closed)
Patch Set: Address nit. Created 4 years 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 | « components/variations/variations_http_header_provider.cc ('k') | 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/variations/variations_http_header_provider.h" 5 #include "components/variations/variations_http_header_provider.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 void TearDown() override { testing::ClearAllVariationIDs(); } 60 void TearDown() override { testing::ClearAllVariationIDs(); }
61 }; 61 };
62 62
63 TEST_F(VariationsHttpHeaderProviderTest, SetDefaultVariationIds_Valid) { 63 TEST_F(VariationsHttpHeaderProviderTest, SetDefaultVariationIds_Valid) {
64 base::MessageLoop loop; 64 base::MessageLoop loop;
65 VariationsHttpHeaderProvider provider; 65 VariationsHttpHeaderProvider provider;
66 66
67 // Valid experiment ids. 67 // Valid experiment ids.
68 EXPECT_TRUE(provider.SetDefaultVariationIds({"12", "456", "t789"})); 68 EXPECT_TRUE(provider.SetDefaultVariationIds({"12", "456", "t789"}));
69 provider.InitVariationIDsCacheIfNeeded(); 69 provider.InitVariationIDsCacheIfNeeded();
70 std::string variations = provider.GetClientDataHeader(); 70 std::string variations = provider.GetClientDataHeader(false);
71 EXPECT_FALSE(variations.empty()); 71 EXPECT_FALSE(variations.empty());
72 std::set<VariationID> variation_ids; 72 std::set<VariationID> variation_ids;
73 std::set<VariationID> trigger_ids; 73 std::set<VariationID> trigger_ids;
74 ASSERT_TRUE(ExtractVariationIds(variations, &variation_ids, &trigger_ids)); 74 ASSERT_TRUE(ExtractVariationIds(variations, &variation_ids, &trigger_ids));
75 EXPECT_TRUE(variation_ids.find(12) != variation_ids.end()); 75 EXPECT_TRUE(variation_ids.find(12) != variation_ids.end());
76 EXPECT_TRUE(variation_ids.find(456) != variation_ids.end()); 76 EXPECT_TRUE(variation_ids.find(456) != variation_ids.end());
77 EXPECT_TRUE(trigger_ids.find(789) != trigger_ids.end()); 77 EXPECT_TRUE(trigger_ids.find(789) != trigger_ids.end());
78 EXPECT_FALSE(variation_ids.find(789) != variation_ids.end()); 78 EXPECT_FALSE(variation_ids.find(789) != variation_ids.end());
79 } 79 }
80 80
81 TEST_F(VariationsHttpHeaderProviderTest, SetDefaultVariationIds_Invalid) { 81 TEST_F(VariationsHttpHeaderProviderTest, SetDefaultVariationIds_Invalid) {
82 base::MessageLoop loop; 82 base::MessageLoop loop;
83 VariationsHttpHeaderProvider provider; 83 VariationsHttpHeaderProvider provider;
84 84
85 // Invalid experiment ids. 85 // Invalid experiment ids.
86 EXPECT_FALSE(provider.SetDefaultVariationIds( 86 EXPECT_FALSE(provider.SetDefaultVariationIds(
87 std::vector<std::string>{"abcd12", "456"})); 87 std::vector<std::string>{"abcd12", "456"}));
88 provider.InitVariationIDsCacheIfNeeded(); 88 provider.InitVariationIDsCacheIfNeeded();
89 EXPECT_TRUE(provider.GetClientDataHeader().empty()); 89 EXPECT_TRUE(provider.GetClientDataHeader(false).empty());
90 90
91 // Invalid trigger experiment id 91 // Invalid trigger experiment id
92 EXPECT_FALSE(provider.SetDefaultVariationIds( 92 EXPECT_FALSE(provider.SetDefaultVariationIds(
93 std::vector<std::string>{"12", "tabc456"})); 93 std::vector<std::string>{"12", "tabc456"}));
94 provider.InitVariationIDsCacheIfNeeded(); 94 provider.InitVariationIDsCacheIfNeeded();
95 EXPECT_TRUE(provider.GetClientDataHeader().empty()); 95 EXPECT_TRUE(provider.GetClientDataHeader(false).empty());
96 } 96 }
97 97
98 TEST_F(VariationsHttpHeaderProviderTest, OnFieldTrialGroupFinalized) { 98 TEST_F(VariationsHttpHeaderProviderTest, OnFieldTrialGroupFinalized) {
99 base::MessageLoop loop; 99 base::MessageLoop loop;
100 base::FieldTrialList field_trial_list(nullptr); 100 base::FieldTrialList field_trial_list(nullptr);
101 VariationsHttpHeaderProvider provider; 101 VariationsHttpHeaderProvider provider;
102 provider.InitVariationIDsCacheIfNeeded(); 102 provider.InitVariationIDsCacheIfNeeded();
103 103
104 const std::string default_name = "default"; 104 const std::string default_name = "default";
105 scoped_refptr<base::FieldTrial> trial_1(CreateTrialAndAssociateId( 105 scoped_refptr<base::FieldTrial> trial_1(CreateTrialAndAssociateId(
106 "t1", default_name, GOOGLE_WEB_PROPERTIES, 123)); 106 "t1", default_name, GOOGLE_WEB_PROPERTIES, 123));
107
108 ASSERT_EQ(default_name, trial_1->group_name()); 107 ASSERT_EQ(default_name, trial_1->group_name());
109 108
110 scoped_refptr<base::FieldTrial> trial_2(CreateTrialAndAssociateId( 109 scoped_refptr<base::FieldTrial> trial_2(CreateTrialAndAssociateId(
111 "t2", default_name, GOOGLE_WEB_PROPERTIES_TRIGGER, 456)); 110 "t2", default_name, GOOGLE_WEB_PROPERTIES_TRIGGER, 456));
111 ASSERT_EQ(default_name, trial_2->group_name());
112 112
113 ASSERT_EQ(default_name, trial_2->group_name()); 113 scoped_refptr<base::FieldTrial> trial_3(CreateTrialAndAssociateId(
114 "t3", default_name, GOOGLE_WEB_PROPERTIES_SIGNED_IN, 789));
115 ASSERT_EQ(default_name, trial_3->group_name());
114 116
115 // Run the message loop to make sure OnFieldTrialGroupFinalized is called for 117 // Run the message loop to make sure OnFieldTrialGroupFinalized is called for
116 // the two field trials. 118 // the two field trials.
117 base::RunLoop().RunUntilIdle(); 119 base::RunLoop().RunUntilIdle();
118 120
119 std::string variations = provider.GetClientDataHeader(); 121 // Get non-signed in ids.
122 {
123 std::string variations = provider.GetClientDataHeader(false);
124 std::set<VariationID> variation_ids;
125 std::set<VariationID> trigger_ids;
126 ASSERT_TRUE(ExtractVariationIds(variations, &variation_ids, &trigger_ids));
127 EXPECT_EQ(1U, variation_ids.size());
128 EXPECT_TRUE(variation_ids.find(123) != variation_ids.end());
129 EXPECT_EQ(1U, trigger_ids.size());
130 EXPECT_TRUE(trigger_ids.find(456) != trigger_ids.end());
131 }
120 132
121 std::set<VariationID> variation_ids; 133 // Now, get signed-in ids.
122 std::set<VariationID> trigger_ids; 134 {
123 ASSERT_TRUE(ExtractVariationIds(variations, &variation_ids, &trigger_ids)); 135 std::string variations = provider.GetClientDataHeader(true);
124 EXPECT_TRUE(variation_ids.find(123) != variation_ids.end()); 136 std::set<VariationID> variation_ids;
125 EXPECT_TRUE(trigger_ids.find(456) != trigger_ids.end()); 137 std::set<VariationID> trigger_ids;
138 ASSERT_TRUE(ExtractVariationIds(variations, &variation_ids, &trigger_ids));
139 EXPECT_EQ(2U, variation_ids.size());
140 EXPECT_TRUE(variation_ids.find(123) != variation_ids.end());
141 EXPECT_TRUE(variation_ids.find(789) != variation_ids.end());
142 EXPECT_EQ(1U, trigger_ids.size());
143 EXPECT_TRUE(trigger_ids.find(456) != trigger_ids.end());
144 }
126 } 145 }
127 146
128 TEST_F(VariationsHttpHeaderProviderTest, GetVariationsString) { 147 TEST_F(VariationsHttpHeaderProviderTest, GetVariationsString) {
129 base::MessageLoop loop; 148 base::MessageLoop loop;
130 base::FieldTrialList field_trial_list(nullptr); 149 base::FieldTrialList field_trial_list(nullptr);
131 150
132 CreateTrialAndAssociateId("t1", "g1", GOOGLE_WEB_PROPERTIES, 123); 151 CreateTrialAndAssociateId("t1", "g1", GOOGLE_WEB_PROPERTIES, 123);
133 CreateTrialAndAssociateId("t2", "g2", GOOGLE_WEB_PROPERTIES, 124); 152 CreateTrialAndAssociateId("t2", "g2", GOOGLE_WEB_PROPERTIES, 124);
153 // SIGNED_IN ids shouldn't be included.
154 CreateTrialAndAssociateId("t3", "g3", GOOGLE_WEB_PROPERTIES_SIGNED_IN, 125);
134 155
135 VariationsHttpHeaderProvider provider; 156 VariationsHttpHeaderProvider provider;
136 std::vector<std::string> ids; 157 std::vector<std::string> ids;
137 ids.push_back("100"); 158 ids.push_back("100");
138 ids.push_back("200"); 159 ids.push_back("200");
139 provider.SetDefaultVariationIds(ids); 160 provider.SetDefaultVariationIds(ids);
140 EXPECT_EQ(" 100 123 124 200 ", provider.GetVariationsString()); 161 EXPECT_EQ(" 100 123 124 200 ", provider.GetVariationsString());
141 } 162 }
142 163
143 } // namespace variations 164 } // namespace variations
OLDNEW
« no previous file with comments | « components/variations/variations_http_header_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698