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); |
+} |