Ejemplo n.º 1
0
        public void TestPseudoHeadersWithRemovePreservesPseudoIterationOrder()
        {
            var headers = NewHeaders();

            var nonPseudoHeaders = new DefaultHttp2Headers();

            foreach (var entry in headers)
            {
                if (entry.Key.Count == 0 || entry.Key[0] != ':' &&
                    !nonPseudoHeaders.Contains(entry.Key))
                {
                    nonPseudoHeaders.Add(entry.Key, entry.Value);
                }
            }

            Assert.False(nonPseudoHeaders.IsEmpty);

            // Remove all the non-pseudo headers and verify
            foreach (var nonPseudoHeaderEntry in nonPseudoHeaders)
            {
                Assert.True(headers.Remove(nonPseudoHeaderEntry.Key));
                VerifyPseudoHeadersFirst(headers);
                VerifyAllPseudoHeadersPresent(headers);
            }

            // Add back all non-pseudo headers
            foreach (var nonPseudoHeaderEntry in nonPseudoHeaders)
            {
                headers.Add(nonPseudoHeaderEntry.Key, AsciiString.Of("goo"));
                VerifyPseudoHeadersFirst(headers);
                VerifyAllPseudoHeadersPresent(headers);
            }
        }
Ejemplo n.º 2
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));
        }
Ejemplo n.º 3
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));
        }