Example #1
0
        public void WithBoundaryTest()
        {
            MultiPartFormData target = new MultiPartFormData().WithBoundary("----------xxxx");

            string actual   = target.ToString();
            string expected = "multipart/form-data; boundary=----------xxxx";

            Assert.Equal("----------xxxx", target.Boundary);
            Assert.Equal(expected, actual);
        }
        public void WithBoundaryTest()
        {
            MultiPartFormData target = new MultiPartFormData().WithBoundary("----------xxxx");

            string actual = target.ToString();
            string expected = "multipart/form-data; boundary=----------xxxx";

            Assert.Equal("----------xxxx", target.Boundary);
            Assert.Equal(expected, actual);
        }
        public void SelfGeneratedBoundariesAreDynamicAndDontCollideWithData()
        {
            // Given: we have a string that was used as a boundary.
            string selfGeneratedBoundary = new MultiPartFormData(new NameValueCollection()).Boundary;

            var data = new NameValueCollection();

            data.Add("name", selfGeneratedBoundary);

            var encoder = new MultiPartFormData(data);

            // Then: we get a valid-autogenerated boundary
            Assert.That(encoder.Boundary, Is.Not.EqualTo(selfGeneratedBoundary));
        }
        public void SelfGeneratedBoundary()
        {
            var data = new NameValueCollection();

            data.Add("name", "bob");

            var encoder = new MultiPartFormData(data);

            // Then: we get a valid-autogenerated boundary
            Assert.That(encoder.Boundary, Is.Not.Null);
            Assert.That(encoder.Boundary.Length, Is.GreaterThanOrEqualTo(35));                 // Dean's self-imposed good-boundary rule
            Assert.That(encoder.Boundary.Length, Is.LessThanOrEqualTo(57));

            Assert.That(encoder.ContentType, Is.EqualTo("multipart/form-data; boundary=" + encoder.Boundary));
        }
        public void RequestBodyFormat()
        {
            // Given: multi-part form data
            var data = new NameValueCollection();

            data.Add("name", "John Jacob Jingleheimerschmidt");
            data.Add("reason", "His name is my name too.");

            // When: encode it
            var encoder = new MultiPartFormData(data);

            // Then: we get a valid-autogenerated boundary
            string expectedBody = $"--{encoder.Boundary}\r\n"
                                  + "Content-Disposition: form-data; name=\"name\"\r\n"
                                  + "\r\n"
                                  + "John Jacob Jingleheimerschmidt\r\n"
                                  + $"--{encoder.Boundary}\r\n"
                                  + "Content-Disposition: form-data; name=\"reason\"\r\n"
                                  + "\r\n"
                                  + "His name is my name too.\r\n"
                                  + $"--{encoder.Boundary}--\r\n";

            Assert.That(encoder.RequestBody, Is.EqualTo(expectedBody));
        }