summaryrefslogtreecommitdiff
path: root/plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php')
-rw-r--r--plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php137
1 files changed, 137 insertions, 0 deletions
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php b/plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php
new file mode 100644
index 000000000..66d571249
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/test_HTTP_ConditionalGet.php
@@ -0,0 +1,137 @@
+<?php
+require_once '_inc.php';
+
+require_once 'HTTP/ConditionalGet.php';
+
+function test_HTTP_ConditionalGet()
+{
+ global $thisDir;
+
+ $lmTime = time() - 900;
+ $gmtTime = gmdate('D, d M Y H:i:s \G\M\T', $lmTime);
+
+ $tests = array(
+ array(
+ 'desc' => 'client has valid If-Modified-Since'
+ ,'inm' => null
+ ,'ims' => $gmtTime
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime}\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'_responseCode' => 'HTTP/1.0 304 Not Modified'
+ ,'isValid' => true
+ )
+ )
+ ,array(
+ 'desc' => 'client has valid If-Modified-Since with trailing semicolon'
+ ,'inm' => null
+ ,'ims' => $gmtTime . ';'
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime}\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'_responseCode' => 'HTTP/1.0 304 Not Modified'
+ ,'isValid' => true
+ )
+ )
+ ,array(
+ 'desc' => 'client has valid ETag (non-encoded version)'
+ ,'inm' => "\"badEtagFoo\", \"pri{$lmTime}\""
+ ,'ims' => null
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime}\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'_responseCode' => 'HTTP/1.0 304 Not Modified'
+ ,'isValid' => true
+ )
+ )
+ ,array(
+ 'desc' => 'client has valid ETag (gzip version)'
+ ,'inm' => "\"badEtagFoo\", \"pri{$lmTime};gz\""
+ ,'ims' => null
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime};gz\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'_responseCode' => 'HTTP/1.0 304 Not Modified'
+ ,'isValid' => true
+ )
+ )
+ ,array(
+ 'desc' => 'no conditional get'
+ ,'inm' => null
+ ,'ims' => null
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime};gz\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'isValid' => false
+ )
+ )
+ ,array(
+ 'desc' => 'client has invalid ETag'
+ ,'inm' => '"pri' . ($lmTime - 300) . '"'
+ ,'ims' => null
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime};gz\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'isValid' => false
+ )
+ )
+ ,array(
+ 'desc' => 'client has invalid If-Modified-Since'
+ ,'inm' => null
+ ,'ims' => gmdate('D, d M Y H:i:s \G\M\T', $lmTime - 300)
+ ,'exp' => array(
+ 'Vary' => 'Accept-Encoding'
+ ,'Last-Modified' => $gmtTime
+ ,'ETag' => "\"pri{$lmTime};gz\""
+ ,'Cache-Control' => 'max-age=0, private'
+ ,'isValid' => false
+ )
+ )
+ );
+
+ foreach ($tests as $test) {
+ // setup env
+ if (null === $test['inm']) {
+ unset($_SERVER['HTTP_IF_NONE_MATCH']);
+ } else {
+ $_SERVER['HTTP_IF_NONE_MATCH'] = get_magic_quotes_gpc()
+ ? addslashes($test['inm'])
+ : $test['inm'];
+ }
+ if (null === $test['ims']) {
+ unset($_SERVER['HTTP_IF_MODIFIED_SINCE']);
+ } else {
+ $_SERVER['HTTP_IF_MODIFIED_SINCE'] = $test['ims'];
+ }
+ $exp = $test['exp'];
+
+ $cg = new HTTP_ConditionalGet(array(
+ 'lastModifiedTime' => $lmTime
+ ,'encoding' => 'x-gzip'
+ ));
+ $ret = $cg->getHeaders();
+ $ret['isValid'] = $cg->cacheIsValid;
+
+ $passed = assertTrue($exp == $ret, 'HTTP_ConditionalGet : ' . $test['desc']);
+
+ if (__FILE__ === realpath($_SERVER['SCRIPT_FILENAME'])) {
+ echo "\n--- INM = {$test['inm']} / IMS = {$test['ims']}\n";
+ echo "Expected = " . preg_replace('/\\s+/', ' ', var_export($exp, 1)) . "\n";
+ echo "Returned = " . preg_replace('/\\s+/', ' ', var_export($ret, 1)) . "\n\n";
+ }
+ }
+}
+
+test_HTTP_ConditionalGet(); \ No newline at end of file