From 442807415b0a4ad675f90dd11a888a4432e508c8 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Tue, 9 Jul 2019 16:20:20 +0700 Subject: [PATCH] add response_timeout test --- untests/curly_tests.cpp | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/untests/curly_tests.cpp b/untests/curly_tests.cpp index b87454b..7bcc594 100644 --- a/untests/curly_tests.cpp +++ b/untests/curly_tests.cpp @@ -449,6 +449,51 @@ TEST_CASE("curly") { } SECTION("binary") { + { + auto resp = net::request_builder() + .url("https://httpbin.org/bytes/5") + .method(net::http_method::GET) + .send().take(); + REQUIRE(resp.http_code() == 200u); + REQUIRE(resp.content.size() == 5u); + REQUIRE(resp.headers.count("Content-Type")); + REQUIRE(resp.headers.count("Content-Length")); + REQUIRE(resp.headers.at("Content-Type") == "application/octet-stream"); + REQUIRE(resp.headers.at("Content-Length") == "5"); + } + { + auto resp = net::request_builder() + .url("http://httpbin.org/drip?duration=2&numbytes=5&code=200&delay=1") + .method(net::http_method::GET) + .send().take(); + REQUIRE(resp.http_code() == 200u); + REQUIRE(resp.content.size() == 5u); + REQUIRE(resp.headers.count("Content-Type")); + REQUIRE(resp.headers.count("Content-Length")); + REQUIRE(resp.headers.at("Content-Type") == "application/octet-stream"); + REQUIRE(resp.headers.at("Content-Length") == "5"); + } + { + auto req = net::request_builder() + .url("http://httpbin.org/drip?duration=15&numbytes=5&code=200&delay=1") + .method(net::http_method::GET) + .response_timeout(net::time_sec_t(3)) + .send(); + REQUIRE(req.wait_for(net::time_sec_t(1)) == net::req_status::pending); + REQUIRE(req.wait_for(net::time_sec_t(5)) == net::req_status::timeout); + } + { + auto resp = net::request_builder() + .url("http://httpbin.org/base64/SFRUUEJJTiBpcyBhd2Vzb21l") + .method(net::http_method::GET) + .send().take(); + REQUIRE(resp.http_code() == 200u); + REQUIRE(resp.content.as_string_view() == "HTTPBIN is awesome"); + REQUIRE(resp.headers.count("Content-Type")); + REQUIRE(resp.headers.count("Content-Length")); + REQUIRE(resp.headers.at("Content-Type") == "text/html; charset=utf-8"); + REQUIRE(resp.headers.at("Content-Length") == "18"); + } { auto resp = net::request_builder() .url("https://httpbin.org/image/png")