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); } }
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)); }
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)); }