예제 #1
0
        public void ConnectionSpecificHeadersShouldBeRemoved()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Connection, "keep-alive");
            inHeaders.Add(HttpHeaderNames.Host, "example.com");
            //@SuppressWarnings("deprecation")
            AsciiString keepAlive = HttpHeaderNames.KeepAlive;

            inHeaders.Add(keepAlive, "timeout=5, max=1000");
            //@SuppressWarnings("deprecation")
            AsciiString proxyConnection = HttpHeaderNames.ProxyConnection;

            inHeaders.Add(proxyConnection, "timeout=5, max=1000");
            inHeaders.Add(HttpHeaderNames.TransferEncoding, "chunked");
            inHeaders.Add(HttpHeaderNames.Upgrade, "h2c");

            IHttp2Headers outHeaders = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, outHeaders);

            Assert.False(outHeaders.Contains(HttpHeaderNames.Connection));
            Assert.False(outHeaders.Contains(HttpHeaderNames.Host));
            Assert.False(outHeaders.Contains(keepAlive));
            Assert.False(outHeaders.Contains(proxyConnection));
            Assert.False(outHeaders.Contains(HttpHeaderNames.TransferEncoding));
            Assert.False(outHeaders.Contains(HttpHeaderNames.Upgrade));
        }
예제 #2
0
        public void SetHttp2AuthorityWithoutUserInfo()
        {
            var headers = new DefaultHttp2Headers();

            HttpConversionUtil.SetHttp2Authority("foo", headers);
            Assert.Equal(new AsciiString("foo"), headers.Authority);
        }
예제 #3
0
        public void StripTEHeadersAccountsForValueSimilarToTrailers()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Te, HttpHeaderValues.Trailers + "foo");
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.False(output.Contains(HttpHeaderNames.Te));
        }
예제 #4
0
        public void StripTEHeadersCsvSeparatedExcludingTrailers()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Te, HttpHeaderValues.Gzip + "," + HttpHeaderValues.Trailers);
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.Same(HttpHeaderValues.Trailers, output.Get(HttpHeaderNames.Te, null));
        }
예제 #5
0
        public void StripTEHeaders()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Te, HttpHeaderValues.Gzip);
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.True(output.IsEmpty);
        }
예제 #6
0
        public void SetHttp2AuthorityNullOrEmpty()
        {
            var headers = new DefaultHttp2Headers();

            HttpConversionUtil.SetHttp2Authority(null, headers);
            Assert.Null(headers.Authority);

            HttpConversionUtil.SetHttp2Authority("", headers);
            Assert.Same(AsciiString.Empty, headers.Authority);
        }
예제 #7
0
        public void StripTEHeadersAccountsForOWS()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Te, " " + HttpHeaderValues.Trailers + " ");
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.Same(HttpHeaderValues.Trailers, output.Get(HttpHeaderNames.Te, null));
        }
예제 #8
0
        public void StripConnectionHeadersAndNominees()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Connection, "foo");
            inHeaders.Add((AsciiString)"foo", "bar");
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.True(output.IsEmpty);
        }
예제 #9
0
        public void AddHttp2ToHttpHeadersCombinesCookies()
        {
            var inHeaders = new DefaultHttp2Headers();

            inHeaders.Add((AsciiString)"yes", (AsciiString)"no");
            inHeaders.Add(HttpHeaderNames.Cookie, (AsciiString)"foo=bar");
            inHeaders.Add(HttpHeaderNames.Cookie, (AsciiString)"bax=baz");

            HttpHeaders outHeaders = new DefaultHttpHeaders();

            HttpConversionUtil.AddHttp2ToHttpHeaders(5, inHeaders, outHeaders, HttpVersion.Http11, false, false);
            Assert.Equal("no", outHeaders.Get((AsciiString)"yes", null));
            Assert.Equal("foo=bar; bax=baz", outHeaders.Get(HttpHeaderNames.Cookie, null));
        }
예제 #10
0
        public void StripConnectionNomineesWithCsv()
        {
            HttpHeaders inHeaders = new DefaultHttpHeaders();

            inHeaders.Add(HttpHeaderNames.Connection, "foo,  bar");
            inHeaders.Add((AsciiString)"foo", "baz");
            inHeaders.Add((AsciiString)"bar", "qux");
            inHeaders.Add((AsciiString)"hello", "world");
            var output = new DefaultHttp2Headers();

            HttpConversionUtil.ToHttp2Headers(inHeaders, output);
            Assert.Equal(1, output.Size);
            Assert.Same("world", output.Get((AsciiString)"hello", null).ToString());
        }
예제 #11
0
 public void SetHttp2AuthorityWithEmptyAuthority()
 {
     Assert.Throws <ArgumentException>(() => HttpConversionUtil.SetHttp2Authority("info@", new DefaultHttp2Headers()));
 }