@@ -194,7 +194,7 @@ public function testIsNotModifiedEtag()
194194 $ etagTwo = 'randomly_generated_etag_2 ' ;
195195
196196 $ request = new Request ();
197- $ request ->headers ->set ('if_none_match ' , sprintf ('%s, %s, %s ' , $ etagOne , $ etagTwo , 'etagThree ' ));
197+ $ request ->headers ->set ('If-None-Match ' , sprintf ('%s, %s, %s ' , $ etagOne , $ etagTwo , 'etagThree ' ));
198198
199199 $ response = new Response ();
200200
@@ -206,6 +206,38 @@ public function testIsNotModifiedEtag()
206206
207207 $ response ->headers ->set ('ETag ' , '' );
208208 $ this ->assertFalse ($ response ->isNotModified ($ request ));
209+
210+ // Test wildcard
211+ $ request = new Request ();
212+ $ request ->headers ->set ('If-None-Match ' , '* ' );
213+
214+ $ response ->headers ->set ('ETag ' , $ etagOne );
215+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
216+ }
217+
218+ public function testIsNotModifiedWeakEtag ()
219+ {
220+ $ etag = 'randomly_generated_etag ' ;
221+ $ weakEtag = 'W/randomly_generated_etag ' ;
222+
223+ $ request = new Request ();
224+ $ request ->headers ->set ('If-None-Match ' , $ etag );
225+ $ response = new Response ();
226+
227+ $ response ->headers ->set ('ETag ' , $ etag );
228+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
229+
230+ $ response ->headers ->set ('ETag ' , $ weakEtag );
231+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
232+
233+ $ request ->headers ->set ('If-None-Match ' , $ weakEtag );
234+ $ response = new Response ();
235+
236+ $ response ->headers ->set ('ETag ' , $ etag );
237+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
238+
239+ $ response ->headers ->set ('ETag ' , $ weakEtag );
240+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
209241 }
210242
211243 public function testIsNotModifiedLastModifiedAndEtag ()
@@ -216,14 +248,14 @@ public function testIsNotModifiedLastModifiedAndEtag()
216248 $ etag = 'randomly_generated_etag ' ;
217249
218250 $ request = new Request ();
219- $ request ->headers ->set ('if_none_match ' , sprintf ('%s, %s ' , $ etag , 'etagThree ' ));
251+ $ request ->headers ->set ('If-None-Match ' , sprintf ('%s, %s ' , $ etag , 'etagThree ' ));
220252 $ request ->headers ->set ('If-Modified-Since ' , $ modified );
221253
222254 $ response = new Response ();
223255
224256 $ response ->headers ->set ('ETag ' , $ etag );
225257 $ response ->headers ->set ('Last-Modified ' , $ after );
226- $ this ->assertFalse ($ response ->isNotModified ($ request ));
258+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
227259
228260 $ response ->headers ->set ('ETag ' , 'non-existent-etag ' );
229261 $ response ->headers ->set ('Last-Modified ' , $ before );
@@ -240,7 +272,7 @@ public function testIsNotModifiedIfModifiedSinceAndEtagWithoutLastModified()
240272 $ etag = 'randomly_generated_etag ' ;
241273
242274 $ request = new Request ();
243- $ request ->headers ->set ('if_none_match ' , sprintf ('%s, %s ' , $ etag , 'etagThree ' ));
275+ $ request ->headers ->set ('If-None-Match ' , sprintf ('%s, %s ' , $ etag , 'etagThree ' ));
244276 $ request ->headers ->set ('If-Modified-Since ' , $ modified );
245277
246278 $ response = new Response ();
0 commit comments