Add BalsaFrame test for HTTP/0.9 request.
PiperOrigin-RevId: 504315827
diff --git a/quiche/balsa/balsa_frame_test.cc b/quiche/balsa/balsa_frame_test.cc
index 4618bbc..4b8f365 100644
--- a/quiche/balsa/balsa_frame_test.cc
+++ b/quiche/balsa/balsa_frame_test.cc
@@ -3751,6 +3751,32 @@
EXPECT_EQ(BalsaFrameEnums::BALSA_NO_ERROR, balsa_frame_.ErrorCode());
}
+TEST_F(HTTPBalsaFrameTest, Http09) {
+ constexpr absl::string_view request = "GET /\r\n";
+
+ InSequence s;
+ StrictMock<BalsaVisitorMock> visitor_mock;
+ balsa_frame_.set_balsa_visitor(&visitor_mock);
+
+ EXPECT_CALL(
+ visitor_mock,
+ HandleWarning(
+ BalsaFrameEnums::FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI));
+ EXPECT_CALL(visitor_mock, OnRequestFirstLineInput("GET /", "GET", "/", ""));
+ EXPECT_CALL(visitor_mock, OnHeaderInput(request));
+ EXPECT_CALL(visitor_mock, ProcessHeaders(FakeHeaders{}));
+ EXPECT_CALL(visitor_mock, HeaderDone());
+ EXPECT_CALL(visitor_mock, MessageDone());
+
+ EXPECT_EQ(request.size(),
+ balsa_frame_.ProcessInput(request.data(), request.size()));
+
+ // HTTP/0.9 request is parsed with a warning.
+ EXPECT_FALSE(balsa_frame_.Error());
+ EXPECT_EQ(BalsaFrameEnums::FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI,
+ balsa_frame_.ErrorCode());
+}
+
} // namespace
} // namespace test