util_tests.cpp
Go to the documentation of this file.
1 #include <gtest/gtest.h>
2 
3 #include <string>
4 
5 #include <cpr/cprtypes.h>
6 #include <cpr/util.h>
7 
8 using namespace cpr;
9 
10 TEST(UtilParseHeaderTests, BasicParseTest) {
11  auto header_string = std::string{
12  "HTTP/1.1 200 OK\r\n"
13  "Server: nginx\r\n"
14  "Date: Sun, 05 Mar 2017 00:34:54 GMT\r\n"
15  "Content-Type: application/json\r\n"
16  "Content-Length: 351\r\n"
17  "Connection: keep-alive\r\n"
18  "Access-Control-Allow-Origin: *\r\n"
19  "Access-Control-Allow-Credentials: true\r\n"
20  "\r\n"};
21  auto header = util::parseHeader(header_string);
22  EXPECT_EQ(std::string{"nginx"}, header["Server"]);
23  EXPECT_EQ(std::string{"Sun, 05 Mar 2017 00:34:54 GMT"}, header["Date"]);
24  EXPECT_EQ(std::string{"application/json"}, header["Content-Type"]);
25  EXPECT_EQ(std::string{"351"}, header["Content-Length"]);
26  EXPECT_EQ(std::string{"keep-alive"}, header["Connection"]);
27  EXPECT_EQ(std::string{"*"}, header["Access-Control-Allow-Origin"]);
28  EXPECT_EQ(std::string{"true"}, header["Access-Control-Allow-Credentials"]);
29 }
30 
31 TEST(UtilParseHeaderTests, NewlineTest) {
32  auto header_string = std::string{
33  "HTTP/1.1 200 OK\r\n"
34  "Auth:\n"
35  "Access-Control-Allow-Credentials: true\r\n"
36  "\r\n"};
37  auto header = util::parseHeader(header_string);
38  EXPECT_EQ(std::string{""}, header["Server"]);
39  EXPECT_EQ(std::string{"true"}, header["Access-Control-Allow-Credentials"]);
40 }
41 
42 TEST(UtilParseHeaderTests, SpaceNewlineTest) {
43  auto header_string = std::string{
44  "HTTP/1.1 200 OK\r\n"
45  "Auth: \n"
46  "Access-Control-Allow-Credentials: true\r\n"
47  "\r\n"};
48  auto header = util::parseHeader(header_string);
49  EXPECT_EQ(std::string{""}, header["Server"]);
50  EXPECT_EQ(std::string{"true"}, header["Access-Control-Allow-Credentials"]);
51 }
52 
53 TEST(UtilParseHeaderTests, CarriageReturnNewlineTest) {
54  auto header_string = std::string{
55  "HTTP/1.1 200 OK\n"
56  "Auth:\r\n"
57  "Access-Control-Allow-Credentials: true\r\n"
58  "\r\n"};
59  auto header = util::parseHeader(header_string);
60  EXPECT_EQ(std::string{""}, header["Server"]);
61  EXPECT_EQ(std::string{"true"}, header["Access-Control-Allow-Credentials"]);
62 }
63 
64 TEST(UtilParseHeaderTests, SpaceCarriageReturnNewlineTest) {
65  auto header_string = std::string{
66  "HTTP/1.1 200 OK\n"
67  "Auth: \r\n"
68  "Access-Control-Allow-Credentials: true\r\n"
69  "\r\n"};
70  auto header = util::parseHeader(header_string);
71  EXPECT_EQ(std::string{""}, header["Server"]);
72  EXPECT_EQ(std::string{"true"}, header["Access-Control-Allow-Credentials"]);
73 }
74 
75 int main(int argc, char** argv) {
76  ::testing::InitGoogleTest(&argc, argv);
77  return RUN_ALL_TESTS();
78 }
::std::string string
Definition: gtest-port.h:1129
int main(int argc, char **argv)
Definition: util_tests.cpp:75
#define EXPECT_EQ(expected, actual)
Definition: gtest.h:2015
Definition: auth.cpp:3
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: gtest.h:2325
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: gtest.cc:5292
TEST(UtilParseHeaderTests, BasicParseTest)
Definition: util_tests.cpp:10
Header parseHeader(const std::string &headers)
Definition: util.cpp:14


rc_tagdetect_client
Author(s): Monika Florek-Jasinska , Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:17