Add support for chunked HTTP response parsing

This commit is contained in:
Fred Nicolson
2019-11-25 16:29:06 +00:00
parent 41f600cd11
commit 5b2b92835e
10 changed files with 202 additions and 19 deletions
+20
View File
@@ -3,6 +3,7 @@
//
#include <gtest/gtest.h>
#include <gmock/gmock-more-matchers.h>
#include <frnetlib/HttpResponse.h>
TEST(HttpTest, test_request_type_to_string)
@@ -57,4 +58,23 @@ TEST(HttpTest, test_get_mimetype)
ASSERT_EQ(fr::Http::get_mimetype(".html"), "text/html");
ASSERT_EQ(fr::Http::get_mimetype("my_file.html"), "text/html");
ASSERT_EQ(fr::Http::get_mimetype("file.some_random_type"), "application/octet-stream");
}
TEST(HttpTest, test_string_to_transfer_encoding)
{
ASSERT_EQ(fr::Http::string_to_transfer_encoding("chunked"), fr::Http::TransferEncoding::Chunked);
ASSERT_EQ(fr::Http::string_to_transfer_encoding("unknown"), fr::Http::TransferEncoding::None);
ASSERT_EQ(fr::Http::string_to_transfer_encoding("ioudhweauidhgiwuyahfiuywhafyuhgwayufhg"), fr::Http::TransferEncoding::None);
ASSERT_EQ(fr::Http::string_to_transfer_encoding("IDenTITy"), fr::Http::TransferEncoding::Identity);
}
namespace fr
{
TEST(HttpTest, test_string_split)
{
ASSERT_THAT(Http::split_string("chunked\nstuff"), ::testing::ElementsAre("chunked", "stuff"));
ASSERT_THAT(Http::split_string("chunked\n stuff"), ::testing::ElementsAre("chunked", " stuff"));
ASSERT_THAT(Http::split_string("chunked,stuff", ',', false), ::testing::ElementsAre("chunked", "stuff"));
ASSERT_THAT(Http::split_string("chunked, stuff", ',', true), ::testing::ElementsAre("chunked", "stuff"));
}
}