Add more cache control header parsing tests

This commit is contained in:
John Luo 2017-01-31 12:02:01 -08:00
parent 3289afe007
commit 2e2b54a507
1 changed files with 12 additions and 0 deletions

View File

@ -54,6 +54,10 @@ namespace Microsoft.Net.Http.Headers
[InlineData("directive1= 89 , directive2=22", "directive1", 89)]
[InlineData("directive1= 89 , directive2= 42", "directive2", 42)]
[InlineData("directive1= 89 , directive= 42", "directive", 42)]
[InlineData("directive1,,,,,directive2 = 42 ", "directive2", 42)]
[InlineData("directive1=;,directive2 = 42 ", "directive2", 42)]
[InlineData("directive1;;,;;,directive2 = 42 ", "directive2", 42)]
[InlineData("directive1=value;q=0.6,directive2 = 42 ", "directive2", 42)]
public void TryParseSeconds_Succeeds(string headerValues, string targetValue, int expectedValue)
{
TimeSpan? value;
@ -69,9 +73,11 @@ namespace Microsoft.Net.Http.Headers
[InlineData("directive1 , directive2=80", "directive1")]
[InlineData("h=10", "directive")]
[InlineData("directive1", "directive")]
[InlineData("directive1,,,,,,,", "directive")]
[InlineData("h=directive", "directive")]
[InlineData("directive1, directive2=80", "directive")]
[InlineData("directive1=;, directive2=10", "directive1")]
[InlineData("directive1;directive2=10", "directive2")]
public void TryParseSeconds_Fails(string headerValues, string targetValue)
{
TimeSpan? value;
@ -117,15 +123,21 @@ namespace Microsoft.Net.Http.Headers
[InlineData("directive1=3, directive=10", "directive", true)]
[InlineData("directive1= 89 , directive= 42", "directive", true)]
[InlineData("directive1= 89 , directive = 42", "directive", true)]
[InlineData("directive1,,,,,directive2 = 42 ", "directive2", true)]
[InlineData("directive1;;,;;,directive2 = 42 ", "directive2", true)]
[InlineData("directive1=;,directive2 = 42 ", "directive2", true)]
[InlineData("directive1=value;q=0.6,directive2 = 42 ", "directive2", true)]
[InlineData(null, null, false)]
[InlineData(null, "", false)]
[InlineData("", null, false)]
[InlineData("", "", false)]
[InlineData("h=10", "directive", false)]
[InlineData("directive1", "directive", false)]
[InlineData("directive1,,,,,,,", "directive", false)]
[InlineData("h=directive", "directive", false)]
[InlineData("directive1, directive2=80", "directive", false)]
[InlineData("directive1;, directive2=80", "directive", false)]
[InlineData("directive1=value;q=0.6;directive2 = 42 ", "directive2", false)]
public void ContainsCacheDirective_MatchesExactValue(string headerValues, string targetValue, bool contains)
{
Assert.Equal(contains, HeaderUtilities.ContainsCacheDirective(new StringValues(headerValues), targetValue));