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

Side by Side Diff: chrome/browser/safe_browsing/protocol_manager_unittest.cc

Issue 10914274: Include an API key in SafeBrowsing requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync to new safebrowsing test server. Created 8 years, 3 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/safe_browsing/protocol_manager.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 (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 5
6 #include "base/logging.h" 6 #include "base/logging.h"
7 #include "base/stringprintf.h"
7 #include "base/time.h" 8 #include "base/time.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 #include "chrome/browser/safe_browsing/protocol_manager.h" 10 #include "chrome/browser/safe_browsing/protocol_manager.h"
11 #include "google_apis/google_api_keys.h"
12 #include "net/base/escape.h"
10 13
11 using base::Time; 14 using base::Time;
12 using base::TimeDelta; 15 using base::TimeDelta;
13 16
14 static const char kUrlPrefix[] = "https://prefix.com/foo"; 17 static const char kUrlPrefix[] = "https://prefix.com/foo";
15 static const char kClient[] = "unittest"; 18 static const char kClient[] = "unittest";
16 static const char kAppVer[] = "1.0"; 19 static const char kAppVer[] = "1.0";
17 static const char kAdditionalQuery[] = "additional_query"; 20 static const char kAdditionalQuery[] = "additional_query";
18 21
19 class SafeBrowsingProtocolManagerTest : public testing::Test { 22 class SafeBrowsingProtocolManagerTest : public testing::Test {
23 protected:
24 std::string key_param_;
25
26 virtual void SetUp() {
27 std::string key = google_apis::GetAPIKey();
28 if (!key.empty()) {
29 key_param_ = base::StringPrintf(
30 "&key=%s",
31 net::EscapeQueryParamValue(key, true).c_str());
32 }
33 }
20 }; 34 };
21 35
22 // Ensure that we respect section 5 of the SafeBrowsing protocol specification. 36 // Ensure that we respect section 5 of the SafeBrowsing protocol specification.
23 TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) { 37 TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) {
24 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 38 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
25 pm.next_update_sec_ = 1800; 39 pm.next_update_sec_ = 1800;
26 DCHECK(pm.back_off_fuzz_ >= 0.0 && pm.back_off_fuzz_ <= 1.0); 40 DCHECK(pm.back_off_fuzz_ >= 0.0 && pm.back_off_fuzz_ <= 1.0);
27 41
28 // No errors received so far. 42 // No errors received so far.
29 EXPECT_EQ(pm.GetNextUpdateTime(false), 1800 * 1000); 43 EXPECT_EQ(pm.GetNextUpdateTime(false), 1800 * 1000);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // 7 errors. 145 // 7 errors.
132 pm.HandleGetHashError(now); 146 pm.HandleGetHashError(now);
133 EXPECT_EQ(pm.gethash_error_count_, 7); 147 EXPECT_EQ(pm.gethash_error_count_, 7);
134 EXPECT_TRUE(pm.next_gethash_time_== now + TimeDelta::FromMinutes(480)); 148 EXPECT_TRUE(pm.next_gethash_time_== now + TimeDelta::FromMinutes(480));
135 } 149 }
136 150
137 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { 151 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) {
138 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 152 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
139 pm.version_ = kAppVer; 153 pm.version_ = kAppVer;
140 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&" 154 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&"
141 "pver=2.2", pm.GetHashUrl().spec()); 155 "pver=2.2" + key_param_, pm.GetHashUrl().spec());
142 156
143 pm.set_additional_query(kAdditionalQuery); 157 pm.set_additional_query(kAdditionalQuery);
144 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&" 158 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&"
145 "pver=2.2&additional_query", 159 "pver=2.2" + key_param_ + "&additional_query",
146 pm.GetHashUrl().spec()); 160 pm.GetHashUrl().spec());
147 } 161 }
148 162
149 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) { 163 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) {
150 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 164 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
151 pm.version_ = kAppVer; 165 pm.version_ = kAppVer;
152 166
153 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&" 167 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&"
154 "pver=2.2", pm.UpdateUrl().spec()); 168 "pver=2.2" + key_param_, pm.UpdateUrl().spec());
155 169
156 pm.set_additional_query(kAdditionalQuery); 170 pm.set_additional_query(kAdditionalQuery);
157 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&" 171 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&"
158 "pver=2.2&additional_query", pm.UpdateUrl().spec()); 172 "pver=2.2" + key_param_ + "&additional_query",
173 pm.UpdateUrl().spec());
159 } 174 }
160 175
161 TEST_F(SafeBrowsingProtocolManagerTest, TestSafeBrowsingHitUrl) { 176 TEST_F(SafeBrowsingProtocolManagerTest, TestSafeBrowsingHitUrl) {
162 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 177 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
163 pm.version_ = kAppVer; 178 pm.version_ = kAppVer;
164 179
165 GURL malicious_url("http://malicious.url.com"); 180 GURL malicious_url("http://malicious.url.com");
166 GURL page_url("http://page.url.com"); 181 GURL page_url("http://page.url.com");
167 GURL referrer_url("http://referrer.url.com"); 182 GURL referrer_url("http://referrer.url.com");
168 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 183 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
169 "pver=2.2&evts=malblhit&evtd=http%3A%2F%2Fmalicious.url.com%2F&" 184 "pver=2.2" + key_param_ +
185 "&evts=malblhit&evtd=http%3A%2F%2Fmalicious.url.com%2F&"
170 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 186 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
171 "url.com%2F&evtb=1", 187 "url.com%2F&evtb=1",
172 pm.SafeBrowsingHitUrl( 188 pm.SafeBrowsingHitUrl(
173 malicious_url, page_url, referrer_url, 189 malicious_url, page_url, referrer_url,
174 true, SafeBrowsingService::URL_MALWARE).spec()); 190 true, SafeBrowsingService::URL_MALWARE).spec());
175 191
176 pm.set_additional_query(kAdditionalQuery); 192 pm.set_additional_query(kAdditionalQuery);
177 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 193 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
178 "pver=2.2&additional_query&evts=phishblhit&" 194 "pver=2.2" + key_param_ + "&additional_query&evts=phishblhit&"
179 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 195 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
180 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 196 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
181 "url.com%2F&evtb=0", 197 "url.com%2F&evtb=0",
182 pm.SafeBrowsingHitUrl( 198 pm.SafeBrowsingHitUrl(
183 malicious_url, page_url, referrer_url, 199 malicious_url, page_url, referrer_url,
184 false, SafeBrowsingService::URL_PHISHING).spec()); 200 false, SafeBrowsingService::URL_PHISHING).spec());
185 201
186 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 202 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
187 "pver=2.2&additional_query&evts=binurlhit&" 203 "pver=2.2" + key_param_ + "&additional_query&evts=binurlhit&"
188 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 204 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
189 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 205 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
190 "url.com%2F&evtb=0", 206 "url.com%2F&evtb=0",
191 pm.SafeBrowsingHitUrl( 207 pm.SafeBrowsingHitUrl(
192 malicious_url, page_url, referrer_url, 208 malicious_url, page_url, referrer_url,
193 false, SafeBrowsingService::BINARY_MALWARE_URL).spec()); 209 false, SafeBrowsingService::BINARY_MALWARE_URL).spec());
194 210
195 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 211 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
196 "pver=2.2&additional_query&evts=binhashhit&" 212 "pver=2.2" + key_param_ + "&additional_query&evts=binhashhit&"
197 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 213 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
198 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 214 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
199 "url.com%2F&evtb=0", 215 "url.com%2F&evtb=0",
200 pm.SafeBrowsingHitUrl( 216 pm.SafeBrowsingHitUrl(
201 malicious_url, page_url, referrer_url, 217 malicious_url, page_url, referrer_url,
202 false, SafeBrowsingService::BINARY_MALWARE_HASH).spec()); 218 false, SafeBrowsingService::BINARY_MALWARE_HASH).spec());
203 219
204 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 220 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
205 "pver=2.2&additional_query&evts=phishcsdhit&" 221 "pver=2.2" + key_param_ + "&additional_query&evts=phishcsdhit&"
206 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 222 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
207 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 223 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
208 "url.com%2F&evtb=0", 224 "url.com%2F&evtb=0",
209 pm.SafeBrowsingHitUrl( 225 pm.SafeBrowsingHitUrl(
210 malicious_url, page_url, referrer_url, 226 malicious_url, page_url, referrer_url,
211 false, SafeBrowsingService::CLIENT_SIDE_PHISHING_URL).spec()); 227 false, SafeBrowsingService::CLIENT_SIDE_PHISHING_URL).spec());
212 } 228 }
213 229
214 TEST_F(SafeBrowsingProtocolManagerTest, TestMalwareDetailsUrl) { 230 TEST_F(SafeBrowsingProtocolManagerTest, TestMalwareDetailsUrl) {
215 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 231 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
216 232
217 pm.version_ = kAppVer; 233 pm.version_ = kAppVer;
218 pm.set_additional_query(kAdditionalQuery); // AdditionalQuery is not used. 234 pm.set_additional_query(kAdditionalQuery); // AdditionalQuery is not used.
219 EXPECT_EQ("https://prefix.com/foo/clientreport/malware?" 235 EXPECT_EQ("https://prefix.com/foo/clientreport/malware?"
220 "client=unittest&appver=1.0&pver=1.0", 236 "client=unittest&appver=1.0&pver=1.0" + key_param_,
221 pm.MalwareDetailsUrl().spec()); 237 pm.MalwareDetailsUrl().spec());
222 } 238 }
223 239
224 TEST_F(SafeBrowsingProtocolManagerTest, TestNextChunkUrl) { 240 TEST_F(SafeBrowsingProtocolManagerTest, TestNextChunkUrl) {
225 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 241 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
226 pm.version_ = kAppVer; 242 pm.version_ = kAppVer;
227 243
228 std::string url_partial = "localhost:1234/foo/bar?foo"; 244 std::string url_partial = "localhost:1234/foo/bar?foo";
229 std::string url_http_full = "http://localhost:1234/foo/bar?foo"; 245 std::string url_http_full = "http://localhost:1234/foo/bar?foo";
230 std::string url_https_full = "https://localhost:1234/foo/bar?foo"; 246 std::string url_https_full = "https://localhost:1234/foo/bar?foo";
(...skipping 11 matching lines...) Expand all
242 pm.set_additional_query(kAdditionalQuery); 258 pm.set_additional_query(kAdditionalQuery);
243 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query", 259 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query",
244 pm.NextChunkUrl(url_partial).spec()); 260 pm.NextChunkUrl(url_partial).spec());
245 EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query", 261 EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query",
246 pm.NextChunkUrl(url_http_full).spec()); 262 pm.NextChunkUrl(url_http_full).spec());
247 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query", 263 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query",
248 pm.NextChunkUrl(url_https_full).spec()); 264 pm.NextChunkUrl(url_https_full).spec());
249 EXPECT_EQ("https://localhost:1234/foo/bar?additional_query", 265 EXPECT_EQ("https://localhost:1234/foo/bar?additional_query",
250 pm.NextChunkUrl(url_https_no_query).spec()); 266 pm.NextChunkUrl(url_https_no_query).spec());
251 } 267 }
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/protocol_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698