Mercurial > hg > orthanc
comparison OrthancFramework/UnitTestsSources/RestApiTests.cpp @ 4453:4f8e77c650e8
new function MultipartStreamReader::ParseHeaderArguments()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 19 Jan 2021 10:02:46 +0100 |
parents | d9473bd5ed43 |
children | 017ab543e6ef |
comparison
equal
deleted
inserted
replaced
4452:a86fd55c4df0 | 4453:4f8e77c650e8 |
---|---|
834 ASSERT_EQ(st, "application/dicom"); | 834 ASSERT_EQ(st, "application/dicom"); |
835 } | 835 } |
836 } | 836 } |
837 | 837 |
838 | 838 |
839 TEST(MultipartStreamReader, ParseHeaders2) | |
840 { | |
841 std::string main; | |
842 std::map<std::string, std::string> args; | |
843 | |
844 ASSERT_FALSE(MultipartStreamReader::ParseHeaderArguments(main, args, "")); | |
845 ASSERT_FALSE(MultipartStreamReader::ParseHeaderArguments(main, args, " ")); | |
846 ASSERT_FALSE(MultipartStreamReader::ParseHeaderArguments(main, args, " ; ")); | |
847 | |
848 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "hello")); | |
849 ASSERT_EQ("hello", main); | |
850 ASSERT_TRUE(args.empty()); | |
851 | |
852 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "hello ; a = \" b \";c=d ; e=f;")); | |
853 ASSERT_EQ("hello", main); | |
854 ASSERT_EQ(3u, args.size()); | |
855 ASSERT_EQ(" b ", args["a"]); | |
856 ASSERT_EQ("d", args["c"]); | |
857 ASSERT_EQ("f", args["e"]); | |
858 | |
859 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, " hello ;;;; ; ")); | |
860 ASSERT_EQ("hello", main); | |
861 ASSERT_TRUE(args.empty()); | |
862 | |
863 ASSERT_FALSE(MultipartStreamReader::ParseHeaderArguments(main, args, "hello;a=b;c=d;a=f")); | |
864 | |
865 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "multipart/related; dummy=value; boundary=1234; hello=world")); | |
866 ASSERT_EQ("multipart/related", main); | |
867 ASSERT_EQ(3u, args.size()); | |
868 ASSERT_EQ("value", args["dummy"]); | |
869 ASSERT_EQ("1234", args["boundary"]); | |
870 ASSERT_EQ("world", args["hello"]); | |
871 | |
872 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "multipart/related; boundary=")); | |
873 ASSERT_EQ("multipart/related", main); | |
874 ASSERT_EQ(1u, args.size()); | |
875 ASSERT_EQ("", args["boundary"]); | |
876 | |
877 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "multipart/related; boundary")); | |
878 ASSERT_EQ("multipart/related", main); | |
879 ASSERT_EQ(1u, args.size()); | |
880 ASSERT_EQ("", args["boundary"]); | |
881 | |
882 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "Multipart/Related; TYPE=Application/Dicom; Boundary=heLLO")); | |
883 ASSERT_EQ("multipart/related", main); | |
884 ASSERT_EQ(2u, args.size()); | |
885 ASSERT_EQ("Application/Dicom", args["type"]); | |
886 ASSERT_EQ("heLLO", args["boundary"]); | |
887 | |
888 ASSERT_TRUE(MultipartStreamReader::ParseHeaderArguments(main, args, "Multipart/Related; type=\"application/DICOM\"; Boundary=a")); | |
889 ASSERT_EQ("multipart/related", main); | |
890 ASSERT_EQ(2u, args.size()); | |
891 ASSERT_EQ("application/DICOM", args["type"]); | |
892 ASSERT_EQ("a", args["boundary"]); | |
893 } | |
894 | |
895 | |
839 TEST(MultipartStreamReader, BytePerByte) | 896 TEST(MultipartStreamReader, BytePerByte) |
840 { | 897 { |
841 std::string stream = "GARBAGE"; | 898 std::string stream = "GARBAGE"; |
842 | 899 |
843 std::string boundary = "123456789123456789"; | 900 std::string boundary = "123456789123456789"; |