14 TEST(BasicTests, HelloWorldTest) {
15 auto url =
Url{
base +
"/hello.html"};
25 TEST(BasicTests, TimeoutTest) {
26 auto url =
Url{
base +
"/hello.html"};
36 TEST(BasicTests, BasicJsonTest) {
37 auto url =
Url{
base +
"/basic.json"};
41 " \"first_key\": \"first_value\",\n" 42 " \"second_key\": \"second_value\"\n" 52 TEST(BasicTests, ResourceNotFoundTest) {
53 auto url =
Url{
base +
"/error.html"};
55 auto expected_text =
std::string{
"404 Not Found\n"};
63 TEST(BasicTests, BadHostTest) {
64 auto url =
Url{
"http://bad_host/"};
72 TEST(BasicTests, RequestBodyTest) {
73 auto url =
Url{
base +
"/body_get.html"};
84 TEST(CookiesTests, SingleCookieTest) {
85 auto url =
Url{
base +
"/basic_cookies.html"};
86 auto cookies =
Cookies{{
"hello",
"world"}, {
"my",
"another; fake=cookie;"}};
87 auto response =
cpr::Get(url, cookies);
94 cookies = response.cookies;
95 EXPECT_EQ(cookies[
"cookie"], response.cookies[
"cookie"]);
96 EXPECT_EQ(cookies[
"icecream"], response.cookies[
"icecream"]);
97 EXPECT_EQ(cookies[
"expires"], response.cookies[
"expires"]);
100 TEST(CookiesTests, CheckBasicCookieTest) {
102 auto url =
Url{
base +
"/check_cookies.html"};
103 auto cookies =
Cookies{{
"cookie",
"chocolate"}, {
"icecream",
"vanilla"}};
104 auto response =
cpr::Get(url, cookies);
113 TEST(CookiesTests, V1CookieTest) {
114 auto url =
Url{
base +
"/v1_cookies.html"};
122 auto cookies = response.cookies;
123 EXPECT_EQ(
"\"value with spaces (v1 cookie)\"", cookies[
"cookie"]);
126 TEST(CookiesTests, CheckV1CookieTest) {
128 auto url =
Url{
base +
"/check_v1_cookies.html"};
129 auto cookies =
Cookies{{
"cookie",
"\"value with spaces (v1 cookie)\""}};
130 auto response =
cpr::Get(url, cookies);
139 TEST(ParameterTests, SingleParameterTest) {
140 auto url =
Url{
base +
"/hello.html"};
141 auto parameters =
Parameters{{
"key",
"value"}};
142 auto response =
cpr::Get(url, parameters);
151 TEST(ParameterTests, SingleParameterOnlyKeyTest) {
152 auto url =
Url{
base +
"/hello.html"};
154 auto response =
cpr::Get(url, parameters);
162 TEST(ParameterTests, MultipleParametersTest) {
163 auto url =
Url{
base +
"/hello.html"};
169 EXPECT_EQ(
Url{url +
"?key=value&hello=world&test=case"}, response.url);
175 TEST(ParameterTests, MultipleDynamicParametersTest) {
176 auto url =
Url{
base +
"/hello.html"};
177 auto parameters =
Parameters{{
"key",
"value"}};
179 parameters.AddParameter({
"test",
"case"});
180 auto response =
cpr::Get(url, parameters);
183 EXPECT_EQ(
Url{url +
"?key=value&hello=world&test=case"}, response.url);
189 TEST(BasicAuthenticationTests, BasicAuthenticationSuccessTest) {
190 auto url =
Url{
base +
"/basic_auth.html"};
192 auto expected_text =
std::string{
"Header reflect GET"};
200 TEST(BasicAuthenticationTests, BasicDigestSuccessTest) {
201 auto url =
Url{
base +
"/digest_auth.html"};
203 auto expected_text =
std::string{
"Header reflect GET"};
211 TEST(BasicAthenticationParameterTests, BasicAuthenticationSuccessSingleParameterTest) {
212 auto url =
Url{
base +
"/basic_auth.html"};
215 auto expected_text =
std::string{
"Header reflect GET"};
223 TEST(BasicAuthenticationParameterTests, BasicAuthenticationSuccessMultipleParametersTest) {
224 auto url =
Url{
base +
"/basic_auth.html"};
226 Parameters{{
"key",
"value"}, {
"hello",
"world"}, {
"test",
"case"}});
227 auto expected_text =
std::string{
"Header reflect GET"};
229 EXPECT_EQ(
Url{url +
"?key=value&hello=world&test=case"}, response.url);
235 TEST(BasicAuthenticationParameterTests, BasicAuthenticationSuccessSingleParameterReverseTest) {
236 auto url =
Url{
base +
"/basic_auth.html"};
239 auto expected_text =
std::string{
"Header reflect GET"};
247 TEST(BasicAuthenticationParameterTests, BasicAuthenticationSuccessMultipleParametersReverseTest) {
248 auto url =
Url{
base +
"/basic_auth.html"};
254 auto expected_text =
std::string{
"Header reflect GET"};
256 EXPECT_EQ(
Url{url +
"?key=value&hello=world&test=case"}, response.url);
262 TEST(BasicAuthenticationHeaderTests, BasicAuthenticationSuccessSingleHeaderTest) {
263 auto url =
Url{
base +
"/basic_auth.html"};
265 Header{{
"hello",
"world"}});
266 auto expected_text =
std::string{
"Header reflect GET"};
275 TEST(BasicAuthenticationHeaderTests, BasicAuthenticationSuccessMultipleHeadersTest) {
276 auto url =
Url{
base +
"/basic_auth.html"};
278 Header{{
"key",
"value"}, {
"hello",
"world"}, {
"test",
"case"}});
279 auto expected_text =
std::string{
"Header reflect GET"};
290 TEST(BasicAuthenticationHeaderTests, BasicAuthenticationSuccessSingleHeaderReverseTest) {
291 auto url =
Url{
base +
"/basic_auth.html"};
294 auto expected_text =
std::string{
"Header reflect GET"};
303 TEST(BasicAuthenticationHeaderTests, BasicAuthenticationSuccessMultipleHeadersReverseTest) {
304 auto url =
Url{
base +
"/basic_auth.html"};
305 auto response =
cpr::Get(url,
Header{{
"key",
"value"}, {
"hello",
"world"}, {
"test",
"case"}},
307 auto expected_text =
std::string{
"Header reflect GET"};
318 TEST(BasicAuthenticationTests, BasicAuthenticationNullFailureTest) {
319 auto url =
Url{
base +
"/basic_auth.html"};
328 TEST(BasicAuthenticationTests, BasicAuthenticationFailureTest) {
329 auto url =
Url{
base +
"/basic_auth.html"};
338 TEST(BasicAuthenticationParameterTests, BasicAuthenticationFailureSingleParameterTest) {
339 auto url =
Url{
base +
"/basic_auth.html"};
349 TEST(BasicAuthenticationParameterTests, BasicAuthenticationFailureMultipleParametersTest) {
350 auto url =
Url{
base +
"/basic_auth.html"};
352 Parameters{{
"key",
"value"}, {
"hello",
"world"}, {
"test",
"case"}});
354 EXPECT_EQ(
Url{url +
"?key=value&hello=world&test=case"}, response.url);
360 TEST(HeaderTests, HeaderJsonTest) {
361 auto url =
Url{
base +
"/basic.json"};
362 auto response =
cpr::Get(url,
Header{{
"content-type",
"application/json"}});
365 " \"first_key\": \"first_value\",\n" 366 " \"second_key\": \"second_value\"\n" 376 TEST(HeaderTests, HeaderReflectNoneTest) {
377 auto url =
Url{
base +
"/header_reflect.html"};
379 auto expected_text =
std::string{
"Header reflect GET"};
388 TEST(HeaderTests, HeaderReflectEmptyTest) {
389 auto url =
Url{
base +
"/header_reflect.html"};
391 auto expected_text =
std::string{
"Header reflect GET"};
400 TEST(HeaderTests, HeaderReflectSingleTest) {
401 auto url =
Url{
base +
"/header_reflect.html"};
403 auto expected_text =
std::string{
"Header reflect GET"};
412 TEST(HeaderTests, HeaderReflectMultipleTest) {
413 auto url =
Url{
base +
"/header_reflect.html"};
414 auto response =
cpr::Get(url,
Header{{
"hello",
"world"}, {
"key",
"value"}, {
"test",
"case"}});
415 auto expected_text =
std::string{
"Header reflect GET"};
426 TEST(HeaderTests, HeaderReflectCaseInsensitiveTest) {
427 auto url =
Url{
base +
"/header_reflect.html"};
429 auto expected_text =
std::string{
"Header reflect GET"};
440 TEST(HeaderTests, SetEmptyHeaderTest) {
441 auto url =
Url{
base +
"/header_reflect.html"};
443 auto expected_text =
std::string{
"Header reflect GET"};
452 TEST(ParameterHeaderTests, HeaderReflectNoneParametersTest) {
453 auto url =
Url{
base +
"/header_reflect.html"};
454 auto response =
cpr::Get(url,
Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}});
455 auto expected_text =
std::string{
"Header reflect GET"};
457 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
464 TEST(ParameterHeaderTests, HeaderReflectEmptyParametersTest) {
465 auto url =
Url{
base +
"/header_reflect.html"};
467 Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}});
468 auto expected_text =
std::string{
"Header reflect GET"};
470 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
477 TEST(ParameterHeaderTests, HeaderReflectSingleParametersTest) {
478 auto url =
Url{
base +
"/header_reflect.html"};
480 Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}});
481 auto expected_text =
std::string{
"Header reflect GET"};
483 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
490 TEST(ParameterHeaderTests, HeaderReflectMultipleParametersTest) {
491 auto url =
Url{
base +
"/header_reflect.html"};
492 auto response =
cpr::Get(url,
Header{{
"hello",
"world"}, {
"key",
"value"}, {
"test",
"case"}},
493 Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}});
494 auto expected_text =
std::string{
"Header reflect GET"};
496 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
505 TEST(ParameterHeaderTests, HeaderReflectCaseInsensitiveParametersTest) {
506 auto url =
Url{
base +
"/header_reflect.html"};
508 Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}});
509 auto expected_text =
std::string{
"Header reflect GET"};
511 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
520 TEST(ParameterHeaderTests, HeaderReflectEmptyParametersReverseTest) {
521 auto url =
Url{
base +
"/header_reflect.html"};
522 auto response =
cpr::Get(url,
Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}},
524 auto expected_text =
std::string{
"Header reflect GET"};
526 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
533 TEST(ParameterHeaderTests, HeaderReflectSingleParametersReverseTest) {
534 auto url =
Url{
base +
"/header_reflect.html"};
535 auto response =
cpr::Get(url,
Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}},
536 Header{{
"hello",
"world"}});
537 auto expected_text =
std::string{
"Header reflect GET"};
539 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
546 TEST(ParameterHeaderTests, HeaderReflectMultipleParametersReverseTest) {
547 auto url =
Url{
base +
"/header_reflect.html"};
548 auto response =
cpr::Get(url,
Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}},
549 Header{{
"hello",
"world"}, {
"key",
"value"}, {
"test",
"case"}});
550 auto expected_text =
std::string{
"Header reflect GET"};
552 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
561 TEST(ParameterHeaderTests, HeaderReflectCaseInsensitiveParametersReverseTest) {
562 auto url =
Url{
base +
"/header_reflect.html"};
563 auto response =
cpr::Get(url,
Parameters{{
"one",
"two"}, {
"three",
"four"}, {
"five",
"six"}},
564 Header{{
"HeLlO",
"wOrLd"}});
565 auto expected_text =
std::string{
"Header reflect GET"};
567 EXPECT_EQ(
Url{url +
"?one=two&three=four&five=six"}, response.url);
576 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderAATest) {
577 auto url =
Url{
base +
"/basic_auth.html"};
579 auto expected_text =
std::string{
"Header reflect GET"};
588 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderABTest) {
589 auto url =
Url{
base +
"/basic_auth.html"};
599 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderACTest) {
600 auto url =
Url{
base +
"/basic_auth.html"};
603 auto expected_text =
std::string{
"Header reflect GET"};
612 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderADTest) {
613 auto url =
Url{
base +
"/basic_auth.html"};
624 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderAETest) {
625 auto url =
Url{
base +
"/basic_auth.html"};
627 Header{{
"hello",
"world"}});
628 auto expected_text =
std::string{
"Header reflect GET"};
637 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderAFTest) {
638 auto url =
Url{
base +
"/basic_auth.html"};
640 Header{{
"hello",
"world"}});
649 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderAGTest) {
650 auto url =
Url{
base +
"/basic_auth.html"};
652 Header{{
"hello",
"world"}});
653 auto expected_text =
std::string{
"Header reflect GET"};
662 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderAHTest) {
663 auto url =
Url{
base +
"/basic_auth.html"};
674 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBATest) {
675 auto url =
Url{
base +
"/basic_auth.html"};
677 auto expected_text =
std::string{
"Header reflect GET"};
686 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBBTest) {
687 auto url =
Url{
base +
"/basic_auth.html"};
697 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBCTest) {
698 auto url =
Url{
base +
"/basic_auth.html"};
701 auto expected_text =
std::string{
"Header reflect GET"};
710 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBDTest) {
711 auto url =
Url{
base +
"/basic_auth.html"};
722 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBETest) {
723 auto url =
Url{
base +
"/basic_auth.html"};
726 auto expected_text =
std::string{
"Header reflect GET"};
735 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBFTest) {
736 auto url =
Url{
base +
"/basic_auth.html"};
747 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBGTest) {
748 auto url =
Url{
base +
"/basic_auth.html"};
751 auto expected_text =
std::string{
"Header reflect GET"};
760 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderBHTest) {
761 auto url =
Url{
base +
"/basic_auth.html"};
772 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCATest) {
773 auto url =
Url{
base +
"/basic_auth.html"};
775 auto expected_text =
std::string{
"Header reflect GET"};
784 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCBTest) {
785 auto url =
Url{
base +
"/basic_auth.html"};
795 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCCTest) {
796 auto url =
Url{
base +
"/basic_auth.html"};
799 auto expected_text =
std::string{
"Header reflect GET"};
808 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCDTest) {
809 auto url =
Url{
base +
"/basic_auth.html"};
820 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCETest) {
821 auto url =
Url{
base +
"/basic_auth.html"};
824 auto expected_text =
std::string{
"Header reflect GET"};
833 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCFTest) {
834 auto url =
Url{
base +
"/basic_auth.html"};
845 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCGTest) {
846 auto url =
Url{
base +
"/basic_auth.html"};
849 auto expected_text =
std::string{
"Header reflect GET"};
858 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderCHTest) {
859 auto url =
Url{
base +
"/basic_auth.html"};
870 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDATest) {
871 auto url =
Url{
base +
"/basic_auth.html"};
873 auto expected_text =
std::string{
"Header reflect GET"};
882 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDBTest) {
883 auto url =
Url{
base +
"/basic_auth.html"};
893 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDCTest) {
894 auto url =
Url{
base +
"/basic_auth.html"};
897 auto expected_text =
std::string{
"Header reflect GET"};
906 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDDTest) {
907 auto url =
Url{
base +
"/basic_auth.html"};
918 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDETest) {
919 auto url =
Url{
base +
"/basic_auth.html"};
922 auto expected_text =
std::string{
"Header reflect GET"};
931 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDFTest) {
932 auto url =
Url{
base +
"/basic_auth.html"};
943 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDGTest) {
944 auto url =
Url{
base +
"/basic_auth.html"};
947 auto expected_text =
std::string{
"Header reflect GET"};
956 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderDHTest) {
957 auto url =
Url{
base +
"/basic_auth.html"};
968 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEATest) {
969 auto url =
Url{
base +
"/basic_auth.html"};
971 auto expected_text =
std::string{
"Header reflect GET"};
980 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEBTest) {
981 auto url =
Url{
base +
"/basic_auth.html"};
991 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderECTest) {
992 auto url =
Url{
base +
"/basic_auth.html"};
994 auto expected_text =
std::string{
"Header reflect GET"};
1003 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEDTest) {
1004 auto url =
Url{
base +
"/basic_auth.html"};
1014 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEETest) {
1015 auto url =
Url{
base +
"/basic_auth.html"};
1017 auto expected_text =
std::string{
"Header reflect GET"};
1018 EXPECT_EQ(expected_text, response.text);
1026 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEFTest) {
1027 auto url =
Url{
base +
"/basic_auth.html"};
1037 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEGTest) {
1038 auto url =
Url{
base +
"/basic_auth.html"};
1040 auto expected_text =
std::string{
"Header reflect GET"};
1041 EXPECT_EQ(expected_text, response.text);
1049 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderEHTest) {
1050 auto url =
Url{
base +
"/basic_auth.html"};
1060 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFATest) {
1061 auto url =
Url{
base +
"/basic_auth.html"};
1063 auto expected_text =
std::string{
"Header reflect GET"};
1064 EXPECT_EQ(expected_text, response.text);
1072 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFBTest) {
1073 auto url =
Url{
base +
"/basic_auth.html"};
1083 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFCTest) {
1084 auto url =
Url{
base +
"/basic_auth.html"};
1086 auto expected_text =
std::string{
"Header reflect GET"};
1087 EXPECT_EQ(expected_text, response.text);
1095 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFDTest) {
1096 auto url =
Url{
base +
"/basic_auth.html"};
1106 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFETest) {
1107 auto url =
Url{
base +
"/basic_auth.html"};
1109 auto expected_text =
std::string{
"Header reflect GET"};
1110 EXPECT_EQ(expected_text, response.text);
1118 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFFTest) {
1119 auto url =
Url{
base +
"/basic_auth.html"};
1129 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFGTest) {
1130 auto url =
Url{
base +
"/basic_auth.html"};
1132 auto expected_text =
std::string{
"Header reflect GET"};
1133 EXPECT_EQ(expected_text, response.text);
1141 TEST(BasicAuthenticationParameterHeaderTests, BasicAuthenticationParameterHeaderFHTest) {
1142 auto url =
Url{
base +
"/basic_auth.html"};
1152 TEST(GetRedirectTests, RedirectTest) {
1153 auto url =
Url{
base +
"/temporary_redirect.html"};
1154 auto response =
cpr::Get(url,
false);
1156 EXPECT_EQ(expected_text, response.text);
1163 TEST(GetRedirectTests, ZeroMaxRedirectsTest) {
1164 auto url =
Url{
base +
"/hello.html"};
1167 EXPECT_EQ(expected_text, response.text);
Environment * AddGlobalTestEnvironment(Environment *env)
void AddParameter(const Parameter ¶meter)
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
int main(int argc, char **argv)
#define EXPECT_EQ(expected, actual)
TEST(BasicTests, HelloWorldTest)
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
GTEST_API_ void InitGoogleTest(int *argc, char **argv)