Index: media/webm/webm_parser_unittest.cc |
diff --git a/media/webm/webm_parser_unittest.cc b/media/webm/webm_parser_unittest.cc |
index 4c140a6f6a78fbab01f6c88af3357449b565db13..43ad3c2b80e0dbc5d405f8cc741e507c7b3d682e 100644 |
--- a/media/webm/webm_parser_unittest.cc |
+++ b/media/webm/webm_parser_unittest.cc |
@@ -367,4 +367,29 @@ TEST_F(WebMParserTest, ReservedSizes) { |
} |
} |
+TEST_F(WebMParserTest, ZeroPaddedStrings) { |
+ const uint8 kBuffer[] = { |
+ 0x1A, 0x45, 0xDF, 0xA3, 0x91, // EBMLHEADER (size = 17) |
+ 0x42, 0x82, 0x80, // DocType (size = 0) |
+ 0x42, 0x82, 0x81, 0x00, // DocType (size = 1) "" |
+ 0x42, 0x82, 0x81, 'a', // DocType (size = 1) "a" |
+ 0x42, 0x82, 0x83, 'a', 0x00, 0x00 // DocType (size = 3) "a" |
+ }; |
+ int size = sizeof(kBuffer); |
+ |
+ InSequence s; |
+ EXPECT_CALL(client_, OnListStart(kWebMIdEBMLHeader)) |
+ .WillOnce(Return(&client_)); |
+ EXPECT_CALL(client_, OnString(kWebMIdDocType, "")).WillOnce(Return(true)); |
+ EXPECT_CALL(client_, OnString(kWebMIdDocType, "")).WillOnce(Return(true)); |
+ EXPECT_CALL(client_, OnString(kWebMIdDocType, "a")).WillOnce(Return(true)); |
+ EXPECT_CALL(client_, OnString(kWebMIdDocType, "a")).WillOnce(Return(true)); |
+ EXPECT_CALL(client_, OnListEnd(kWebMIdEBMLHeader)).WillOnce(Return(true)); |
+ |
+ WebMListParser parser(kWebMIdEBMLHeader, &client_); |
+ int result = parser.Parse(kBuffer, size); |
+ EXPECT_EQ(size, result); |
+ EXPECT_TRUE(parser.IsParsingComplete()); |
+} |
+ |
} // namespace media |