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

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

Issue 1410343012: Revert of 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: 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
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 <string> 5 #include <string>
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "chrome/browser/safe_browsing/protocol_parser.h" 9 #include "chrome/browser/safe_browsing/protocol_parser.h"
10 #include "chrome/browser/safe_browsing/safe_browsing_util.h" 10 #include "chrome/browser/safe_browsing/safe_browsing_util.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 EXPECT_TRUE(safe_browsing::ParseChunk(kRawAddChunk, sizeof(kRawAddChunk), 81 EXPECT_TRUE(safe_browsing::ParseChunk(kRawAddChunk, sizeof(kRawAddChunk),
82 &chunks)); 82 &chunks));
83 ASSERT_EQ(1U, chunks.size()); 83 ASSERT_EQ(1U, chunks.size());
84 EXPECT_EQ(1, chunks[0]->ChunkNumber()); 84 EXPECT_EQ(1, chunks[0]->ChunkNumber());
85 EXPECT_TRUE(chunks[0]->IsAdd()); 85 EXPECT_TRUE(chunks[0]->IsAdd());
86 EXPECT_FALSE(chunks[0]->IsSub()); 86 EXPECT_FALSE(chunks[0]->IsSub());
87 EXPECT_FALSE(chunks[0]->IsPrefix()); 87 EXPECT_FALSE(chunks[0]->IsPrefix());
88 EXPECT_TRUE(chunks[0]->IsFullHash()); 88 EXPECT_TRUE(chunks[0]->IsFullHash());
89 89
90 ASSERT_EQ(2U, chunks[0]->FullHashCount()); 90 ASSERT_EQ(2U, chunks[0]->FullHashCount());
91 EXPECT_TRUE( 91 EXPECT_TRUE(SBFullHashEqual(chunks[0]->FullHashAt(0), full_hash1));
92 safe_browsing::SBFullHashEqual(chunks[0]->FullHashAt(0), full_hash1)); 92 EXPECT_TRUE(SBFullHashEqual(chunks[0]->FullHashAt(1), full_hash2));
93 EXPECT_TRUE(
94 safe_browsing::SBFullHashEqual(chunks[0]->FullHashAt(1), full_hash2));
95 } 93 }
96 94
97 // Test parsing multiple add chunks. We'll use the same chunk as above, and add 95 // Test parsing multiple add chunks. We'll use the same chunk as above, and add
98 // one more after it. 96 // one more after it.
99 TEST(SafeBrowsingProtocolParsingTest, TestAddChunks) { 97 TEST(SafeBrowsingProtocolParsingTest, TestAddChunks) {
100 const char kRawAddChunk[] = { 98 const char kRawAddChunk[] = {
101 '\0', '\0', '\0', '\x1C', // 32-bit payload length in network byte order. 99 '\0', '\0', '\0', '\x1C', // 32-bit payload length in network byte order.
102 '\x08', // field 1, wire format varint 100 '\x08', // field 1, wire format varint
103 '\x01', // chunk_number varint 1 101 '\x01', // chunk_number varint 1
104 '\x22', // field 4, wire format length-delimited 102 '\x22', // field 4, wire format length-delimited
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 EXPECT_TRUE(safe_browsing::ParseChunk(kRawSubChunk, sizeof(kRawSubChunk), 275 EXPECT_TRUE(safe_browsing::ParseChunk(kRawSubChunk, sizeof(kRawSubChunk),
278 &chunks)); 276 &chunks));
279 ASSERT_EQ(1U, chunks.size()); 277 ASSERT_EQ(1U, chunks.size());
280 EXPECT_EQ(2, chunks[0]->ChunkNumber()); 278 EXPECT_EQ(2, chunks[0]->ChunkNumber());
281 EXPECT_FALSE(chunks[0]->IsAdd()); 279 EXPECT_FALSE(chunks[0]->IsAdd());
282 EXPECT_TRUE(chunks[0]->IsSub()); 280 EXPECT_TRUE(chunks[0]->IsSub());
283 EXPECT_FALSE(chunks[0]->IsPrefix()); 281 EXPECT_FALSE(chunks[0]->IsPrefix());
284 EXPECT_TRUE(chunks[0]->IsFullHash()); 282 EXPECT_TRUE(chunks[0]->IsFullHash());
285 283
286 ASSERT_EQ(2U, chunks[0]->FullHashCount()); 284 ASSERT_EQ(2U, chunks[0]->FullHashCount());
287 EXPECT_TRUE( 285 EXPECT_TRUE(SBFullHashEqual(chunks[0]->FullHashAt(0), full_hash1));
288 safe_browsing::SBFullHashEqual(chunks[0]->FullHashAt(0), full_hash1));
289 EXPECT_EQ(7, chunks[0]->AddChunkNumberAt(0)); 286 EXPECT_EQ(7, chunks[0]->AddChunkNumberAt(0));
290 EXPECT_TRUE( 287 EXPECT_TRUE(SBFullHashEqual(chunks[0]->FullHashAt(1), full_hash2));
291 safe_browsing::SBFullHashEqual(chunks[0]->FullHashAt(1), full_hash2));
292 EXPECT_EQ(9, chunks[0]->AddChunkNumberAt(1)); 288 EXPECT_EQ(9, chunks[0]->AddChunkNumberAt(1));
293 } 289 }
294 290
295 // Test parsing the SafeBrowsing update response. 291 // Test parsing the SafeBrowsing update response.
296 TEST(SafeBrowsingProtocolParsingTest, TestChunkDelete) { 292 TEST(SafeBrowsingProtocolParsingTest, TestChunkDelete) {
297 std::string add_del("n:1700\ni:phishy\nad:1-7,43-597,44444,99999\n" 293 std::string add_del("n:1700\ni:phishy\nad:1-7,43-597,44444,99999\n"
298 "i:malware\nsd:21-27,42,171717\n"); 294 "i:malware\nsd:21-27,42,171717\n");
299 295
300 size_t next_query_sec = 0; 296 size_t next_query_sec = 0;
301 bool reset = false; 297 bool reset = false;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 kDefaultPhishList)); 389 kDefaultPhishList));
394 std::vector<SBFullHashResult> full_hashes; 390 std::vector<SBFullHashResult> full_hashes;
395 base::TimeDelta cache_lifetime; 391 base::TimeDelta cache_lifetime;
396 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash.data(), get_hash.length(), 392 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash.data(), get_hash.length(),
397 &cache_lifetime, &full_hashes)); 393 &cache_lifetime, &full_hashes));
398 394
399 ASSERT_EQ(3U, full_hashes.size()); 395 ASSERT_EQ(3U, full_hashes.size());
400 EXPECT_EQ(memcmp(&full_hashes[0].hash, 396 EXPECT_EQ(memcmp(&full_hashes[0].hash,
401 "00112233445566778899aabbccddeeff", 397 "00112233445566778899aabbccddeeff",
402 sizeof(SBFullHash)), 0); 398 sizeof(SBFullHash)), 0);
403 EXPECT_EQ(safe_browsing::PHISH, full_hashes[0].list_id); 399 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[0].list_id);
404 EXPECT_EQ(memcmp(&full_hashes[1].hash, 400 EXPECT_EQ(memcmp(&full_hashes[1].hash,
405 "00001111222233334444555566667777", 401 "00001111222233334444555566667777",
406 sizeof(SBFullHash)), 0); 402 sizeof(SBFullHash)), 0);
407 EXPECT_EQ(safe_browsing::PHISH, full_hashes[1].list_id); 403 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[1].list_id);
408 EXPECT_EQ(memcmp(&full_hashes[2].hash, 404 EXPECT_EQ(memcmp(&full_hashes[2].hash,
409 "ffffeeeeddddccccbbbbaaaa99998888", 405 "ffffeeeeddddccccbbbbaaaa99998888",
410 sizeof(SBFullHash)), 0); 406 sizeof(SBFullHash)), 0);
411 EXPECT_EQ(safe_browsing::PHISH, full_hashes[2].list_id); 407 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[2].list_id);
412 408
413 // Test multiple lists in the GetHash results. 409 // Test multiple lists in the GetHash results.
414 const std::string get_hash2(base::StringPrintf( 410 const std::string get_hash2(base::StringPrintf(
415 "45\n" 411 "45\n"
416 "%s:32:1\n" 412 "%s:32:1\n"
417 "00112233445566778899aabbccddeeff" 413 "00112233445566778899aabbccddeeff"
418 "%s:32:2\n" 414 "%s:32:2\n"
419 "cafebeefcafebeefdeaddeaddeaddead" 415 "cafebeefcafebeefdeaddeaddeaddead"
420 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss", 416 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss",
421 kDefaultPhishList, 417 kDefaultPhishList,
422 kDefaultMalwareList)); 418 kDefaultMalwareList));
423 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash2.data(), get_hash2.length(), 419 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash2.data(), get_hash2.length(),
424 &cache_lifetime, &full_hashes)); 420 &cache_lifetime, &full_hashes));
425 421
426 ASSERT_EQ(3U, full_hashes.size()); 422 ASSERT_EQ(3U, full_hashes.size());
427 EXPECT_EQ(memcmp(&full_hashes[0].hash, 423 EXPECT_EQ(memcmp(&full_hashes[0].hash,
428 "00112233445566778899aabbccddeeff", 424 "00112233445566778899aabbccddeeff",
429 sizeof(SBFullHash)), 0); 425 sizeof(SBFullHash)), 0);
430 EXPECT_EQ(safe_browsing::PHISH, full_hashes[0].list_id); 426 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[0].list_id);
431 EXPECT_EQ(memcmp(&full_hashes[1].hash, 427 EXPECT_EQ(memcmp(&full_hashes[1].hash,
432 "cafebeefcafebeefdeaddeaddeaddead", 428 "cafebeefcafebeefdeaddeaddeaddead",
433 sizeof(SBFullHash)), 0); 429 sizeof(SBFullHash)), 0);
434 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[1].list_id); 430 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[1].list_id);
435 EXPECT_EQ(memcmp(&full_hashes[2].hash, 431 EXPECT_EQ(memcmp(&full_hashes[2].hash,
436 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss", 432 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss",
437 sizeof(SBFullHash)), 0); 433 sizeof(SBFullHash)), 0);
438 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[2].list_id); 434 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[2].list_id);
439 435
440 // Test metadata parsing. 436 // Test metadata parsing.
441 const std::string get_hash3(base::StringPrintf( 437 const std::string get_hash3(base::StringPrintf(
442 "45\n" 438 "45\n"
443 "%s:32:2:m\n" 439 "%s:32:2:m\n"
444 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss" 440 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss"
445 "00112233445566778899aabbccddeeff" 441 "00112233445566778899aabbccddeeff"
446 "2\nab2\nxy" 442 "2\nab2\nxy"
447 "%s:32:1\n" 443 "%s:32:1\n"
448 "cafebeefcafebeefdeaddeaddeaddead", 444 "cafebeefcafebeefdeaddeaddeaddead",
449 kDefaultMalwareList, 445 kDefaultMalwareList,
450 kDefaultPhishList)); 446 kDefaultPhishList));
451 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash3.data(), get_hash3.length(), 447 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash3.data(), get_hash3.length(),
452 &cache_lifetime, &full_hashes)); 448 &cache_lifetime, &full_hashes));
453 449
454 ASSERT_EQ(3U, full_hashes.size()); 450 ASSERT_EQ(3U, full_hashes.size());
455 EXPECT_EQ(memcmp(&full_hashes[0].hash, 451 EXPECT_EQ(memcmp(&full_hashes[0].hash,
456 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss", 452 "zzzzyyyyxxxxwwwwvvvvuuuuttttssss",
457 sizeof(SBFullHash)), 0); 453 sizeof(SBFullHash)), 0);
458 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[0].list_id); 454 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[0].list_id);
459 EXPECT_EQ(std::string("ab"), full_hashes[0].metadata); 455 EXPECT_EQ(std::string("ab"), full_hashes[0].metadata);
460 EXPECT_EQ(memcmp(&full_hashes[1].hash, 456 EXPECT_EQ(memcmp(&full_hashes[1].hash,
461 "00112233445566778899aabbccddeeff", 457 "00112233445566778899aabbccddeeff",
462 sizeof(SBFullHash)), 0); 458 sizeof(SBFullHash)), 0);
463 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[1].list_id); 459 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[1].list_id);
464 EXPECT_EQ(std::string("xy"), full_hashes[1].metadata); 460 EXPECT_EQ(std::string("xy"), full_hashes[1].metadata);
465 EXPECT_EQ(memcmp(&full_hashes[2].hash, 461 EXPECT_EQ(memcmp(&full_hashes[2].hash,
466 "cafebeefcafebeefdeaddeaddeaddead", 462 "cafebeefcafebeefdeaddeaddeaddead",
467 sizeof(SBFullHash)), 0); 463 sizeof(SBFullHash)), 0);
468 EXPECT_EQ(safe_browsing::PHISH, full_hashes[2].list_id); 464 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[2].list_id);
469 EXPECT_EQ(std::string(), full_hashes[2].metadata); 465 EXPECT_EQ(std::string(), full_hashes[2].metadata);
470 } 466 }
471 467
472 TEST(SafeBrowsingProtocolParsingTest, TestGetHashWithUnknownList) { 468 TEST(SafeBrowsingProtocolParsingTest, TestGetHashWithUnknownList) {
473 std::string hash_response(base::StringPrintf( 469 std::string hash_response(base::StringPrintf(
474 "45\n" 470 "45\n"
475 "%s:32:1\n" 471 "%s:32:1\n"
476 "12345678901234567890123456789012" 472 "12345678901234567890123456789012"
477 "googpub-phish-shavar:32:1\n" 473 "googpub-phish-shavar:32:1\n"
478 "09876543210987654321098765432109", 474 "09876543210987654321098765432109",
479 kDefaultPhishList)); 475 kDefaultPhishList));
480 std::vector<SBFullHashResult> full_hashes; 476 std::vector<SBFullHashResult> full_hashes;
481 base::TimeDelta cache_lifetime; 477 base::TimeDelta cache_lifetime;
482 EXPECT_TRUE(safe_browsing::ParseGetHash(hash_response.data(), 478 EXPECT_TRUE(safe_browsing::ParseGetHash(hash_response.data(),
483 hash_response.size(), 479 hash_response.size(),
484 &cache_lifetime, 480 &cache_lifetime,
485 &full_hashes)); 481 &full_hashes));
486 482
487 ASSERT_EQ(1U, full_hashes.size()); 483 ASSERT_EQ(1U, full_hashes.size());
488 EXPECT_EQ(memcmp("12345678901234567890123456789012", 484 EXPECT_EQ(memcmp("12345678901234567890123456789012",
489 &full_hashes[0].hash, sizeof(SBFullHash)), 0); 485 &full_hashes[0].hash, sizeof(SBFullHash)), 0);
490 EXPECT_EQ(safe_browsing::PHISH, full_hashes[0].list_id); 486 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[0].list_id);
491 487
492 hash_response += base::StringPrintf( 488 hash_response += base::StringPrintf(
493 "%s:32:1\n" 489 "%s:32:1\n"
494 "abcdefghijklmnopqrstuvwxyz123457", 490 "abcdefghijklmnopqrstuvwxyz123457",
495 kDefaultMalwareList); 491 kDefaultMalwareList);
496 full_hashes.clear(); 492 full_hashes.clear();
497 EXPECT_TRUE(safe_browsing::ParseGetHash(hash_response.data(), 493 EXPECT_TRUE(safe_browsing::ParseGetHash(hash_response.data(),
498 hash_response.size(), 494 hash_response.size(),
499 &cache_lifetime, 495 &cache_lifetime,
500 &full_hashes)); 496 &full_hashes));
501 497
502 EXPECT_EQ(2U, full_hashes.size()); 498 EXPECT_EQ(2U, full_hashes.size());
503 EXPECT_EQ(memcmp("12345678901234567890123456789012", 499 EXPECT_EQ(memcmp("12345678901234567890123456789012",
504 &full_hashes[0].hash, sizeof(SBFullHash)), 0); 500 &full_hashes[0].hash, sizeof(SBFullHash)), 0);
505 EXPECT_EQ(safe_browsing::PHISH, full_hashes[0].list_id); 501 EXPECT_EQ(safe_browsing_util::PHISH, full_hashes[0].list_id);
506 EXPECT_EQ(memcmp("abcdefghijklmnopqrstuvwxyz123457", 502 EXPECT_EQ(memcmp("abcdefghijklmnopqrstuvwxyz123457",
507 &full_hashes[1].hash, sizeof(SBFullHash)), 0); 503 &full_hashes[1].hash, sizeof(SBFullHash)), 0);
508 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[1].list_id); 504 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[1].list_id);
509 } 505 }
510 506
511 TEST(SafeBrowsingProtocolParsingTest, TestGetHashWithUnknownListAndMetadata) { 507 TEST(SafeBrowsingProtocolParsingTest, TestGetHashWithUnknownListAndMetadata) {
512 std::vector<SBFullHashResult> full_hashes; 508 std::vector<SBFullHashResult> full_hashes;
513 base::TimeDelta cache_lifetime; 509 base::TimeDelta cache_lifetime;
514 // Test skipping over a hashentry with an unrecognized listname that also has 510 // Test skipping over a hashentry with an unrecognized listname that also has
515 // metadata. 511 // metadata.
516 const std::string get_hash3(base::StringPrintf( 512 const std::string get_hash3(base::StringPrintf(
517 "600\n" 513 "600\n"
518 "BADLISTNAME:32:1:m\n" 514 "BADLISTNAME:32:1:m\n"
519 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 515 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
520 "8\nMETADATA" 516 "8\nMETADATA"
521 "%s:32:1\n" 517 "%s:32:1\n"
522 "0123456789hashhashhashhashhashha", 518 "0123456789hashhashhashhashhashha",
523 kDefaultMalwareList)); 519 kDefaultMalwareList));
524 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash3.data(), get_hash3.length(), 520 EXPECT_TRUE(safe_browsing::ParseGetHash(get_hash3.data(), get_hash3.length(),
525 &cache_lifetime, &full_hashes)); 521 &cache_lifetime, &full_hashes));
526 ASSERT_EQ(1U, full_hashes.size()); 522 ASSERT_EQ(1U, full_hashes.size());
527 EXPECT_EQ(memcmp(&full_hashes[0].hash, 523 EXPECT_EQ(memcmp(&full_hashes[0].hash,
528 "0123456789hashhashhashhashhashha", 524 "0123456789hashhashhashhashhashha",
529 sizeof(SBFullHash)), 0); 525 sizeof(SBFullHash)), 0);
530 EXPECT_EQ(safe_browsing::MALWARE, full_hashes[0].list_id); 526 EXPECT_EQ(safe_browsing_util::MALWARE, full_hashes[0].list_id);
531 EXPECT_EQ(std::string(), full_hashes[0].metadata); 527 EXPECT_EQ(std::string(), full_hashes[0].metadata);
532 } 528 }
533 529
534 TEST(SafeBrowsingProtocolParsingTest, TestFormatHash) { 530 TEST(SafeBrowsingProtocolParsingTest, TestFormatHash) {
535 std::vector<SBPrefix> prefixes; 531 std::vector<SBPrefix> prefixes;
536 prefixes.push_back(0x34333231); 532 prefixes.push_back(0x34333231);
537 prefixes.push_back(0x64636261); 533 prefixes.push_back(0x64636261);
538 prefixes.push_back(0x73727170); 534 prefixes.push_back(0x73727170);
539 535
540 EXPECT_EQ("4:12\n1234abcdpqrs", safe_browsing::FormatGetHash(prefixes)); 536 EXPECT_EQ("4:12\n1234abcdpqrs", safe_browsing::FormatGetHash(prefixes));
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 EXPECT_FALSE(chunks[0]->IsAdd()); 704 EXPECT_FALSE(chunks[0]->IsAdd());
709 EXPECT_TRUE(chunks[0]->IsSub()); 705 EXPECT_TRUE(chunks[0]->IsSub());
710 EXPECT_TRUE(chunks[2]->IsPrefix()); 706 EXPECT_TRUE(chunks[2]->IsPrefix());
711 EXPECT_FALSE(chunks[2]->IsFullHash()); 707 EXPECT_FALSE(chunks[2]->IsFullHash());
712 ASSERT_EQ(1U, chunks[2]->PrefixCount()); 708 ASSERT_EQ(1U, chunks[2]->PrefixCount());
713 EXPECT_EQ(0x70707070U, chunks[2]->PrefixAt(0)); // pppp 709 EXPECT_EQ(0x70707070U, chunks[2]->PrefixAt(0)); // pppp
714 EXPECT_EQ(11, chunks[2]->AddChunkNumberAt(0)); 710 EXPECT_EQ(11, chunks[2]->AddChunkNumberAt(0));
715 } 711 }
716 712
717 } // namespace 713 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/protocol_parser.cc ('k') | chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698