mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-07-17 10:17:09 +02:00
http: Implement HTTPResponse class
HTTP Response message: https://datatracker.ietf.org/doc/html/rfc1945#section-6 Status line (first line of response): https://datatracker.ietf.org/doc/html/rfc1945#section-6.1 Status code definitions: https://datatracker.ietf.org/doc/html/rfc1945#section-9
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include <httpserver.h>
|
||||
#include <rpc/protocol.h>
|
||||
#include <test/util/common.h>
|
||||
#include <test/util/setup_common.h>
|
||||
#include <util/string.h>
|
||||
@@ -10,6 +11,7 @@
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
using http_bitcoin::HTTPHeaders;
|
||||
using http_bitcoin::HTTPResponse;
|
||||
using http_bitcoin::MAX_HEADERS_SIZE;
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(httpserver_tests, BasicTestingSetup)
|
||||
@@ -144,4 +146,23 @@ BOOST_AUTO_TEST_CASE(http_headers_tests)
|
||||
BOOST_CHECK_EQUAL(headers.FindFirst("key"), "value");
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(http_response_tests)
|
||||
{
|
||||
// Typical HTTP 1.1 response headers
|
||||
HTTPHeaders headers{};
|
||||
headers.Write("Content-Length", "41");
|
||||
|
||||
// Response points to headers which already exist because some of them
|
||||
// are set before we even know what the response will be.
|
||||
HTTPResponse res;
|
||||
res.m_version = {.major = 1, .minor = 1};
|
||||
res.m_status = HTTP_OK;
|
||||
res.m_headers = std::move(headers);
|
||||
BOOST_CHECK_EQUAL(
|
||||
res.StringifyHeaders(),
|
||||
"HTTP/1.1 200 OK\r\n"
|
||||
"Content-Length: 41\r\n"
|
||||
"\r\n");
|
||||
}
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user