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