HttpParser: Add Reset() function (#1210)

This allows reuse of the HttpParser object for multiple requests.
This commit is contained in:
Peter Johnson
2018-07-22 19:41:23 -07:00
committed by GitHub
parent 794403dcea
commit c25d48fd0c
3 changed files with 39 additions and 0 deletions

View File

@@ -190,4 +190,20 @@ TEST(HttpParserTest, HeadersCompleteUpgrade) {
ASSERT_FALSE(p.HasError());
}
TEST(HttpParserTest, Reset) {
HttpParser p{HttpParser::kRequest};
int callbacks = 0;
p.headersComplete.connect([&](bool) { ++callbacks; });
p.Execute("GET / HTTP/1.1\r\n");
ASSERT_EQ(callbacks, 0);
p.Execute("\r\n");
ASSERT_EQ(callbacks, 1);
p.Reset(HttpParser::kRequest);
p.Execute("GET / HTTP/1.1\r\n");
ASSERT_EQ(callbacks, 1);
p.Execute("\r\n");
ASSERT_EQ(callbacks, 2);
ASSERT_FALSE(p.HasError());
}
} // namespace wpi