@@ -79,6 +79,19 @@ public function testIsCacheable()
79
79
$ this ->assertFalse ($ response ->isCacheable ());
80
80
}
81
81
82
+ public function testIsCacheableWithErrorCode ()
83
+ {
84
+ $ response = new Response ('' , 500 );
85
+ $ this ->assertFalse ($ response ->isCacheable ());
86
+ }
87
+
88
+ public function testIsCacheableWithNoStoreDirective ()
89
+ {
90
+ $ response = new Response ();
91
+ $ response ->headers ->set ('cache-control ' , 'private ' );
92
+ $ this ->assertFalse ($ response ->isCacheable ());
93
+ }
94
+
82
95
public function testIsCacheableWithSetTtl ()
83
96
{
84
97
$ response = new Response ();
@@ -118,6 +131,50 @@ public function testIsNotModified()
118
131
$ this ->assertFalse ($ modified );
119
132
}
120
133
134
+ public function testIsNotModifiedNotSafe ()
135
+ {
136
+ $ request = Request::create ('/homepage ' , 'POST ' );
137
+
138
+ $ response = new Response ();
139
+ $ this ->assertFalse ($ response ->isNotModified ($ request ));
140
+ }
141
+
142
+ public function testIsNotModifiedLastModified ()
143
+ {
144
+ $ modified = 'Sun, 25 Aug 2013 18:33:31 GMT ' ;
145
+
146
+ $ request = new Request ();
147
+ $ request ->headers ->set ('If-Modified-Since ' , $ modified );
148
+
149
+ $ response = new Response ();
150
+ $ response ->headers ->set ('Last-Modified ' , $ modified );
151
+
152
+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
153
+
154
+ $ response ->headers ->set ('Last-Modified ' , '' );
155
+ $ this ->assertFalse ($ response ->isNotModified ($ request ));
156
+ }
157
+
158
+ public function testIsNotModifiedEtag ()
159
+ {
160
+ $ etagOne = 'randomly_generated_etag ' ;
161
+ $ etagTwo = 'randomly_generated_etag_2 ' ;
162
+
163
+ $ request = new Request ();
164
+ $ request ->headers ->set ('if_none_match ' , sprintf ('%s, %s, %s ' , $ etagOne , $ etagTwo , 'etagThree ' ));
165
+
166
+ $ response = new Response ();
167
+
168
+ $ response ->headers ->set ('ETag ' , $ etagOne );
169
+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
170
+
171
+ $ response ->headers ->set ('ETag ' , $ etagTwo );
172
+ $ this ->assertTrue ($ response ->isNotModified ($ request ));
173
+
174
+ $ response ->headers ->set ('ETag ' , '' );
175
+ $ this ->assertFalse ($ response ->isNotModified ($ request ));
176
+ }
177
+
121
178
public function testIsValidateable ()
122
179
{
123
180
$ response = new Response ('' , 200 , array ('Last-Modified ' => $ this ->createDateTimeOneHourAgo ()->format (DATE_RFC2822 )));
@@ -366,6 +423,36 @@ public function testPrepareRemovesContentForHeadRequests()
366
423
$ this ->assertEquals ('' , $ response ->getContent ());
367
424
}
368
425
426
+ public function testPrepareRemovesContentForInformationalResponse ()
427
+ {
428
+ $ response = new Response ('foo ' );
429
+ $ request = Request::create ('/ ' );
430
+
431
+ $ response ->setContent ('content ' );
432
+ $ response ->setStatusCode (101 );
433
+ $ response ->prepare ($ request );
434
+ $ this ->assertEquals ('' , $ response ->getContent ());
435
+
436
+ $ response ->setContent ('content ' );
437
+ $ response ->setStatusCode (304 );
438
+ $ response ->prepare ($ request );
439
+ $ this ->assertEquals ('' , $ response ->getContent ());
440
+ }
441
+
442
+ public function testPrepareRemovesContentLength ()
443
+ {
444
+ $ response = new Response ('foo ' );
445
+ $ request = Request::create ('/ ' );
446
+
447
+ $ response ->headers ->set ('Content-Length ' , 12345 );
448
+ $ response ->prepare ($ request );
449
+ $ this ->assertEquals (12345 , $ response ->headers ->get ('Content-Length ' ));
450
+
451
+ $ response ->headers ->set ('Transfer-Encoding ' , 'chunked ' );
452
+ $ response ->prepare ($ request );
453
+ $ this ->assertFalse ($ response ->headers ->has ('Content-Length ' ));
454
+ }
455
+
369
456
public function testPrepareSetsPragmaOnHttp10Only ()
370
457
{
371
458
$ request = Request::create ('/ ' , 'GET ' );
0 commit comments