2018-02-15 08:37:46 -08:00
|
|
|
#include "catch.hpp"
|
|
|
|
#include "HttpRequest.h"
|
|
|
|
#include <iostream>
|
2018-02-25 16:55:00 -08:00
|
|
|
#include "DummyStream.h"
|
2018-02-15 08:37:46 -08:00
|
|
|
|
|
|
|
using Catch::Matchers::Equals;
|
2018-11-29 11:16:44 -08:00
|
|
|
|
2018-02-15 08:37:46 -08:00
|
|
|
|
2018-02-19 10:13:06 -08:00
|
|
|
TEST_CASE("Test get/set method","[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setMethod("POST");
|
|
|
|
CHECK_THAT(req.getMethod(), Equals("POST"));
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("Test get/set url","[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl("/foo");
|
|
|
|
CHECK_THAT(req.getUrl(), Equals("/foo"));
|
|
|
|
}
|
|
|
|
|
2018-11-29 11:16:44 -08:00
|
|
|
TEST_CASE("Set url to nullptr", "[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl(nullptr);
|
|
|
|
bool isnull = (req.getUrl() == nullptr);
|
|
|
|
CHECK(isnull);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("Set url multiple times", "[HttpRequest][HttpRequest::setUrl]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl("/foo");
|
|
|
|
req.setUrl("/barbaz");
|
|
|
|
CHECK_THAT(req.getUrl(), Equals("/barbaz"));
|
|
|
|
}
|
|
|
|
|
2018-02-21 18:11:19 -08:00
|
|
|
TEST_CASE("Test get/set short url", "[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl("/");
|
|
|
|
CHECK(strcmp(req.getUrl(),"/") == 0);
|
|
|
|
}
|
|
|
|
|
2018-02-19 10:13:06 -08:00
|
|
|
TEST_CASE("Test get/set message","[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setMessage("FooBarBaz");
|
|
|
|
CHECK_THAT(req.getMessage(), Equals("FooBarBaz"));
|
2018-03-08 16:36:47 -08:00
|
|
|
CHECK(req.getMessageLength() == 9);
|
2018-02-19 10:13:06 -08:00
|
|
|
}
|
2018-03-09 17:08:14 -08:00
|
|
|
|
2018-11-29 11:16:44 -08:00
|
|
|
TEST_CASE("HttpRequest empty reassignment", "[HttpRequest][HttpRequest-reassign]")
|
2018-03-09 17:08:14 -08:00
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl("/");
|
|
|
|
req.setMethod("GET");
|
|
|
|
|
|
|
|
req = HttpRequest();
|
2018-11-29 11:16:44 -08:00
|
|
|
bool isnull = (req.getUrl() == nullptr);
|
|
|
|
CHECK(isnull);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("HttpRequest reassignment", "[HttpRequest][HttpRequest-reassign]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
req.setUrl("/foo/bar");
|
|
|
|
req.setMethod("POST");
|
|
|
|
req.setMessage("foo=bar&baz=qux");
|
|
|
|
req.headers.set("Accept","*/*");
|
|
|
|
|
|
|
|
HttpRequest req2;
|
|
|
|
req2.setUrl("/not/foo");
|
|
|
|
req2.setMethod("GET");
|
|
|
|
req2.headers.set("Content-Type","bar");
|
|
|
|
req2 = req;
|
|
|
|
CHECK_THAT(req2.getMethod(), Equals("POST"));
|
|
|
|
CHECK_THAT(req2.getMessage(), Equals("foo=bar&baz=qux"));
|
|
|
|
CHECK_THAT(req2.getUrl(), Equals("/foo/bar"));
|
|
|
|
CHECK(req2.headers.has("Accept"));
|
|
|
|
CHECK(!req2.headers.has("Content-Type"));
|
|
|
|
CHECK_THAT(req2.headers.get("Accept"), Equals("*/*"));
|
2018-03-09 17:08:14 -08:00
|
|
|
}
|
2018-11-29 18:48:14 -08:00
|
|
|
|
|
|
|
TEST_CASE("Set message multiple times", "[HttpRequest]")
|
|
|
|
{
|
|
|
|
HttpRequest req;
|
|
|
|
|
|
|
|
req.setMessage("foo=bar");
|
|
|
|
CHECK_THAT(req.getMessage(), Equals("foo=bar"));
|
|
|
|
|
|
|
|
req.setMessage("foo=bar&baz");
|
|
|
|
CHECK_THAT(req.getMessage(), Equals("foo=bar&baz"));
|
|
|
|
|
|
|
|
req.setMessage("");
|
|
|
|
CHECK_THAT(req.getMessage(), Equals(""));
|
|
|
|
|
|
|
|
req.setMessage(nullptr);
|
|
|
|
bool isNull = (req.getMessage() == nullptr);
|
|
|
|
CHECK(isNull);
|
|
|
|
}
|