2018-03-07 18:26:51 -08:00
|
|
|
#include "catch.hpp"
|
|
|
|
#include "Buffer.h"
|
|
|
|
#include "RequestParser.h"
|
|
|
|
using Catch::Matchers::Equals;
|
|
|
|
|
|
|
|
TEST_CASE("Test GET","[RequestParser]")
|
|
|
|
{
|
|
|
|
uint8_t _buff[256] = {};
|
|
|
|
Buffer client(_buff, 256);
|
|
|
|
HttpRequest request;
|
|
|
|
RequestParser parser(request, client);
|
|
|
|
|
|
|
|
client.write("GET ");
|
|
|
|
CHECK(parser.parse() == 0);
|
|
|
|
CHECK_THAT(request.getMethod(), Equals("GET"));
|
|
|
|
|
|
|
|
client.write("/foo ");
|
|
|
|
CHECK(parser.parse() == 0);
|
|
|
|
CHECK_THAT(request.getUrl(), Equals("/foo"));
|
|
|
|
|
|
|
|
client.write("HTTP/1.1\r\n");
|
|
|
|
CHECK(parser.parse() == 0);
|
2018-03-20 17:48:33 -07:00
|
|
|
CHECK_THAT(request.getHttpVersion(), Equals("HTTP/1.1"));
|
2018-03-07 18:26:51 -08:00
|
|
|
|
|
|
|
client.write("Host: localhost\r\n");
|
|
|
|
CHECK(parser.parse() == 0);
|
|
|
|
CHECK_THAT(request.headers.get("Host"), Equals("localhost"));
|
|
|
|
|
|
|
|
client.write("\r\n");
|
|
|
|
CHECK(parser.parse());
|
|
|
|
CHECK(!parser.error());
|
|
|
|
}
|
2018-03-08 16:36:47 -08:00
|
|
|
TEST_CASE("Test message data","[RequestParser]")
|
|
|
|
{
|
|
|
|
uint8_t _buff[256] = {};
|
|
|
|
Buffer client(_buff, 256);
|
|
|
|
HttpRequest request;
|
|
|
|
RequestParser parser(request, client);
|
|
|
|
|
|
|
|
client.write("POST /foo HTTP/1.1\r\nHost: localhost\r\nContent-Length: 10\r\n\r\n1234567890");
|
|
|
|
CHECK(parser.parse());
|
|
|
|
CHECK(request.getMessageLength() == 10);
|
|
|
|
CHECK_THAT(request.getMessage(), Equals("1234567890"));
|
|
|
|
}
|
2018-03-17 10:51:16 -07:00
|
|
|
|
|
|
|
TEST_CASE("Test parse multiple requests","[RequestParser]")
|
|
|
|
{
|
|
|
|
uint8_t buff[256] = {};
|
|
|
|
Buffer client(buff, 256);
|
|
|
|
HttpRequest request;
|
|
|
|
RequestParser parser(request, client);
|
|
|
|
|
|
|
|
client.write("GET /foo HTTP/1.1\r\nHost: localhost\r\n\r\n");
|
|
|
|
CHECK(parser.parse());
|
|
|
|
CHECK_THAT(request.getUrl(), Equals("/foo"));
|
|
|
|
parser.reset();
|
|
|
|
|
|
|
|
client = Buffer(buff, 256);
|
|
|
|
request = HttpRequest();
|
|
|
|
client.write("GET /bar HTTP/1.1\r\nHost: localhost\r\n\r\n");
|
|
|
|
CHECK(parser.parse());
|
|
|
|
CHECK_THAT(request.getUrl(), Equals("/bar"));
|
|
|
|
|
|
|
|
}
|