#include "src/block_header_parser.h"
#include "gtest/gtest.h"
#include "test_utils/parser_test.h"
#include "webm/status.h"
using webm::BlockHeader;
using webm::BlockHeaderParser;
using webm::ParserTest;
namespace {
class BlockHeaderParserTest : public ParserTest<BlockHeaderParser> {};
TEST_F(BlockHeaderParserTest, ValidBlock) {
SetReaderData({
0x81, 0x12, 0x34, 0x00, });
ParseAndVerify();
const BlockHeader& block_header = parser_.value();
EXPECT_EQ(static_cast<std::uint64_t>(1), block_header.track_number);
EXPECT_EQ(0x1234, block_header.timecode);
EXPECT_EQ(0x00, block_header.flags);
}
TEST_F(BlockHeaderParserTest, IncrementalParse) {
SetReaderData({
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFE, 0xFF, });
IncrementalParseAndVerify();
const BlockHeader& block_header = parser_.value();
EXPECT_EQ(static_cast<std::uint64_t>(2), block_header.track_number);
EXPECT_EQ(-2, block_header.timecode);
EXPECT_EQ(0xFF, block_header.flags);
}
}