options_tests.cpp
Go to the documentation of this file.
1 #include <gtest/gtest.h>
2 
3 #include <string>
4 
5 #include <cpr/cpr.h>
6 
7 #include "server.h"
8 
9 using namespace cpr;
10 
11 static Server* server = new Server();
12 auto base = server->GetBaseUrl();
13 
14 TEST(OptionsTests, BaseUrlTest) {
15  auto url = Url{base + "/"};
16  auto response = cpr::Options(url);
17  auto expected_text = std::string{""};
18  EXPECT_EQ(expected_text, response.text);
19  EXPECT_EQ(url, response.url);
20  EXPECT_EQ(std::string{"GET, POST, PUT, DELETE, PATCH, OPTIONS"},
21  response.header["Access-Control-Allow-Methods"]);
22  EXPECT_EQ(200, response.status_code);
23  EXPECT_EQ(ErrorCode::OK, response.error.code);
24 }
25 
26 TEST(OptionsTests, SpecificUrlTest) {
27  auto url = Url{base + "/hello.html"};
28  auto response = cpr::Options(url);
29  auto expected_text = std::string{""};
30  EXPECT_EQ(expected_text, response.text);
31  EXPECT_EQ(url, response.url);
32  EXPECT_EQ(std::string{"GET, OPTIONS"},
33  response.header["Access-Control-Allow-Methods"]);
34  EXPECT_EQ(200, response.status_code);
35  EXPECT_EQ(ErrorCode::OK, response.error.code);
36 }
37 
38 TEST(OptionsTests, AsyncBaseUrlTest) {
39  auto url = Url{base + "/"};
40  std::vector<AsyncResponse> responses;
41  for (int i = 0; i < 10; ++i) {
42  responses.emplace_back(cpr::OptionsAsync(url));
43  }
44  for (auto& future_response : responses) {
45  auto response = future_response.get();
46  auto expected_text = std::string{""};
47  EXPECT_EQ(expected_text, response.text);
48  EXPECT_EQ(url, response.url);
49  EXPECT_EQ(std::string{"GET, POST, PUT, DELETE, PATCH, OPTIONS"},
50  response.header["Access-Control-Allow-Methods"]);
51  EXPECT_EQ(200, response.status_code);
52  EXPECT_EQ(ErrorCode::OK, response.error.code);
53  }
54 }
55 
56 TEST(OptionsTests, AsyncSpecificUrlTest) {
57  auto url = Url{base + "/hello.html"};
58  std::vector<AsyncResponse> responses;
59  for (int i = 0; i < 10; ++i) {
60  responses.emplace_back(cpr::OptionsAsync(url));
61  }
62  for (auto& future_response : responses) {
63  auto response = future_response.get();
64  auto expected_text = std::string{""};
65  EXPECT_EQ(expected_text, response.text);
66  EXPECT_EQ(url, response.url);
67  EXPECT_EQ(std::string{"GET, OPTIONS"},
68  response.header["Access-Control-Allow-Methods"]);
69  EXPECT_EQ(200, response.status_code);
70  EXPECT_EQ(ErrorCode::OK, response.error.code);
71  }
72 }
73 
74 int main(int argc, char** argv) {
75  ::testing::InitGoogleTest(&argc, argv);
77  return RUN_ALL_TESTS();
78 }
Environment * AddGlobalTestEnvironment(Environment *env)
Definition: gtest.h:1342
Definition: server.h:12
std::string Url
Definition: cprtypes.h:14
::std::string string
Definition: gtest-port.h:1129
static Server * server
unsigned int i
Definition: unit1303.c:79
AsyncResponse OptionsAsync(Ts...ts)
Definition: api.h:161
int main(int argc, char **argv)
Url GetBaseUrl()
Definition: server.cpp:625
#define EXPECT_EQ(expected, actual)
Definition: gtest.h:2015
auto base
Definition: auth.cpp:3
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: gtest.h:2325
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: gtest.cc:5292
TEST(OptionsTests, BaseUrlTest)
Response Options(Ts &&...ts)
Definition: api.h:153


rc_tagdetect_client
Author(s): Monika Florek-Jasinska , Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:16