14
14
use Symfony \Component \HttpFoundation \Request ;
15
15
use Symfony \Component \HttpFoundation \Response ;
16
16
17
+ /**
18
+ * @group time-sensitive
19
+ */
17
20
class ResponseTest extends ResponseTestCase
18
21
{
19
22
public function testCreate ()
@@ -259,16 +262,18 @@ public function testGetDate()
259
262
{
260
263
$ oneHourAgo = $ this ->createDateTimeOneHourAgo ();
261
264
$ response = new Response ('' , 200 , array ('Date ' => $ oneHourAgo ->format (DATE_RFC2822 )));
262
- $ this ->assertEquals (0 , $ oneHourAgo ->diff ($ response ->getDate ())->format ('%s ' ), '->getDate() returns the Date header if present ' );
265
+ $ date = $ response ->getDate ();
266
+ $ this ->assertEquals ($ oneHourAgo ->getTimestamp (), $ date ->getTimestamp (), '->getDate() returns the Date header if present ' );
263
267
264
268
$ response = new Response ();
265
269
$ date = $ response ->getDate ();
266
- $ this ->assertLessThan ( 1 , $ date ->diff ( new \ DateTime (), true )-> format ( ' %s ' ), '->getDate() returns the current Date if no Date header present ' );
270
+ $ this ->assertEquals ( time () , $ date ->getTimestamp ( ), '->getDate() returns the current Date if no Date header present ' );
267
271
268
272
$ response = new Response ('' , 200 , array ('Date ' => $ this ->createDateTimeOneHourAgo ()->format (DATE_RFC2822 )));
269
273
$ now = $ this ->createDateTimeNow ();
270
274
$ response ->headers ->set ('Date ' , $ now ->format (DATE_RFC2822 ));
271
- $ this ->assertLessThanOrEqual (1 , $ now ->diff ($ response ->getDate ())->format ('%s ' ), '->getDate() returns the date when the header has been modified ' );
275
+ $ date = $ response ->getDate ();
276
+ $ this ->assertEquals ($ now ->getTimestamp (), $ date ->getTimestamp (), '->getDate() returns the date when the header has been modified ' );
272
277
273
278
$ response = new Response ('' , 200 );
274
279
$ response ->headers ->remove ('Date ' );
@@ -288,7 +293,7 @@ public function testGetMaxAge()
288
293
$ response = new Response ();
289
294
$ response ->headers ->set ('Cache-Control ' , 'must-revalidate ' );
290
295
$ response ->headers ->set ('Expires ' , $ this ->createDateTimeOneHourLater ()->format (DATE_RFC2822 ));
291
- $ this ->assertLessThanOrEqual ( 1 , $ response ->getMaxAge () - 3600 , '->getMaxAge() falls back to Expires when no max-age or s-maxage directive present ' );
296
+ $ this ->assertEquals ( 3600 , $ response ->getMaxAge (), '->getMaxAge() falls back to Expires when no max-age or s-maxage directive present ' );
292
297
293
298
$ response = new Response ();
294
299
$ response ->headers ->set ('Cache-Control ' , 'must-revalidate ' );
@@ -359,7 +364,7 @@ public function testGetTtl()
359
364
360
365
$ response = new Response ();
361
366
$ response ->headers ->set ('Expires ' , $ this ->createDateTimeOneHourLater ()->format (DATE_RFC2822 ));
362
- $ this ->assertLessThanOrEqual ( 1 , 3600 - $ response ->getTtl (), '->getTtl() uses the Expires header when no max-age is present ' );
367
+ $ this ->assertEquals ( 3600 , $ response ->getTtl (), '->getTtl() uses the Expires header when no max-age is present ' );
363
368
364
369
$ response = new Response ();
365
370
$ response ->headers ->set ('Expires ' , $ this ->createDateTimeOneHourAgo ()->format (DATE_RFC2822 ));
@@ -372,7 +377,7 @@ public function testGetTtl()
372
377
373
378
$ response = new Response ();
374
379
$ response ->headers ->set ('Cache-Control ' , 'max-age=60 ' );
375
- $ this ->assertLessThan ( 1 , 60 - $ response ->getTtl (), '->getTtl() uses Cache-Control max-age when present ' );
380
+ $ this ->assertEquals ( 60 , $ response ->getTtl (), '->getTtl() uses Cache-Control max-age when present ' );
376
381
}
377
382
378
383
public function testSetClientTtl ()
@@ -572,7 +577,7 @@ public function testSetCache()
572
577
$ response ->setCache ($ options );
573
578
$ this ->assertEquals ($ response ->getEtag (), '"whatever" ' );
574
579
575
- $ now = new \ DateTime ();
580
+ $ now = $ this -> createDateTimeNow ();
576
581
$ options = array ('last_modified ' => $ now );
577
582
$ response ->setCache ($ options );
578
583
$ this ->assertEquals ($ response ->getLastModified ()->getTimestamp (), $ now ->getTimestamp ());
@@ -631,7 +636,7 @@ public function testSetExpires()
631
636
632
637
$ this ->assertNull ($ response ->getExpires (), '->setExpires() remove the header when passed null ' );
633
638
634
- $ now = new \ DateTime ();
639
+ $ now = $ this -> createDateTimeNow ();
635
640
$ response ->setExpires ($ now );
636
641
637
642
$ this ->assertEquals ($ response ->getExpires ()->getTimestamp (), $ now ->getTimestamp ());
@@ -640,7 +645,7 @@ public function testSetExpires()
640
645
public function testSetLastModified ()
641
646
{
642
647
$ response = new Response ();
643
- $ response ->setLastModified (new \ DateTime ());
648
+ $ response ->setLastModified ($ this -> createDateTimeNow ());
644
649
$ this ->assertNotNull ($ response ->getLastModified ());
645
650
646
651
$ response ->setLastModified (null );
@@ -825,7 +830,7 @@ public function testSettersAreChainable()
825
830
'setCharset ' => 'UTF-8 ' ,
826
831
'setPublic ' => null ,
827
832
'setPrivate ' => null ,
828
- 'setDate ' => new \ DateTime (),
833
+ 'setDate ' => $ this -> createDateTimeNow (),
829
834
'expire ' => null ,
830
835
'setMaxAge ' => 1 ,
831
836
'setSharedMaxAge ' => 1 ,
@@ -858,21 +863,19 @@ public function invalidContentProvider()
858
863
859
864
protected function createDateTimeOneHourAgo ()
860
865
{
861
- $ date = new \DateTime ();
862
-
863
- return $ date ->sub (new \DateInterval ('PT1H ' ));
866
+ return $ this ->createDateTimeNow ()->sub (new \DateInterval ('PT1H ' ));
864
867
}
865
868
866
869
protected function createDateTimeOneHourLater ()
867
870
{
868
- $ date = new \DateTime ();
869
-
870
- return $ date ->add (new \DateInterval ('PT1H ' ));
871
+ return $ this ->createDateTimeNow ()->add (new \DateInterval ('PT1H ' ));
871
872
}
872
873
873
874
protected function createDateTimeNow ()
874
875
{
875
- return new \DateTime ();
876
+ $ date = new \DateTime ();
877
+
878
+ return $ date ->setTimestamp (time ());
876
879
}
877
880
878
881
protected function provideResponse ()
0 commit comments