Exemplo n.º 1
0
 static void AddObjectValues(CombinedHttpHeaders headers, params HeaderValue[] headerValues)
 {
     foreach (HeaderValue v in headerValues)
     {
         headers.Add(HeaderName, v.ToString());
     }
 }
Exemplo n.º 2
0
        public void SetObjectIterableCsv()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Set(HeaderName, HeaderValue.Three.AsList());
            AssertCsvValues(headers, HeaderValue.Three);
        }
Exemplo n.º 3
0
 static void AddValues(CombinedHttpHeaders headers, params HeaderValue[] headerValues)
 {
     foreach (HeaderValue v in headerValues)
     {
         headers.Add(HeaderName, (StringCharSequence)v.ToString());
     }
 }
Exemplo n.º 4
0
        public void SetCharSequenceCsv()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Set(HeaderName, HeaderValue.Three.AsList());
            AssertCsvValues(headers, HeaderValue.Three);
        }
Exemplo n.º 5
0
        public void AddObjectCsv()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            AddObjectValues(headers, HeaderValue.One, HeaderValue.Two, HeaderValue.Three);
            AssertCsvValues(headers, HeaderValue.Three);
        }
Exemplo n.º 6
0
        public void AddIterableCsvSingleValue()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, HeaderValue.One.AsList());
            AssertCsvValue(headers, HeaderValue.One);
        }
Exemplo n.º 7
0
        public void AddIterableCsvEmpty()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, new List <ICharSequence>());
            Assert.Equal(0, headers.GetAll(HeaderName).Count);
        }
Exemplo n.º 8
0
        public void AddCharSequenceCsvSingleValue()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            AddValues(headers, HeaderValue.One);
            AssertCsvValue(headers, HeaderValue.One);
        }
Exemplo n.º 9
0
        public void AddCharSequenceCsv()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            AddValues(headers, HeaderValue.One, HeaderValue.Two, HeaderValue.Three);
            AssertCsvValues(headers, HeaderValue.Three);
        }
Exemplo n.º 10
0
        public void AddCharSequencesCsvWithValueContainingCommas()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, HeaderValue.Eight.Subset(6));
            Assert.True(ContentEquals((StringCharSequence)HeaderValue.Eight.SubsetAsCsvString(6), headers.Get(HeaderName, null)));
            Assert.Equal(HeaderValue.Eight.Subset(6), headers.GetAll(HeaderName));
        }
Exemplo n.º 11
0
        public void AddCharSequencesCsvWithExistingHeader()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, HeaderValue.Three.AsList());
            headers.Add(HeaderName, HeaderValue.Five.Subset(4));
            AssertCsvValues(headers, HeaderValue.Five);
        }
Exemplo n.º 12
0
        public void GetAllDontCombineSetCookie()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HttpHeaderNames.SetCookie, "a");
            headers.Add(HttpHeaderNames.SetCookie, "b");
            Assert.Equal(2, headers.GetAll(HttpHeaderNames.SetCookie).Count);
            Assert.Equal(new List <string>(new[] { "a", "b" }), headers.GetAll(HttpHeaderNames.SetCookie).Select(_ => _.ToString()).ToList());
        }
Exemplo n.º 13
0
        public void AddObjectsCsv()
        {
            CombinedHttpHeaders  headers = NewCombinedHttpHeaders();
            List <ICharSequence> list    = HeaderValue.Three.AsList();

            Assert.Equal(3, list.Count);
            headers.Add(HeaderName, list);
            AssertCsvValues(headers, HeaderValue.Three);
        }
Exemplo n.º 14
0
        public void AddCharSequencesCsvMultipleTimes()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            for (int i = 0; i < 5; ++i)
            {
                headers.Add(HeaderName, "value");
            }
            Assert.True(ContentEquals((StringCharSequence)"value,value,value,value,value", headers.Get(HeaderName, null)));
        }
Exemplo n.º 15
0
        public void AddCombinedHeadersWhenEmpty()
        {
            CombinedHttpHeaders headers      = NewCombinedHttpHeaders();
            CombinedHttpHeaders otherHeaders = NewCombinedHttpHeaders();

            otherHeaders.Add(HeaderName, "a");
            otherHeaders.Add(HeaderName, "b");
            headers.Add(otherHeaders);
            Assert.Equal("a,b", headers.Get(HeaderName, null)?.ToString());
        }
Exemplo n.º 16
0
        public void SetCombinedHeadersWhenNotEmpty()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, "a");
            CombinedHttpHeaders otherHeaders = NewCombinedHttpHeaders();

            otherHeaders.Add(HeaderName, "b");
            otherHeaders.Add(HeaderName, "c");
            headers.Set(otherHeaders);
            Assert.Equal("b,c", headers.Get(HeaderName, null)?.ToString());
        }
Exemplo n.º 17
0
        public void SetUncombinedHeaders()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HeaderName, "a");
            var otherHeaders = new DefaultHttpHeaders();

            otherHeaders.Add(HeaderName, "b");
            otherHeaders.Add(HeaderName, "c");
            headers.Set(otherHeaders);
            Assert.Equal("b,c", headers.Get(HeaderName, null)?.ToString());
        }
Exemplo n.º 18
0
        public void DontCombineSetCookieHeaders()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HttpHeaderNames.SetCookie, "a");
            CombinedHttpHeaders otherHeaders = NewCombinedHttpHeaders();

            otherHeaders.Add(HttpHeaderNames.SetCookie, "b");
            otherHeaders.Add(HttpHeaderNames.SetCookie, "c");
            headers.Add(otherHeaders);
            Assert.Equal(3, headers.GetAll(HttpHeaderNames.SetCookie).Count);
        }
Exemplo n.º 19
0
        static void AssertCsvValues(CombinedHttpHeaders headers, HeaderValue headerValue)
        {
            Assert.True(ContentEquals(headerValue.AsCsv(), headers.Get(HeaderName, null)));

            List <ICharSequence>  expected = headerValue.AsList();
            IList <ICharSequence> values   = headers.GetAll(HeaderName);

            Assert.Equal(expected.Count, values.Count);
            for (int i = 0; i < expected.Count; i++)
            {
                Assert.True(expected[i].ContentEquals(values[i]));
            }
        }
Exemplo n.º 20
0
        public void DontCombineSetCookieHeadersRegardlessOfCase()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(AsciiString.Of("Set-Cookie"), "a");
            CombinedHttpHeaders otherHeaders = NewCombinedHttpHeaders();

            otherHeaders.Add(AsciiString.Of("set-cookie"), "b");
            otherHeaders.Add(AsciiString.Of("SET-COOKIE"), "c");
            headers.Add(otherHeaders);
            var list = headers.GetAll(HttpHeaderNames.SetCookie);

            Assert.Equal(3, headers.GetAll(HttpHeaderNames.SetCookie).Count);
        }
Exemplo n.º 21
0
        public void NonCombinableHeaderIterator()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Add(HttpHeaderNames.SetCookie, "c");
            headers.Add(HttpHeaderNames.SetCookie, "b");
            headers.Add(HttpHeaderNames.SetCookie, "a");

            var strItr = headers.ValueCharSequenceIterator(HttpHeaderNames.SetCookie).ToList();

            Assert.Equal(3, strItr.Count);
            Assert.Equal("a", strItr[0]);
            Assert.Equal("b", strItr[1]);
            Assert.Equal("c", strItr[2]);
        }
Exemplo n.º 22
0
        public void ValueIterator()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"\ta", (StringCharSequence)"   ", (StringCharSequence)"  b ", (StringCharSequence)"\t \t"
            });
            headers.Add(HeaderName, new List <ICharSequence> {
                (StringCharSequence)" c, d \t"
            });

            var list = new List <ICharSequence>(headers.ValueCharSequenceIterator(new AsciiString("foo")));

            Assert.Empty(list);
            AssertValueIterator(headers.ValueCharSequenceIterator(HeaderName));
        }
Exemplo n.º 23
0
        public void GetAll()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"a", (StringCharSequence)"b", (StringCharSequence)"c"
            });
            var expected = new ICharSequence[] { (StringCharSequence)"a", (StringCharSequence)"b", (StringCharSequence)"c" };
            IList <ICharSequence> actual = headers.GetAll(HeaderName);

            Assert.True(expected.SequenceEqual(actual));

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"a,", (StringCharSequence)"b,", (StringCharSequence)"c,"
            });
            expected = new ICharSequence[] { (StringCharSequence)"a,", (StringCharSequence)"b,", (StringCharSequence)"c," };
            actual   = headers.GetAll(HeaderName);
            Assert.True(expected.SequenceEqual(actual));

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"a\"", (StringCharSequence)"b\"", (StringCharSequence)"c\""
            });
            expected = new ICharSequence[] { (StringCharSequence)"a\"", (StringCharSequence)"b\"", (StringCharSequence)"c\"" };
            actual   = headers.GetAll(HeaderName);
            Assert.True(expected.SequenceEqual(actual));

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"\"a\"", (StringCharSequence)"\"b\"", (StringCharSequence)"\"c\""
            });
            expected = new ICharSequence[] { (StringCharSequence)"a", (StringCharSequence)"b", (StringCharSequence)"c" };
            actual   = headers.GetAll(HeaderName);
            Assert.True(expected.SequenceEqual(actual));

            headers.Set(HeaderName, (StringCharSequence)"a,b,c");
            expected = new ICharSequence[] { (StringCharSequence)"a,b,c" };
            actual   = headers.GetAll(HeaderName);
            Assert.True(expected.SequenceEqual(actual));

            headers.Set(HeaderName, (StringCharSequence)"\"a,b,c\"");
            actual = headers.GetAll(HeaderName);
            Assert.True(expected.SequenceEqual(actual));
        }
Exemplo n.º 24
0
        public void OwsTrimming()
        {
            CombinedHttpHeaders headers = NewCombinedHttpHeaders();

            headers.Set(HeaderName, new List <ICharSequence> {
                (StringCharSequence)"\ta", (StringCharSequence)"   ", (StringCharSequence)"  b ", (StringCharSequence)"\t \t"
            });
            headers.Add(HeaderName, new List <ICharSequence> {
                (StringCharSequence)" c, d \t"
            });

            var expected = new List <ICharSequence> {
                (StringCharSequence)"a", (StringCharSequence)"", (StringCharSequence)"b", (StringCharSequence)"", (StringCharSequence)"c, d"
            };
            IList <ICharSequence> actual = headers.GetAll(HeaderName);

            Assert.True(expected.SequenceEqual(actual));
            Assert.Equal("a,,b,,\"c, d\"", headers.Get(HeaderName, null)?.ToString());

            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)"a", true));
            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)" a ", true));
            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)"a", true));
            Assert.False(headers.ContainsValue(HeaderName, (StringCharSequence)"a,b", true));

            Assert.False(headers.ContainsValue(HeaderName, (StringCharSequence)" c, d ", true));
            Assert.False(headers.ContainsValue(HeaderName, (StringCharSequence)"c, d", true));
            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)" c ", true));
            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)"d", true));

            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)"\t", true));
            Assert.True(headers.ContainsValue(HeaderName, (StringCharSequence)"", true));

            Assert.False(headers.ContainsValue(HeaderName, (StringCharSequence)"e", true));

            CombinedHttpHeaders copiedHeaders = NewCombinedHttpHeaders();

            copiedHeaders.Add(headers);
            Assert.Equal(new List <ICharSequence> {
                (StringCharSequence)"a", (StringCharSequence)"", (StringCharSequence)"b", (StringCharSequence)"", (StringCharSequence)"c, d"
            }, copiedHeaders.GetAll(HeaderName));
        }
Exemplo n.º 25
0
 static void AssertCsvValue(CombinedHttpHeaders headers, HeaderValue headerValue)
 {
     Assert.True(ContentEquals((StringCharSequence)headerValue.ToString(), headers.Get(HeaderName, null)));
     Assert.True(ContentEquals((StringCharSequence)headerValue.ToString(), headers.GetAll(HeaderName)[0]));
 }