@@ -326,6 +326,75 @@ public function testContentTypeCharset()
326
326
$ this ->assertEquals ('text/css; charset=UTF-8 ' , $ response ->headers ->get ('Content-Type ' ));
327
327
}
328
328
329
+ public function testNoCacheControlHeaderOnAttachmentUsingHTTPSAndMSIE ()
330
+ {
331
+ // Check for HTTPS and IE 8
332
+ $ request = new Request ();
333
+ $ request ->server ->set ('HTTPS ' , true );
334
+ $ request ->server ->set ('HTTP_USER_AGENT ' , 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0) ' );
335
+
336
+ $ response = new Response ();
337
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
338
+ $ response ->prepare ($ request );
339
+
340
+ $ this ->assertFalse ($ response ->headers ->has ('Cache-Control ' ));
341
+
342
+ // Check for IE 10 and HTTPS
343
+ $ request ->server ->set ('HTTP_USER_AGENT ' , 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) ' );
344
+
345
+ $ response = new Response ();
346
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
347
+ $ response ->prepare ($ request );
348
+
349
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
350
+
351
+ // Check for IE 9 and HTTPS
352
+ $ request ->server ->set ('HTTP_USER_AGENT ' , 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0) ' );
353
+
354
+ $ response = new Response ();
355
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
356
+ $ response ->prepare ($ request );
357
+
358
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
359
+
360
+ // Check for IE 9 and HTTP
361
+ $ request ->server ->set ('HTTPS ' , false );
362
+
363
+ $ response = new Response ();
364
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
365
+ $ response ->prepare ($ request );
366
+
367
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
368
+
369
+ // Check for IE 8 and HTTP
370
+ $ request ->server ->set ('HTTP_USER_AGENT ' , 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0) ' );
371
+
372
+ $ response = new Response ();
373
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
374
+ $ response ->prepare ($ request );
375
+
376
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
377
+
378
+ // Check for non-IE and HTTPS
379
+ $ request ->server ->set ('HTTPS ' , true );
380
+ $ request ->server ->set ('HTTP_USER_AGENT ' , 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17 ' );
381
+
382
+ $ response = new Response ();
383
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
384
+ $ response ->prepare ($ request );
385
+
386
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
387
+
388
+ // Check for non-IE and HTTP
389
+ $ request ->server ->set ('HTTPS ' , false );
390
+
391
+ $ response = new Response ();
392
+ $ response ->headers ->set ('Content-Disposition ' , 'attachment; filename="fname.ext" ' );
393
+ $ response ->prepare ($ request );
394
+
395
+ $ this ->assertTrue ($ response ->headers ->has ('Cache-Control ' ));
396
+ }
397
+
329
398
public function testPrepareDoesNothingIfContentTypeIsSet ()
330
399
{
331
400
$ response = new Response ('foo ' );
0 commit comments