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

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

Issue 10908245: unchecked_malloc() for Skia on OSX. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Back out EBADF, allow syslog logging from sandbox. 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
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"
8 #include "base/time.h" 7 #include "base/time.h"
9 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
10 #include "chrome/browser/safe_browsing/protocol_manager.h" 9 #include "chrome/browser/safe_browsing/protocol_manager.h"
11 #include "google_apis/google_api_keys.h"
12 #include "net/base/escape.h"
13 10
14 using base::Time; 11 using base::Time;
15 using base::TimeDelta; 12 using base::TimeDelta;
16 13
17 static const char kUrlPrefix[] = "https://prefix.com/foo"; 14 static const char kUrlPrefix[] = "https://prefix.com/foo";
18 static const char kClient[] = "unittest"; 15 static const char kClient[] = "unittest";
19 static const char kAppVer[] = "1.0"; 16 static const char kAppVer[] = "1.0";
20 static const char kAdditionalQuery[] = "additional_query"; 17 static const char kAdditionalQuery[] = "additional_query";
21 18
22 class SafeBrowsingProtocolManagerTest : public testing::Test { 19 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 }
34 }; 20 };
35 21
36 // Ensure that we respect section 5 of the SafeBrowsing protocol specification. 22 // Ensure that we respect section 5 of the SafeBrowsing protocol specification.
37 TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) { 23 TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) {
38 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 24 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
39 pm.next_update_interval_ = base::TimeDelta::FromSeconds(1800); 25 pm.next_update_interval_ = base::TimeDelta::FromSeconds(1800);
40 ASSERT_TRUE(pm.back_off_fuzz_ >= 0.0 && pm.back_off_fuzz_ <= 1.0); 26 ASSERT_TRUE(pm.back_off_fuzz_ >= 0.0 && pm.back_off_fuzz_ <= 1.0);
41 27
42 base::TimeDelta next; 28 base::TimeDelta next;
43 29
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // 7 errors. 142 // 7 errors.
157 pm.HandleGetHashError(now); 143 pm.HandleGetHashError(now);
158 EXPECT_EQ(pm.gethash_error_count_, 7); 144 EXPECT_EQ(pm.gethash_error_count_, 7);
159 EXPECT_TRUE(pm.next_gethash_time_== now + TimeDelta::FromMinutes(480)); 145 EXPECT_TRUE(pm.next_gethash_time_== now + TimeDelta::FromMinutes(480));
160 } 146 }
161 147
162 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { 148 TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) {
163 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 149 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
164 pm.version_ = kAppVer; 150 pm.version_ = kAppVer;
165 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&" 151 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&"
166 "pver=2.2" + key_param_, pm.GetHashUrl().spec()); 152 "pver=2.2", pm.GetHashUrl().spec());
167 153
168 pm.set_additional_query(kAdditionalQuery); 154 pm.set_additional_query(kAdditionalQuery);
169 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&" 155 EXPECT_EQ("https://prefix.com/foo/gethash?client=unittest&appver=1.0&"
170 "pver=2.2" + key_param_ + "&additional_query", 156 "pver=2.2&additional_query",
171 pm.GetHashUrl().spec()); 157 pm.GetHashUrl().spec());
172 } 158 }
173 159
174 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) { 160 TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) {
175 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 161 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
176 pm.version_ = kAppVer; 162 pm.version_ = kAppVer;
177 163
178 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&" 164 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&"
179 "pver=2.2" + key_param_, pm.UpdateUrl().spec()); 165 "pver=2.2", pm.UpdateUrl().spec());
180 166
181 pm.set_additional_query(kAdditionalQuery); 167 pm.set_additional_query(kAdditionalQuery);
182 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&" 168 EXPECT_EQ("https://prefix.com/foo/downloads?client=unittest&appver=1.0&"
183 "pver=2.2" + key_param_ + "&additional_query", 169 "pver=2.2&additional_query", pm.UpdateUrl().spec());
184 pm.UpdateUrl().spec());
185 } 170 }
186 171
187 TEST_F(SafeBrowsingProtocolManagerTest, TestSafeBrowsingHitUrl) { 172 TEST_F(SafeBrowsingProtocolManagerTest, TestSafeBrowsingHitUrl) {
188 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 173 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
189 pm.version_ = kAppVer; 174 pm.version_ = kAppVer;
190 175
191 GURL malicious_url("http://malicious.url.com"); 176 GURL malicious_url("http://malicious.url.com");
192 GURL page_url("http://page.url.com"); 177 GURL page_url("http://page.url.com");
193 GURL referrer_url("http://referrer.url.com"); 178 GURL referrer_url("http://referrer.url.com");
194 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 179 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
195 "pver=2.2" + key_param_ + 180 "pver=2.2&evts=malblhit&evtd=http%3A%2F%2Fmalicious.url.com%2F&"
196 "&evts=malblhit&evtd=http%3A%2F%2Fmalicious.url.com%2F&"
197 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 181 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
198 "url.com%2F&evtb=1", 182 "url.com%2F&evtb=1",
199 pm.SafeBrowsingHitUrl( 183 pm.SafeBrowsingHitUrl(
200 malicious_url, page_url, referrer_url, 184 malicious_url, page_url, referrer_url,
201 true, SafeBrowsingService::URL_MALWARE).spec()); 185 true, SafeBrowsingService::URL_MALWARE).spec());
202 186
203 pm.set_additional_query(kAdditionalQuery); 187 pm.set_additional_query(kAdditionalQuery);
204 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 188 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
205 "pver=2.2" + key_param_ + "&additional_query&evts=phishblhit&" 189 "pver=2.2&additional_query&evts=phishblhit&"
206 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 190 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
207 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 191 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
208 "url.com%2F&evtb=0", 192 "url.com%2F&evtb=0",
209 pm.SafeBrowsingHitUrl( 193 pm.SafeBrowsingHitUrl(
210 malicious_url, page_url, referrer_url, 194 malicious_url, page_url, referrer_url,
211 false, SafeBrowsingService::URL_PHISHING).spec()); 195 false, SafeBrowsingService::URL_PHISHING).spec());
212 196
213 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 197 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
214 "pver=2.2" + key_param_ + "&additional_query&evts=binurlhit&" 198 "pver=2.2&additional_query&evts=binurlhit&"
215 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 199 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
216 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 200 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
217 "url.com%2F&evtb=0", 201 "url.com%2F&evtb=0",
218 pm.SafeBrowsingHitUrl( 202 pm.SafeBrowsingHitUrl(
219 malicious_url, page_url, referrer_url, 203 malicious_url, page_url, referrer_url,
220 false, SafeBrowsingService::BINARY_MALWARE_URL).spec()); 204 false, SafeBrowsingService::BINARY_MALWARE_URL).spec());
221 205
222 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 206 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
223 "pver=2.2" + key_param_ + "&additional_query&evts=binhashhit&" 207 "pver=2.2&additional_query&evts=binhashhit&"
224 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 208 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
225 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 209 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
226 "url.com%2F&evtb=0", 210 "url.com%2F&evtb=0",
227 pm.SafeBrowsingHitUrl( 211 pm.SafeBrowsingHitUrl(
228 malicious_url, page_url, referrer_url, 212 malicious_url, page_url, referrer_url,
229 false, SafeBrowsingService::BINARY_MALWARE_HASH).spec()); 213 false, SafeBrowsingService::BINARY_MALWARE_HASH).spec());
230 214
231 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&" 215 EXPECT_EQ("https://prefix.com/foo/report?client=unittest&appver=1.0&"
232 "pver=2.2" + key_param_ + "&additional_query&evts=phishcsdhit&" 216 "pver=2.2&additional_query&evts=phishcsdhit&"
233 "evtd=http%3A%2F%2Fmalicious.url.com%2F&" 217 "evtd=http%3A%2F%2Fmalicious.url.com%2F&"
234 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." 218 "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer."
235 "url.com%2F&evtb=0", 219 "url.com%2F&evtb=0",
236 pm.SafeBrowsingHitUrl( 220 pm.SafeBrowsingHitUrl(
237 malicious_url, page_url, referrer_url, 221 malicious_url, page_url, referrer_url,
238 false, SafeBrowsingService::CLIENT_SIDE_PHISHING_URL).spec()); 222 false, SafeBrowsingService::CLIENT_SIDE_PHISHING_URL).spec());
239 } 223 }
240 224
241 TEST_F(SafeBrowsingProtocolManagerTest, TestMalwareDetailsUrl) { 225 TEST_F(SafeBrowsingProtocolManagerTest, TestMalwareDetailsUrl) {
242 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 226 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
243 227
244 pm.version_ = kAppVer; 228 pm.version_ = kAppVer;
245 pm.set_additional_query(kAdditionalQuery); // AdditionalQuery is not used. 229 pm.set_additional_query(kAdditionalQuery); // AdditionalQuery is not used.
246 EXPECT_EQ("https://prefix.com/foo/clientreport/malware?" 230 EXPECT_EQ("https://prefix.com/foo/clientreport/malware?"
247 "client=unittest&appver=1.0&pver=1.0" + key_param_, 231 "client=unittest&appver=1.0&pver=1.0",
248 pm.MalwareDetailsUrl().spec()); 232 pm.MalwareDetailsUrl().spec());
249 } 233 }
250 234
251 TEST_F(SafeBrowsingProtocolManagerTest, TestNextChunkUrl) { 235 TEST_F(SafeBrowsingProtocolManagerTest, TestNextChunkUrl) {
252 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false); 236 SafeBrowsingProtocolManager pm(NULL, kClient, NULL, kUrlPrefix, false);
253 pm.version_ = kAppVer; 237 pm.version_ = kAppVer;
254 238
255 std::string url_partial = "localhost:1234/foo/bar?foo"; 239 std::string url_partial = "localhost:1234/foo/bar?foo";
256 std::string url_http_full = "http://localhost:1234/foo/bar?foo"; 240 std::string url_http_full = "http://localhost:1234/foo/bar?foo";
257 std::string url_https_full = "https://localhost:1234/foo/bar?foo"; 241 std::string url_https_full = "https://localhost:1234/foo/bar?foo";
(...skipping 11 matching lines...) Expand all
269 pm.set_additional_query(kAdditionalQuery); 253 pm.set_additional_query(kAdditionalQuery);
270 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query", 254 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query",
271 pm.NextChunkUrl(url_partial).spec()); 255 pm.NextChunkUrl(url_partial).spec());
272 EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query", 256 EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query",
273 pm.NextChunkUrl(url_http_full).spec()); 257 pm.NextChunkUrl(url_http_full).spec());
274 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query", 258 EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query",
275 pm.NextChunkUrl(url_https_full).spec()); 259 pm.NextChunkUrl(url_https_full).spec());
276 EXPECT_EQ("https://localhost:1234/foo/bar?additional_query", 260 EXPECT_EQ("https://localhost:1234/foo/bar?additional_query",
277 pm.NextChunkUrl(url_https_no_query).spec()); 261 pm.NextChunkUrl(url_https_no_query).spec());
278 } 262 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698