Пример #1
0
 public void ParseInputsAndTextExplicitBoundaryNotMatch()
 {
     using (var stream = new MemoryStream(upload_stream_inputs_and_file))
     {
         var mp = MultiPartContent.Decode(stream, "---------------------------7de23d3b1d07fd");
     }
 }
Пример #2
0
        public void EncodeDecode_FieldsAndFileTest()
        {
            byte[] eol          = new byte[] { 0x0D, 0x0A };
            byte[] contentBytes = upload;

            var part0 = NFX.Web.MultiPartContent.MultiPart.CreateField("text1", "abba", eol);
            var part1 = NFX.Web.MultiPartContent.MultiPart.CreateField("check1", "on", eol);
            var part2 = NFX.Web.MultiPartContent.MultiPart.CreateFile("content2", "upload.txt", "text/plain", contentBytes, eol);
            var parts = new NFX.Web.MultiPartContent.MultiPart[] { part0, part1, part2 };

            var mpc0 = MultiPartContent.Encode(parts);

            var mpc1 = MultiPartContent.Decode(mpc0.Stream);

            Assert.AreEqual(3, mpc1.Parts.Count);

            Assert.AreEqual("text1", mpc1.Parts[0].Parameters.Name);
            Assert.AreEqual("abba", mpc1.Parts[0].ContentAsString);

            Assert.AreEqual("check1", mpc1.Parts[1].Parameters.Name);
            Assert.AreEqual("on", mpc1.Parts[1].ContentAsString);

            Assert.AreEqual("content2", mpc1.Parts[2].Parameters.Name);
            Assert.AreEqual("upload.txt", mpc1.Parts[2].Parameters.FileName);
            Assert.AreEqual("text/plain", mpc1.Parts[2].Parameters.ContentType);
            Assert.IsTrue(mpc1.Parts[2].Content.SequenceEqual(contentBytes));
        }
Пример #3
0
 public void ParseInputsAndTextEnsureBoundary()
 {
     using (var stream = new MemoryStream(upload_stream_inputs_and_file))
     {
         var mp = MultiPartContent.Decode(stream);
         Assert.AreEqual("---------------------------7de23d3b1d07fe", mp.Boundary);
     }
 }
Пример #4
0
        public void EncodeDecode_FieldSingleTest()
        {
            byte[] eol = new byte[] { 0x0D, 0x0A };

            var part0 = NFX.Web.MultiPartContent.MultiPart.CreateField("text1", "abba", eol);
            var parts = new NFX.Web.MultiPartContent.MultiPart[] { part0 };

            var mpc0 = MultiPartContent.Encode(parts);

            var mpc1 = MultiPartContent.Decode(mpc0.Stream);

            Assert.AreEqual(1, mpc1.Parts.Count);
            Assert.AreEqual("text1", mpc1.Parts[0].Parameters.Name);
            Assert.AreEqual("abba", mpc1.Parts[0].ContentAsString);
        }
Пример #5
0
        public void ParseTwoText()
        {
            using (var stream = new MemoryStream(upload_stream_2_text_files_txt))
            {
                var mp = MultiPartContent.Decode(stream);

                Assert.AreEqual(2, mp.Parts.Count);

                Assert.AreEqual("content1", mp.Parts[0].Parameters.Name);
                Assert.AreEqual("upload.txt", mp.Parts[0].Parameters.FileName);
                Assert.AreEqual("text/plain", mp.Parts[0].Parameters.ContentType);

                Assert.AreEqual("content2", mp.Parts[1].Parameters.Name);
                Assert.AreEqual("upload.txt", mp.Parts[1].Parameters.FileName);
                Assert.AreEqual("text/plain", mp.Parts[1].Parameters.ContentType);
            }
        }
Пример #6
0
        public void ParseBmpAndText()
        {
            using (var stream = new MemoryStream(upload_stream_bmp_and_text))
            {
                var mp = MultiPartContent.Decode(stream);

                Assert.AreEqual(2, mp.Parts.Count);

                Assert.AreEqual("content1", mp.Parts[0].Parameters.Name);
                Assert.AreEqual("upload_img.bmp", mp.Parts[0].Parameters.FileName);
                Assert.AreEqual("image/bmp", mp.Parts[0].Parameters.ContentType);
                Assert.IsTrue(upload_img_bmp.SequenceEqual(mp.Parts[0].Content));

                Assert.AreEqual("content2", mp.Parts[1].Parameters.Name);
                Assert.AreEqual("upload.txt", mp.Parts[1].Parameters.FileName);
                Assert.AreEqual("text/plain", mp.Parts[1].Parameters.ContentType);
                Assert.IsTrue(upload.SequenceEqual(mp.Parts[1].Content));
            }
        }
Пример #7
0
        public void ParseInputsAndTextRussian()
        {
            using (var stream = new MemoryStream(upload_stream_inputs_and_test_russian_txt))
            {
                var mp = MultiPartContent.Decode(stream);

                Assert.AreEqual(3, mp.Parts.Count);

                Assert.AreEqual("text1", mp.Parts[0].Parameters.Name);
                Assert.AreEqual("фрайштадт", mp.Parts[0].ContentAsString);

                Assert.AreEqual("check1", mp.Parts[1].Parameters.Name);
                Assert.AreEqual("on", mp.Parts[1].ContentAsString);

                Assert.AreEqual("content2", mp.Parts[2].Parameters.Name);
                Assert.AreEqual("upload.txt", mp.Parts[2].Parameters.FileName);
                Assert.AreEqual("text/plain", mp.Parts[2].Parameters.ContentType);
                Assert.IsTrue(upload.SequenceEqual(mp.Parts[2].Content));
            }
        }
Пример #8
0
        public void ParseInputsAndTextUnixEOL()
        {
            using (var stream = new MemoryStream(upload_stream_inputs_and_bmp_lf_txt))
            {
                var mp = MultiPartContent.Decode(stream);

                Assert.AreEqual(3, mp.Parts.Count);

                Assert.AreEqual("text1", mp.Parts[0].Parameters.Name);
                Assert.AreEqual("abba", mp.Parts[0].ContentAsString);

                Assert.AreEqual("check1", mp.Parts[1].Parameters.Name);
                Assert.AreEqual("on", mp.Parts[1].ContentAsString);

                Assert.AreEqual("content2", mp.Parts[2].Parameters.Name);
                Assert.AreEqual("upload_img.bmp", mp.Parts[2].Parameters.FileName);
                Assert.AreEqual("image/bmp", mp.Parts[2].Parameters.ContentType);
                Assert.IsTrue(upload_img_bmp.SequenceEqual(mp.Parts[2].Content));
            }
        }
Пример #9
0
        public void ParseInputsAndTextExplicitBoundary()
        {
            using (var stream = new MemoryStream(upload_stream_inputs_and_file))
            {
                var mp = MultiPartContent.Decode(stream, "---------------------------7de23d3b1d07fe");
                Assert.AreEqual("---------------------------7de23d3b1d07fe", mp.Boundary);

                Assert.AreEqual(3, mp.Parts.Count);

                Assert.AreEqual("text1", mp.Parts[0].Parameters.Name);
                Assert.AreEqual("abba", mp.Parts[0].ContentAsString);

                Assert.AreEqual("check1", mp.Parts[1].Parameters.Name);
                Assert.AreEqual("on", mp.Parts[1].ContentAsString);

                Assert.AreEqual("content2", mp.Parts[2].Parameters.Name);
                Assert.AreEqual("upload.txt", mp.Parts[2].Parameters.FileName);
                Assert.AreEqual("text/plain", mp.Parts[2].Parameters.ContentType);
                Assert.IsTrue(upload.SequenceEqual(mp.Parts[2].Content));
            }
        }