Index: media/mp4/box_reader_unittest.cc |
diff --git a/media/mp4/box_reader_unittest.cc b/media/mp4/box_reader_unittest.cc |
index da0a0417d527143eaad309920ee12052d14d62f2..38fd896dab69ecd786c74d85915eb2f51ea159a5 100644 |
--- a/media/mp4/box_reader_unittest.cc |
+++ b/media/mp4/box_reader_unittest.cc |
@@ -145,7 +145,7 @@ TEST_F(BoxReaderTest, WrongFourCCTest) { |
EXPECT_TRUE(err); |
} |
-TEST_F(BoxReaderTest, ChildrenTest) { |
+TEST_F(BoxReaderTest, ScanChildrenTest) { |
std::vector<uint8> buf = GetBuf(); |
bool err; |
scoped_ptr<BoxReader> reader( |
@@ -160,12 +160,26 @@ TEST_F(BoxReaderTest, ChildrenTest) { |
std::vector<PsshBox> kids; |
- EXPECT_TRUE(reader->ReadAllChildren(&kids)); |
+ EXPECT_TRUE(reader->ReadChildren(&kids)); |
EXPECT_EQ(2u, kids.size()); |
kids.clear(); |
EXPECT_FALSE(reader->ReadChildren(&kids)); |
EXPECT_TRUE(reader->MaybeReadChildren(&kids)); |
} |
+TEST_F(BoxReaderTest, ReadAllChildrenTest) { |
+ std::vector<uint8> buf = GetBuf(); |
+ // Modify buffer to exclude its last 'free' box |
+ buf[3] = 0x38; |
+ bool err; |
+ scoped_ptr<BoxReader> reader( |
+ BoxReader::ReadTopLevelBox(&buf[0], buf.size(), &err)); |
+ |
+ std::vector<PsshBox> kids; |
+ EXPECT_TRUE(reader->SkipBytes(16) && reader->ReadAllChildren(&kids)); |
+ EXPECT_EQ(2u, kids.size()); |
+ EXPECT_EQ(kids[0].val, 0xdeadbeef); // Ensure order is preserved |
+} |
+ |
} // namespace mp4 |
} // namespace media |