@@ -1767,6 +1767,40 @@ class ServerTest : public ::testing::Test {
1767
1767
EXPECT_EQ (" application/json tmp-string" , file.content_type );
1768
1768
}
1769
1769
})
1770
+ .Post (" /multipart/multi_file_values" ,
1771
+ [&](const Request &req, Response & /* res*/ ) {
1772
+ EXPECT_EQ (5u , req.files .size ());
1773
+ ASSERT_TRUE (!req.has_file (" ???" ));
1774
+ ASSERT_TRUE (req.body .empty ());
1775
+
1776
+ {
1777
+ const auto &text_value = req.get_file_values (" text" );
1778
+ EXPECT_EQ (text_value.size (), 1 );
1779
+ auto &text = text_value[0 ];
1780
+ EXPECT_TRUE (text.filename .empty ());
1781
+ EXPECT_EQ (" defalut text" , text.content );
1782
+ }
1783
+ {
1784
+ const auto &text1_values = req.get_file_values (" multi_text1" );
1785
+ EXPECT_EQ (text1_values.size (), 2 );
1786
+ EXPECT_EQ (" aaaaa" , text1_values[0 ].content );
1787
+ EXPECT_EQ (" bbbbb" , text1_values[1 ].content );
1788
+ }
1789
+
1790
+ {
1791
+ const auto &file1_values = req.get_file_values (" multi_file1" );
1792
+ EXPECT_EQ (file1_values.size (), 2 );
1793
+ auto file1 = file1_values[0 ];
1794
+ EXPECT_EQ (file1.filename , " hello.txt" );
1795
+ EXPECT_EQ (file1.content_type , " text/plain" );
1796
+ EXPECT_EQ (" h\n e\n\n l\n l\n o\n " , file1.content );
1797
+
1798
+ auto file2 = file1_values[1 ];
1799
+ EXPECT_EQ (file2.filename , " world.json" );
1800
+ EXPECT_EQ (file2.content_type , " application/json" );
1801
+ EXPECT_EQ (" {\n \" world\" , true\n }\n " , file2.content );
1802
+ }
1803
+ })
1770
1804
.Post (" /empty" ,
1771
1805
[&](const Request &req, Response &res) {
1772
1806
EXPECT_EQ (req.body , " " );
@@ -2611,6 +2645,23 @@ TEST_F(ServerTest, MultipartFormData) {
2611
2645
EXPECT_EQ (200 , res->status );
2612
2646
}
2613
2647
2648
+ TEST_F (ServerTest, MultipartFormDataMultiFileValues) {
2649
+ MultipartFormDataItems items = {
2650
+ {" text" , " defalut text" , " " , " " },
2651
+
2652
+ {" multi_text1" , " aaaaa" , " " , " " },
2653
+ {" multi_text1" , " bbbbb" , " " , " " },
2654
+
2655
+ {" multi_file1" , " h\n e\n\n l\n l\n o\n " , " hello.txt" , " text/plain" },
2656
+ {" multi_file1" , " {\n \" world\" , true\n }\n " , " world.json" , " application/json" },
2657
+ };
2658
+
2659
+ auto res = cli_.Post (" /multipart/multi_file_values" , items);
2660
+
2661
+ ASSERT_TRUE (res);
2662
+ EXPECT_EQ (200 , res->status );
2663
+ }
2664
+
2614
2665
TEST_F (ServerTest, CaseInsensitiveHeaderName) {
2615
2666
auto res = cli_.Get (" /hi" );
2616
2667
ASSERT_TRUE (res);
0 commit comments