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

Unified Diff: chrome/browser/safe_browsing/protocol_parser_unittest.cc

Issue 8873004: Fix safe-browsing sub parsing for download whitelist. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/protocol_parser_unittest.cc
diff --git a/chrome/browser/safe_browsing/protocol_parser_unittest.cc b/chrome/browser/safe_browsing/protocol_parser_unittest.cc
index fbec06350d75dba219fc93abb68dd1d0101f7a8c..9716a3eccf13784d2cf9b7caeabb04e35e84299f 100644
--- a/chrome/browser/safe_browsing/protocol_parser_unittest.cc
+++ b/chrome/browser/safe_browsing/protocol_parser_unittest.cc
@@ -964,3 +964,33 @@ TEST(SafeBrowsingProtocolParsingTest, TestAddDownloadWhitelistChunk) {
memcpy(full.full_hash, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", 32);
EXPECT_TRUE(entry->FullHashAt(1) == full);
}
+
+// Test parsing one sub chunk.
+TEST(SafeBrowsingProtocolParsingTest, TestSubDownloadWhitelistChunk) {
+ std::string sub_chunk("s:1:32:36\n1111xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+
+ // Run the parser.
+ SafeBrowsingProtocolParser parser;
+ bool re_key = false;
+ SBChunkList chunks;
+ bool result = parser.ParseChunk(
+ safe_browsing_util::kDownloadWhiteList,
+ sub_chunk.data(),
+ static_cast<int>(sub_chunk.length()),
+ "", "", &re_key, &chunks);
+ ASSERT_TRUE(result);
+ EXPECT_FALSE(re_key);
+ ASSERT_EQ(chunks.size(), 1U);
+ EXPECT_EQ(chunks[0].chunk_number, 1);
+ EXPECT_EQ(chunks[0].hosts.size(), 1U);
+
+ EXPECT_EQ(chunks[0].hosts[0].host, 0);
+ SBEntry* entry = chunks[0].hosts[0].entry;
+ EXPECT_TRUE(entry->IsSub());
+ ASSERT_FALSE(entry->IsPrefix());
+ ASSERT_EQ(entry->prefix_count(), 1);
+ EXPECT_EQ(entry->ChunkIdAtPrefix(0), 0x31313131);
+ SBFullHash full;
+ memcpy(full.full_hash, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 32);
+ EXPECT_TRUE(entry->FullHashAt(0) == full);
+}

Powered by Google App Engine
This is Rietveld 408576698