@@ -196,16 +196,31 @@ public void ConditionalRequestSatisfied_IfNoneMatch_AnyWithoutETagInResponse_Pas
196
196
Assert . False ( ResponseCacheMiddleware . ConditionalRequestSatisfied ( context ) ) ;
197
197
}
198
198
199
- [ Fact ]
200
- public void ConditionalRequestSatisfied_IfNoneMatch_ExplicitWithMatch_Passes ( )
199
+ public static TheoryData < EntityTagHeaderValue , EntityTagHeaderValue > EquivalentWeakETags
200
+ {
201
+ get
202
+ {
203
+ return new TheoryData < EntityTagHeaderValue , EntityTagHeaderValue >
204
+ {
205
+ { new EntityTagHeaderValue ( "\" tag\" " ) , new EntityTagHeaderValue ( "\" tag\" " ) } ,
206
+ { new EntityTagHeaderValue ( "\" tag\" " , true ) , new EntityTagHeaderValue ( "\" tag\" " ) } ,
207
+ { new EntityTagHeaderValue ( "\" tag\" " ) , new EntityTagHeaderValue ( "\" tag\" " , true ) } ,
208
+ { new EntityTagHeaderValue ( "\" tag\" " , true ) , new EntityTagHeaderValue ( "\" tag\" " , true ) }
209
+ } ;
210
+ }
211
+ }
212
+
213
+ [ Theory ]
214
+ [ MemberData ( nameof ( EquivalentWeakETags ) ) ]
215
+ public void ConditionalRequestSatisfied_IfNoneMatch_ExplicitWithMatch_Passes ( EntityTagHeaderValue responseETag , EntityTagHeaderValue requestETag )
201
216
{
202
217
var context = TestUtils . CreateTestContext ( ) ;
203
218
context . CachedResponseHeaders = new ResponseHeaders ( new HeaderDictionary ( ) )
204
219
{
205
- ETag = new EntityTagHeaderValue ( " \" E1 \" " )
220
+ ETag = responseETag
206
221
} ;
207
222
208
- context . TypedRequestHeaders . IfNoneMatch = new List < EntityTagHeaderValue > ( new [ ] { new EntityTagHeaderValue ( " \" E1 \" " ) } ) ;
223
+ context . TypedRequestHeaders . IfNoneMatch = new List < EntityTagHeaderValue > ( new [ ] { requestETag } ) ;
209
224
210
225
Assert . True ( ResponseCacheMiddleware . ConditionalRequestSatisfied ( context ) ) ;
211
226
}
0 commit comments