PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 3.2.5
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v3.2.5
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / vendor / mrclay / minify / tests / HTTPConditionalGetTest.php

HTTPConditionalGetTest.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 3.2.5, at vendor/mrclay/minify/tests/HTTPConditionalGetTest.php

151 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Minify\Test;
4
5 use HTTP_ConditionalGet;
6
7 class HTTPConditionalGetTest extends TestCase
8 {
9 public function TestData()
10 {
11 /*
12 * NOTE: calculate $lmTime as parameter
13 * because dataProviders are executed before tests run,
14 * and in fact each test is new instance of the class, so can't share data
15 * other than parameters.
16 */
17
18 $lmTime = time() - 900;
19 $gmtTime = gmdate('D, d M Y H:i:s \G\M\T', $lmTime);
20
21 $tests = array(
22 array(
23 'lm' => $lmTime,
24 'desc' => 'client has valid If-Modified-Since',
25 'inm' => null,
26 'ims' => $gmtTime,
27 'exp' => array(
28 'Vary' => 'Accept-Encoding',
29 'Last-Modified' => $gmtTime,
30 'ETag' => "\"pri{$lmTime}\"",
31 'Cache-Control' => 'max-age=0, private',
32 '_responseCode' => 'HTTP/1.0 304 Not Modified',
33 'isValid' => true,
34 )
35 ),
36 array(
37 'lm' => $lmTime,
38 'desc' => 'client has valid If-Modified-Since with trailing semicolon',
39 'inm' => null,
40 'ims' => $gmtTime . ';',
41 'exp' => array(
42 'Vary' => 'Accept-Encoding',
43 'Last-Modified' => $gmtTime,
44 'ETag' => "\"pri{$lmTime}\"",
45 'Cache-Control' => 'max-age=0, private',
46 '_responseCode' => 'HTTP/1.0 304 Not Modified',
47 'isValid' => true,
48 ),
49 ),
50 array(
51 'lm' => $lmTime,
52 'desc' => 'client has valid ETag (non-encoded version)',
53 'inm' => "\"badEtagFoo\", \"pri{$lmTime}\"",
54 'ims' => null,
55 'exp' => array(
56 'Vary' => 'Accept-Encoding',
57 'Last-Modified' => $gmtTime,
58 'ETag' => "\"pri{$lmTime}\"",
59 'Cache-Control' => 'max-age=0, private',
60 '_responseCode' => 'HTTP/1.0 304 Not Modified',
61 'isValid' => true,
62 ),
63 ),
64 array(
65 'lm' => $lmTime,
66 'desc' => 'client has valid ETag (gzip version)',
67 'inm' => "\"badEtagFoo\", \"pri{$lmTime};gz\"",
68 'ims' => null,
69 'exp' => array(
70 'Vary' => 'Accept-Encoding',
71 'Last-Modified' => $gmtTime,
72 'ETag' => "\"pri{$lmTime};gz\"",
73 'Cache-Control' => 'max-age=0, private',
74 '_responseCode' => 'HTTP/1.0 304 Not Modified',
75 'isValid' => true,
76 ),
77 ),
78 array(
79 'lm' => $lmTime,
80 'desc' => 'no conditional get',
81 'inm' => null,
82 'ims' => null,
83 'exp' => array(
84 'Vary' => 'Accept-Encoding',
85 'Last-Modified' => $gmtTime,
86 'ETag' => "\"pri{$lmTime};gz\"",
87 'Cache-Control' => 'max-age=0, private',
88 'isValid' => false,
89 ),
90 ),
91 array(
92 'lm' => $lmTime,
93 'desc' => 'client has invalid ETag',
94 'inm' => '"pri' . ($lmTime - 300) . '"',
95 'ims' => null,
96 'exp' => array(
97 'Vary' => 'Accept-Encoding',
98 'Last-Modified' => $gmtTime,
99 'ETag' => "\"pri{$lmTime};gz\"",
100 'Cache-Control' => 'max-age=0, private',
101 'isValid' => false,
102 ),
103 ),
104 array(
105 'lm' => $lmTime,
106 'desc' => 'client has invalid If-Modified-Since',
107 'inm' => null,
108 'ims' => gmdate('D, d M Y H:i:s \G\M\T', $lmTime - 300),
109 'exp' => array(
110 'Vary' => 'Accept-Encoding',
111 'Last-Modified' => $gmtTime,
112 'ETag' => "\"pri{$lmTime};gz\"",
113 'Cache-Control' => 'max-age=0, private',
114 'isValid' => false,
115 ),
116 ),
117 );
118 return $tests;
119 }
120
121 /**
122 * @dataProvider TestData
123 */
124 public function test_HTTP_ConditionalGet($lmTime, $desc, $inm, $ims, $exp)
125 {
126 // setup env
127 if (null === $inm) {
128 unset($_SERVER['HTTP_IF_NONE_MATCH']);
129 } else {
130 $_SERVER['HTTP_IF_NONE_MATCH'] = PHP_VERSION_ID < 50400 && get_magic_quotes_gpc()
131 ? addslashes($inm) :
132 $inm;
133 }
134
135 if (null === $ims) {
136 unset($_SERVER['HTTP_IF_MODIFIED_SINCE']);
137 } else {
138 $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $ims;
139 }
140
141 $cg = new HTTP_ConditionalGet(array(
142 'lastModifiedTime' => $lmTime,
143 'encoding' => 'x-gzip',
144 ));
145 $ret = $cg->getHeaders();
146 $ret['isValid'] = $cg->cacheIsValid;
147
148 $this->assertEquals($exp, $ret, $desc);
149 }
150 }
151