-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrequest_test.cc
65 lines (51 loc) · 1.99 KB
/
request_test.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "gtest/gtest.h"
#include "request.hpp"
#include <string>
namespace http{
namespace server{
TEST(RequestTest, EmptyRequest)
{
Request empty_request;
EXPECT_EQ(empty_request.raw_request(), "");
EXPECT_EQ(empty_request.method(), "");
EXPECT_EQ(empty_request.uri(), "");
EXPECT_EQ(empty_request.body(), "");
EXPECT_EQ(empty_request.version(), "");
EXPECT_EQ(empty_request.headers().size(), 0);
}
TEST(RequestTest2, ParseRequest)
{
std::string echo_request = "GET /echo/hello.html HTTP/1.1\r\n";
echo_request += "Host: localhost:3000\r\n";
echo_request += "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0\r\n";
echo_request += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
echo_request += "Accept-Language: en-US,en;q=0.5\r\n";
echo_request += "Accept-Encoding: gzip, deflate\r\n";
echo_request += "Connection: keep-alive\r\n";
echo_request += "Upgrade-Insecure-Requests: 1\r\n";
echo_request += "\r\n";
echo_request += "This is a test body.";
std::unique_ptr<Request> request = Request::Parse(echo_request);
EXPECT_EQ(request->raw_request(), echo_request);
EXPECT_EQ(request->method(), "GET");
EXPECT_EQ(request->uri(), "/echo/hello.html");
EXPECT_EQ(request->body(), "This is a test body.");
EXPECT_EQ(request->version(), "HTTP/1.1");
EXPECT_EQ(request->headers().size(), 7);
}
TEST(RequestTest, AcceptGzip)
{
std::string echo_request = "GET /echo/hello.html HTTP/1.1\r\n";
echo_request += "Accept-Encoding: gzip, deflate\r\n";
std::unique_ptr<Request> request = Request::Parse(echo_request);
EXPECT_TRUE(request->accept_gzip());
}
TEST(RequestTest, get_header)
{
std::string echo_request = "GET /echo/hello.html HTTP/1.1\r\n";
echo_request += "Accept-Encoding: gzip, deflate\r\n";
std::unique_ptr<Request> request = Request::Parse(echo_request);
EXPECT_EQ(request->get_header("Accept-Encoding"), "gzip, deflate");
}
} // namespace server
} // namespace http