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