Let QuicTestBackend accept generic "echo.*" pass

This is required to test declarativeNetRequest API [1] implementation in Chrome.

[1] https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/

PiperOrigin-RevId: 397254686
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 31041fa..6a1c4a8 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -6035,6 +6035,26 @@
   server_thread_->Resume();
 }
 
+TEST_P(EndToEndTest, WebTransportSessionSetupWithEchoWithSuffix) {
+  enable_web_transport_ = true;
+  ASSERT_TRUE(Initialize());
+
+  if (!version_.UsesHttp3()) {
+    return;
+  }
+
+  // "/echoFoo" should be accepted as "echo"
+  WebTransportHttp3* web_transport =
+      CreateWebTransportSession("/echoFoo", /*wait_for_server_response=*/true);
+  ASSERT_NE(web_transport, nullptr);
+
+  server_thread_->Pause();
+  QuicSpdySession* server_session = GetServerSession();
+  EXPECT_TRUE(server_session->GetWebTransportSession(web_transport->id()) !=
+              nullptr);
+  server_thread_->Resume();
+}
+
 TEST_P(EndToEndTest, WebTransportSessionWithLoss) {
   enable_web_transport_ = true;
   // Enable loss to verify all permutations of receiving SETTINGS and
diff --git a/quic/test_tools/quic_test_backend.cc b/quic/test_tools/quic_test_backend.cc
index eb419b6..eed6a1a 100644
--- a/quic/test_tools/quic_test_backend.cc
+++ b/quic/test_tools/quic_test_backend.cc
@@ -33,7 +33,8 @@
     return response;
   }
   absl::string_view path = path_it->second;
-  if (path == "/echo") {
+  // Match any "/echo.*" pass, e.g. "/echo_foobar"
+  if (absl::StartsWith(path, "/echo")) {
     WebTransportResponse response;
     response.response_headers[":status"] = "200";
     response.visitor =