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

Side by Side Diff: components/safe_browsing_db/util_unittest.cc

Issue 1420123003: Move more declarations from c/b/sb/sb_util.h to components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@01_components
Patch Set: Minor: Replace safe_browsing_util:: with safe_browsing:: and use safe_browsing:: namespace prefix Created 5 years, 1 month 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/safe_browsing_db/util.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 <algorithm> 5 #include <algorithm>
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "chrome/browser/safe_browsing/safe_browsing_util.h" 8 #include "components/safe_browsing_db/util.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "url/gurl.h" 10 #include "url/gurl.h"
11 11
12 namespace { 12 namespace {
13 13
14 bool VectorContains(const std::vector<std::string>& data, 14 bool VectorContains(const std::vector<std::string>& data,
15 const std::string& str) { 15 const std::string& str) {
16 return std::find(data.begin(), data.end(), str) != data.end(); 16 return std::find(data.begin(), data.end(), str) != data.end();
17 } 17 }
18 18
19 // Tests that we generate the required host/path combinations for testing 19 // Tests that we generate the required host/path combinations for testing
20 // according to the Safe Browsing spec. 20 // according to the Safe Browsing spec.
21 // See section 6.2 in 21 // See section 6.2 in
22 // http://code.google.com/p/google-safe-browsing/wiki/Protocolv2Spec. 22 // http://code.google.com/p/google-safe-browsing/wiki/Protocolv2Spec.
23 TEST(SafeBrowsingUtilTest, UrlParsing) { 23 TEST(SafeBrowsingDbUtilTest, UrlParsing) {
24 std::vector<std::string> hosts, paths; 24 std::vector<std::string> hosts, paths;
25 25
26 GURL url("http://a.b.c/1/2.html?param=1"); 26 GURL url("http://a.b.c/1/2.html?param=1");
27 safe_browsing_util::GenerateHostsToCheck(url, &hosts); 27 safe_browsing::GenerateHostsToCheck(url, &hosts);
28 safe_browsing_util::GeneratePathsToCheck(url, &paths); 28 safe_browsing::GeneratePathsToCheck(url, &paths);
29 EXPECT_EQ(hosts.size(), static_cast<size_t>(2)); 29 EXPECT_EQ(hosts.size(), static_cast<size_t>(2));
30 EXPECT_EQ(paths.size(), static_cast<size_t>(4)); 30 EXPECT_EQ(paths.size(), static_cast<size_t>(4));
31 EXPECT_EQ(hosts[0], "b.c"); 31 EXPECT_EQ(hosts[0], "b.c");
32 EXPECT_EQ(hosts[1], "a.b.c"); 32 EXPECT_EQ(hosts[1], "a.b.c");
33 33
34 EXPECT_TRUE(VectorContains(paths, "/1/2.html?param=1")); 34 EXPECT_TRUE(VectorContains(paths, "/1/2.html?param=1"));
35 EXPECT_TRUE(VectorContains(paths, "/1/2.html")); 35 EXPECT_TRUE(VectorContains(paths, "/1/2.html"));
36 EXPECT_TRUE(VectorContains(paths, "/1/")); 36 EXPECT_TRUE(VectorContains(paths, "/1/"));
37 EXPECT_TRUE(VectorContains(paths, "/")); 37 EXPECT_TRUE(VectorContains(paths, "/"));
38 38
39 url = GURL("http://a.b.c.d.e.f.g/1.html"); 39 url = GURL("http://a.b.c.d.e.f.g/1.html");
40 safe_browsing_util::GenerateHostsToCheck(url, &hosts); 40 safe_browsing::GenerateHostsToCheck(url, &hosts);
41 safe_browsing_util::GeneratePathsToCheck(url, &paths); 41 safe_browsing::GeneratePathsToCheck(url, &paths);
42 EXPECT_EQ(hosts.size(), static_cast<size_t>(5)); 42 EXPECT_EQ(hosts.size(), static_cast<size_t>(5));
43 EXPECT_EQ(paths.size(), static_cast<size_t>(2)); 43 EXPECT_EQ(paths.size(), static_cast<size_t>(2));
44 EXPECT_EQ(hosts[0], "f.g"); 44 EXPECT_EQ(hosts[0], "f.g");
45 EXPECT_EQ(hosts[1], "e.f.g"); 45 EXPECT_EQ(hosts[1], "e.f.g");
46 EXPECT_EQ(hosts[2], "d.e.f.g"); 46 EXPECT_EQ(hosts[2], "d.e.f.g");
47 EXPECT_EQ(hosts[3], "c.d.e.f.g"); 47 EXPECT_EQ(hosts[3], "c.d.e.f.g");
48 EXPECT_EQ(hosts[4], "a.b.c.d.e.f.g"); 48 EXPECT_EQ(hosts[4], "a.b.c.d.e.f.g");
49 EXPECT_TRUE(VectorContains(paths, "/1.html")); 49 EXPECT_TRUE(VectorContains(paths, "/1.html"));
50 EXPECT_TRUE(VectorContains(paths, "/")); 50 EXPECT_TRUE(VectorContains(paths, "/"));
51 51
52 url = GURL("http://a.b/saw-cgi/eBayISAPI.dll/"); 52 url = GURL("http://a.b/saw-cgi/eBayISAPI.dll/");
53 safe_browsing_util::GeneratePathsToCheck(url, &paths); 53 safe_browsing::GeneratePathsToCheck(url, &paths);
54 EXPECT_EQ(paths.size(), static_cast<size_t>(3)); 54 EXPECT_EQ(paths.size(), static_cast<size_t>(3));
55 EXPECT_TRUE(VectorContains(paths, "/saw-cgi/eBayISAPI.dll/")); 55 EXPECT_TRUE(VectorContains(paths, "/saw-cgi/eBayISAPI.dll/"));
56 EXPECT_TRUE(VectorContains(paths, "/saw-cgi/")); 56 EXPECT_TRUE(VectorContains(paths, "/saw-cgi/"));
57 EXPECT_TRUE(VectorContains(paths, "/")); 57 EXPECT_TRUE(VectorContains(paths, "/"));
58 } 58 }
59 59
60 // Tests the url canonicalization according to the Safe Browsing spec. 60 // Tests the url canonicalization according to the Safe Browsing spec.
61 // See section 6.1 in 61 // See section 6.1 in
62 // http://code.google.com/p/google-safe-browsing/wiki/Protocolv2Spec. 62 // http://code.google.com/p/google-safe-browsing/wiki/Protocolv2Spec.
63 TEST(SafeBrowsingUtilTest, CanonicalizeUrl) { 63 TEST(SafeBrowsingDbUtilTest, CanonicalizeUrl) {
64 struct { 64 struct {
65 const char* input_url; 65 const char* input_url;
66 const char* expected_canonicalized_hostname; 66 const char* expected_canonicalized_hostname;
67 const char* expected_canonicalized_path; 67 const char* expected_canonicalized_path;
68 const char* expected_canonicalized_query; 68 const char* expected_canonicalized_query;
69 } tests[] = { 69 } tests[] = {
70 { 70 {
71 "http://host/%25%32%35", 71 "http://host/%25%32%35",
72 "host", 72 "host",
73 "/%25", 73 "/%25",
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 "" 258 ""
259 }, 259 },
260 }; 260 };
261 for (size_t i = 0; i < arraysize(tests); ++i) { 261 for (size_t i = 0; i < arraysize(tests); ++i) {
262 SCOPED_TRACE(base::StringPrintf("Test: %s", tests[i].input_url)); 262 SCOPED_TRACE(base::StringPrintf("Test: %s", tests[i].input_url));
263 GURL url(tests[i].input_url); 263 GURL url(tests[i].input_url);
264 264
265 std::string canonicalized_hostname; 265 std::string canonicalized_hostname;
266 std::string canonicalized_path; 266 std::string canonicalized_path;
267 std::string canonicalized_query; 267 std::string canonicalized_query;
268 safe_browsing_util::CanonicalizeUrl(url, &canonicalized_hostname, 268 safe_browsing::CanonicalizeUrl(url, &canonicalized_hostname,
269 &canonicalized_path, &canonicalized_query); 269 &canonicalized_path, &canonicalized_query);
270 270
271 EXPECT_EQ(tests[i].expected_canonicalized_hostname, 271 EXPECT_EQ(tests[i].expected_canonicalized_hostname,
272 canonicalized_hostname); 272 canonicalized_hostname);
273 EXPECT_EQ(tests[i].expected_canonicalized_path, 273 EXPECT_EQ(tests[i].expected_canonicalized_path,
274 canonicalized_path); 274 canonicalized_path);
275 EXPECT_EQ(tests[i].expected_canonicalized_query, 275 EXPECT_EQ(tests[i].expected_canonicalized_query,
276 canonicalized_query); 276 canonicalized_query);
277 } 277 }
278 } 278 }
279 279
280 TEST(SafeBrowsingUtilTest, ListIdListNameConversion) { 280 TEST(SafeBrowsingDbUtilTest, ListIdListNameConversion) {
281 std::string list_name; 281 std::string list_name;
282 EXPECT_FALSE(safe_browsing_util::GetListName(safe_browsing_util::INVALID, 282 EXPECT_FALSE(safe_browsing::GetListName(safe_browsing::INVALID,
283 &list_name)); 283 &list_name));
284 EXPECT_TRUE(safe_browsing_util::GetListName(safe_browsing_util::MALWARE, 284 EXPECT_TRUE(safe_browsing::GetListName(safe_browsing::MALWARE,
285 &list_name)); 285 &list_name));
286 EXPECT_EQ(list_name, std::string(safe_browsing_util::kMalwareList)); 286 EXPECT_EQ(list_name, std::string(safe_browsing::kMalwareList));
287 EXPECT_EQ(safe_browsing_util::MALWARE, 287 EXPECT_EQ(safe_browsing::MALWARE,
288 safe_browsing_util::GetListId(list_name)); 288 safe_browsing::GetListId(list_name));
289 289
290 EXPECT_TRUE(safe_browsing_util::GetListName(safe_browsing_util::PHISH, 290 EXPECT_TRUE(safe_browsing::GetListName(safe_browsing::PHISH,
291 &list_name)); 291 &list_name));
292 EXPECT_EQ(list_name, std::string(safe_browsing_util::kPhishingList)); 292 EXPECT_EQ(list_name, std::string(safe_browsing::kPhishingList));
293 EXPECT_EQ(safe_browsing_util::PHISH, 293 EXPECT_EQ(safe_browsing::PHISH,
294 safe_browsing_util::GetListId(list_name)); 294 safe_browsing::GetListId(list_name));
295 295
296 EXPECT_TRUE(safe_browsing_util::GetListName(safe_browsing_util::BINURL, 296 EXPECT_TRUE(safe_browsing::GetListName(safe_browsing::BINURL,
297 &list_name)); 297 &list_name));
298 EXPECT_EQ(list_name, std::string(safe_browsing_util::kBinUrlList)); 298 EXPECT_EQ(list_name, std::string(safe_browsing::kBinUrlList));
299 EXPECT_EQ(safe_browsing_util::BINURL, 299 EXPECT_EQ(safe_browsing::BINURL,
300 safe_browsing_util::GetListId(list_name)); 300 safe_browsing::GetListId(list_name));
301 } 301 }
302 302
303 // Since the ids are saved in file, we need to make sure they don't change. 303 // Since the ids are saved in file, we need to make sure they don't change.
304 // Since only the last bit of each id is saved in file together with 304 // Since only the last bit of each id is saved in file together with
305 // chunkids, this checks only last bit. 305 // chunkids, this checks only last bit.
306 TEST(SafeBrowsingUtilTest, ListIdVerification) { 306 TEST(SafeBrowsingDbUtilTest, ListIdVerification) {
307 EXPECT_EQ(0, safe_browsing_util::MALWARE % 2); 307 EXPECT_EQ(0, safe_browsing::MALWARE % 2);
308 EXPECT_EQ(1, safe_browsing_util::PHISH % 2); 308 EXPECT_EQ(1, safe_browsing::PHISH % 2);
309 EXPECT_EQ(0, safe_browsing_util::BINURL %2); 309 EXPECT_EQ(0, safe_browsing::BINURL %2);
310 } 310 }
311 311
312 TEST(SafeBrowsingUtilTest, StringToSBFullHashAndSBFullHashToString) { 312 TEST(SafeBrowsingDbUtilTest, StringToSBFullHashAndSBFullHashToString) {
313 // 31 chars plus the last \0 as full_hash. 313 // 31 chars plus the last \0 as full_hash.
314 const std::string hash_in = "12345678902234567890323456789012"; 314 const std::string hash_in = "12345678902234567890323456789012";
315 SBFullHash hash_out = safe_browsing_util::StringToSBFullHash(hash_in); 315 SBFullHash hash_out = safe_browsing::StringToSBFullHash(hash_in);
316 EXPECT_EQ(0x34333231U, hash_out.prefix); 316 EXPECT_EQ(0x34333231U, hash_out.prefix);
317 EXPECT_EQ(0, memcmp(hash_in.data(), hash_out.full_hash, sizeof(SBFullHash))); 317 EXPECT_EQ(0, memcmp(hash_in.data(), hash_out.full_hash, sizeof(SBFullHash)));
318 318
319 std::string hash_final = safe_browsing_util::SBFullHashToString(hash_out); 319 std::string hash_final = safe_browsing::SBFullHashToString(hash_out);
320 EXPECT_EQ(hash_in, hash_final); 320 EXPECT_EQ(hash_in, hash_final);
321 } 321 }
322 322
323 TEST(SafeBrowsingDbUtilTest, FullHashOperators) {
324 const SBFullHash kHash1 = safe_browsing::SBFullHashForString("one");
325 const SBFullHash kHash2 = safe_browsing::SBFullHashForString("two");
326
327 EXPECT_TRUE(safe_browsing::SBFullHashEqual(kHash1, kHash1));
328 EXPECT_TRUE(safe_browsing::SBFullHashEqual(kHash2, kHash2));
329 EXPECT_FALSE(safe_browsing::SBFullHashEqual(kHash1, kHash2));
330 EXPECT_FALSE(safe_browsing::SBFullHashEqual(kHash2, kHash1));
331
332 EXPECT_FALSE(safe_browsing::SBFullHashLess(kHash1, kHash2));
333 EXPECT_TRUE(safe_browsing::SBFullHashLess(kHash2, kHash1));
334
335 EXPECT_FALSE(safe_browsing::SBFullHashLess(kHash1, kHash1));
336 EXPECT_FALSE(safe_browsing::SBFullHashLess(kHash2, kHash2));
337 }
338
323 } // namespace 339 } // namespace
OLDNEW
« no previous file with comments | « components/safe_browsing_db/util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698