Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

Commit 2e2b54a

Browse files
committed
Add more cache control header parsing tests
1 parent 3289afe commit 2e2b54a

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

test/Microsoft.Net.Http.Headers.Tests/HeaderUtilitiesTest.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ public static TheoryData<DateTimeOffset, bool> TestValues
5454
[InlineData("directive1= 89 , directive2=22", "directive1", 89)]
5555
[InlineData("directive1= 89 , directive2= 42", "directive2", 42)]
5656
[InlineData("directive1= 89 , directive= 42", "directive", 42)]
57+
[InlineData("directive1,,,,,directive2 = 42 ", "directive2", 42)]
58+
[InlineData("directive1=;,directive2 = 42 ", "directive2", 42)]
59+
[InlineData("directive1;;,;;,directive2 = 42 ", "directive2", 42)]
60+
[InlineData("directive1=value;q=0.6,directive2 = 42 ", "directive2", 42)]
5761
public void TryParseSeconds_Succeeds(string headerValues, string targetValue, int expectedValue)
5862
{
5963
TimeSpan? value;
@@ -69,9 +73,11 @@ public void TryParseSeconds_Succeeds(string headerValues, string targetValue, in
6973
[InlineData("directive1 , directive2=80", "directive1")]
7074
[InlineData("h=10", "directive")]
7175
[InlineData("directive1", "directive")]
76+
[InlineData("directive1,,,,,,,", "directive")]
7277
[InlineData("h=directive", "directive")]
7378
[InlineData("directive1, directive2=80", "directive")]
7479
[InlineData("directive1=;, directive2=10", "directive1")]
80+
[InlineData("directive1;directive2=10", "directive2")]
7581
public void TryParseSeconds_Fails(string headerValues, string targetValue)
7682
{
7783
TimeSpan? value;
@@ -117,15 +123,21 @@ public void FormatInt64_MatchesToString(long value)
117123
[InlineData("directive1=3, directive=10", "directive", true)]
118124
[InlineData("directive1= 89 , directive= 42", "directive", true)]
119125
[InlineData("directive1= 89 , directive = 42", "directive", true)]
126+
[InlineData("directive1,,,,,directive2 = 42 ", "directive2", true)]
127+
[InlineData("directive1;;,;;,directive2 = 42 ", "directive2", true)]
128+
[InlineData("directive1=;,directive2 = 42 ", "directive2", true)]
129+
[InlineData("directive1=value;q=0.6,directive2 = 42 ", "directive2", true)]
120130
[InlineData(null, null, false)]
121131
[InlineData(null, "", false)]
122132
[InlineData("", null, false)]
123133
[InlineData("", "", false)]
124134
[InlineData("h=10", "directive", false)]
125135
[InlineData("directive1", "directive", false)]
136+
[InlineData("directive1,,,,,,,", "directive", false)]
126137
[InlineData("h=directive", "directive", false)]
127138
[InlineData("directive1, directive2=80", "directive", false)]
128139
[InlineData("directive1;, directive2=80", "directive", false)]
140+
[InlineData("directive1=value;q=0.6;directive2 = 42 ", "directive2", false)]
129141
public void ContainsCacheDirective_MatchesExactValue(string headerValues, string targetValue, bool contains)
130142
{
131143
Assert.Equal(contains, HeaderUtilities.ContainsCacheDirective(new StringValues(headerValues), targetValue));

0 commit comments

Comments
 (0)