get_all_pending_requests function #26

This commit is contained in:
BlackMATov
2021-02-01 10:33:31 +07:00
parent af7766ec3a
commit cf1a942bf1
3 changed files with 101 additions and 22 deletions

View File

@@ -955,6 +955,68 @@ TEST_CASE("curly/cancel_all_pending_requests") {
}
}
TEST_CASE("curly/get_all_pending_requests") {
SUBCASE("get new requests") {
std::atomic_size_t call_count{0u};
auto req1 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
auto req2 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
std::vector<net::request> requests = net::get_all_pending_requests();
REQUIRE(requests.size() == 2u);
for ( net::request& req : requests ) {
req.cancel();
}
net::perform();
REQUIRE(call_count == 2u);
REQUIRE(req1.status() == net::req_status::cancelled);
REQUIRE(req2.status() == net::req_status::cancelled);
}
SUBCASE("get active requests") {
std::atomic_size_t call_count{0u};
auto req1 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
auto req2 = net::request_builder("https://httpbin.org/delay/2")
.callback([&call_count](net::request request){
REQUIRE(request.status() == net::req_status::cancelled);
++call_count;
}).send();
net::perform();
std::vector<net::request> requests = net::get_all_pending_requests();
REQUIRE(requests.size() == 2u);
for ( net::request& req : requests ) {
req.cancel();
}
net::perform();
REQUIRE(call_count == 2u);
REQUIRE(req1.status() == net::req_status::cancelled);
REQUIRE(req2.status() == net::req_status::cancelled);
}
}
TEST_CASE("curly_examples") {
net::performer performer;