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";