This commit is contained in:
yhirose committed 2026-01-16 11:29:09 -05:00
1 parent cea018f2cd
commit b85aa76bd2
1 file changed
+27 -18
+27 -18
View File
@@ -27,6 +27,15 @@
#include <type_traits> #include <type_traits>
#include <vector> #include <vector>
#if __cplusplus >= 202002L
inline std::string u8_to_string(const char8_t *s) {
return std::string(reinterpret_cast<const char *>(s));
}
#define U8(x) u8_to_string(u8##x)
#else
#define U8(x) u8##x
#endif
#define SERVER_CERT_FILE "./cert.pem" #define SERVER_CERT_FILE "./cert.pem"
#define SERVER_CERT2_FILE "./cert2.pem" #define SERVER_CERT2_FILE "./cert2.pem"
#define SERVER_PRIVATE_KEY_FILE "./key.pem" #define SERVER_PRIVATE_KEY_FILE "./key.pem"
@@ -372,7 +381,7 @@ TEST(DecodePathTest, PercentCharacter) {
EXPECT_EQ( EXPECT_EQ(
decode_path_component( decode_path_component(
R"(descrip=Gastos%20%C3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%B1%C3%91%206)"), R"(descrip=Gastos%20%C3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%B1%C3%91%206)"),
u8"descrip=Gastos áéíóúñÑ 6"); U8("descrip=Gastos áéíóúñÑ 6"));
} }
TEST(DecodePathTest, PercentCharacterNUL) { TEST(DecodePathTest, PercentCharacterNUL) {
@@ -430,9 +439,9 @@ TEST(ClientQueryOrder, PreserveOrder) {
} }
TEST(EncodeQueryParamTest, TestUTF8Characters) { TEST(EncodeQueryParamTest, TestUTF8Characters) {
string chineseCharacters = u8"中国語"; string chineseCharacters = U8("中国語");
string russianCharacters = u8"дом"; string russianCharacters = U8("дом");
string brazilianCharacters = u8"óculos"; string brazilianCharacters = U8("óculos");
EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), EXPECT_EQ(httplib::encode_uri_component(chineseCharacters),
"%E4%B8%AD%E5%9B%BD%E8%AA%9E"); "%E4%B8%AD%E5%9B%BD%E8%AA%9E");
@@ -457,9 +466,9 @@ TEST(EncodeUriComponentTest, ParseReservedCharactersTest) {
} }
TEST(EncodeUriComponentTest, TestUTF8Characters) { TEST(EncodeUriComponentTest, TestUTF8Characters) {
string chineseCharacters = u8"中国語"; string chineseCharacters = U8("中国語");
string russianCharacters = u8"дом"; string russianCharacters = U8("дом");
string brazilianCharacters = u8"óculos"; string brazilianCharacters = U8("óculos");
EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), EXPECT_EQ(httplib::encode_uri_component(chineseCharacters),
"%E4%B8%AD%E5%9B%BD%E8%AA%9E"); "%E4%B8%AD%E5%9B%BD%E8%AA%9E");
@@ -491,9 +500,9 @@ TEST(EncodeUriTest, ParseReservedCharactersTest) {
} }
TEST(EncodeUriTest, TestUTF8Characters) { TEST(EncodeUriTest, TestUTF8Characters) {
string chineseCharacters = u8"中国語"; string chineseCharacters = U8("中国語");
string russianCharacters = u8"дом"; string russianCharacters = U8("дом");
string brazilianCharacters = u8"óculos"; string brazilianCharacters = U8("óculos");
EXPECT_EQ(httplib::encode_uri(chineseCharacters), EXPECT_EQ(httplib::encode_uri(chineseCharacters),
"%E4%B8%AD%E5%9B%BD%E8%AA%9E"); "%E4%B8%AD%E5%9B%BD%E8%AA%9E");
@@ -538,9 +547,9 @@ TEST(DecodeUriComponentTest, TestUTF8Characters) {
string encodedRussian = "%D0%B4%D0%BE%D0%BC"; string encodedRussian = "%D0%B4%D0%BE%D0%BC";
string encodedBrazilian = "%C3%B3culos"; string encodedBrazilian = "%C3%B3culos";
EXPECT_EQ(httplib::decode_uri_component(encodedChinese), u8"中国語"); EXPECT_EQ(httplib::decode_uri_component(encodedChinese), U8("中国語"));
EXPECT_EQ(httplib::decode_uri_component(encodedRussian), u8"дом"); EXPECT_EQ(httplib::decode_uri_component(encodedRussian), U8("дом"));
EXPECT_EQ(httplib::decode_uri_component(encodedBrazilian), u8"óculos"); EXPECT_EQ(httplib::decode_uri_component(encodedBrazilian), U8("óculos"));
} }
TEST(DecodeUriComponentTest, TestPathComponentDecoding) { TEST(DecodeUriComponentTest, TestPathComponentDecoding) {
@@ -567,9 +576,9 @@ TEST(DecodeUriTest, TestUTF8Characters) {
string encodedRussian = "%D0%B4%D0%BE%D0%BC"; string encodedRussian = "%D0%B4%D0%BE%D0%BC";
string encodedBrazilian = "%C3%B3culos"; string encodedBrazilian = "%C3%B3culos";
EXPECT_EQ(httplib::decode_uri(encodedChinese), u8"中国語"); EXPECT_EQ(httplib::decode_uri(encodedChinese), U8("中国語"));
EXPECT_EQ(httplib::decode_uri(encodedRussian), u8"дом"); EXPECT_EQ(httplib::decode_uri(encodedRussian), U8("дом"));
EXPECT_EQ(httplib::decode_uri(encodedBrazilian), u8"óculos"); EXPECT_EQ(httplib::decode_uri(encodedBrazilian), U8("óculos"));
} }
TEST(DecodeUriTest, TestCompleteUri) { TEST(DecodeUriTest, TestCompleteUri) {
@@ -7422,10 +7431,10 @@ TEST(MountTest, MultibytesPathName) {
Client cli("localhost", PORT); Client cli("localhost", PORT);
auto res = cli.Get(u8"/日本語Dir/日本語File.txt"); auto res = cli.Get(U8("/日本語Dir/日本語File.txt"));
ASSERT_TRUE(res); ASSERT_TRUE(res);
EXPECT_EQ(StatusCode::OK_200, res->status); EXPECT_EQ(StatusCode::OK_200, res->status);
EXPECT_EQ(u8"日本語コンテンツ", res->body); EXPECT_EQ(U8("日本語コンテンツ"), res->body);
} }
TEST(KeepAliveTest, ReadTimeout) { TEST(KeepAliveTest, ReadTimeout) {