You've already forked cpp-httplib
Fix #1551
This commit is contained in:
116
test/test.cc
116
test/test.cc
@ -2850,6 +2850,20 @@ protected:
|
||||
res.status = StatusCode::NotFound_404;
|
||||
}
|
||||
})
|
||||
.Delete("/person",
|
||||
[&](const Request &req, Response &res) {
|
||||
if (req.has_param("name")) {
|
||||
string name = req.get_param_value("name");
|
||||
if (persons_.find(name) != persons_.end()) {
|
||||
persons_.erase(name);
|
||||
res.set_content("DELETED", "text/plain");
|
||||
} else {
|
||||
res.status = StatusCode::NotFound_404;
|
||||
}
|
||||
} else {
|
||||
res.status = StatusCode::BadRequest_400;
|
||||
}
|
||||
})
|
||||
.Post("/x-www-form-urlencoded-json",
|
||||
[&](const Request &req, Response &res) {
|
||||
auto json = req.get_param_value("json");
|
||||
@ -3562,6 +3576,108 @@ TEST_F(ServerTest, PutMethod3) {
|
||||
ASSERT_EQ("coder", res->body);
|
||||
}
|
||||
|
||||
TEST_F(ServerTest, DeleteMethod1) {
|
||||
auto res = cli_.Get("/person/john4");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
|
||||
Params params;
|
||||
params.emplace("name", "john4");
|
||||
params.emplace("note", "coder");
|
||||
|
||||
res = cli_.Post("/person", params);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
|
||||
res = cli_.Get("/person/john4");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("text/plain", res->get_header_value("Content-Type"));
|
||||
ASSERT_EQ("coder", res->body);
|
||||
|
||||
Params delete_params;
|
||||
delete_params.emplace("name", "john4");
|
||||
|
||||
res = cli_.Delete("/person", delete_params);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("DELETED", res->body);
|
||||
|
||||
res = cli_.Get("/person/john4");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
}
|
||||
|
||||
TEST_F(ServerTest, DeleteMethod2) {
|
||||
auto res = cli_.Get("/person/john5");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
|
||||
Params params;
|
||||
params.emplace("name", "john5");
|
||||
params.emplace("note", "developer");
|
||||
|
||||
res = cli_.Post("/person", params);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
|
||||
res = cli_.Get("/person/john5");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("text/plain", res->get_header_value("Content-Type"));
|
||||
ASSERT_EQ("developer", res->body);
|
||||
|
||||
Params delete_params;
|
||||
delete_params.emplace("name", "john5");
|
||||
|
||||
Headers headers;
|
||||
headers.emplace("Custom-Header", "test-value");
|
||||
|
||||
res = cli_.Delete("/person", headers, delete_params);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("DELETED", res->body);
|
||||
|
||||
res = cli_.Get("/person/john5");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
}
|
||||
|
||||
TEST_F(ServerTest, DeleteMethod3) {
|
||||
auto res = cli_.Get("/person/john6");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
|
||||
Params params;
|
||||
params.emplace("name", "john6");
|
||||
params.emplace("note", "tester");
|
||||
|
||||
res = cli_.Post("/person", params);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
|
||||
res = cli_.Get("/person/john6");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("text/plain", res->get_header_value("Content-Type"));
|
||||
ASSERT_EQ("tester", res->body);
|
||||
|
||||
Params delete_params;
|
||||
delete_params.emplace("name", "john6");
|
||||
|
||||
Headers headers;
|
||||
headers.emplace("Custom-Header", "test-value");
|
||||
|
||||
res = cli_.Delete("/person", headers, delete_params, nullptr);
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::OK_200, res->status);
|
||||
ASSERT_EQ("DELETED", res->body);
|
||||
|
||||
res = cli_.Get("/person/john6");
|
||||
ASSERT_TRUE(res);
|
||||
ASSERT_EQ(StatusCode::NotFound_404, res->status);
|
||||
}
|
||||
|
||||
TEST_F(ServerTest, PostWwwFormUrlEncodedJson) {
|
||||
Params params;
|
||||
params.emplace("json", JSON_DATA);
|
||||
|
Reference in New Issue
Block a user