| #include "http2/adapter/data_source.h" |
| #include "common/platform/api/quiche_test.h" |
| TEST(StringDataSourceTest, EmptyString) { |
| StringDataSource source(""); |
| EXPECT_EQ(source.state(), DataSource::DONE); |
| EXPECT_THAT(source.NextData(), testing::IsEmpty()); |
| TEST(StringDataSourceTest, PartialConsume) { |
| StringDataSource source("I'm a HTTP message body. Really!"); |
| EXPECT_EQ(source.state(), DataSource::READY); |
| EXPECT_THAT(source.NextData(), testing::Not(testing::IsEmpty())); |
| EXPECT_EQ(source.state(), DataSource::READY); |
| EXPECT_THAT(source.NextData(), testing::StartsWith("HTTP")); |
| EXPECT_EQ(source.state(), DataSource::READY); |
| EXPECT_THAT(source.NextData(), testing::StartsWith("HTTP")); |
| // Consumes more than the remaining bytes available. |
| EXPECT_THAT(source.NextData(), testing::IsEmpty()) |
| << "next data: " << source.NextData(); |
| EXPECT_EQ(source.state(), DataSource::DONE); |