| <?php |
| require_once '../resources/portabilityLayer.php'; |
| |
| // This test loads an uncacheable main resource and a cacheable image subresource. |
| // We request this page as a GET, then reload this page with a POST. |
| // On the post request, the image should be loaded from the cache and no HTTP |
| // request should be sent. The image resource will return 404 if it receives |
| // a second request, which will cause us to FAIL. |
| // See https://bugs.webkit.org/show_bug.cgi?id=38690 |
| header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); |
| header('Pragma: no-cache'); |
| header('Expires: ' . gmdate(DATE_RFC1123, time()-1)); |
| ?> |
| <html> |
| <body> |
| <div id="result"></div> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function logAndFinish(message) |
| { |
| document.getElementById("result").appendChild(document.createTextNode(message)); |
| var xhr = new XMLHttpRequest; |
| xhr.open("GET", "../resources/reset-temp-file.php?filename=cache_post-with-cached-subresources_state", false); |
| xhr.send(null); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| </script> |
| <?php |
| clearstatcache(); |
| if ($_POST["submit"] == "finish") { |
| // The initial load of the image might have been done from the cache. In that case, touch the |
| // state file to indicate a load has already occurred. |
| if (!file_exists(sys_get_temp_dir() . "/cache_post-with-cached-subresources_state")) { |
| echo "<script>"; |
| echo "xhr = new XMLHttpRequest;"; |
| echo "xhr.open('GET', '../resources/touch-temp-file.php?filename=cache_post-with-cached-subresources_state', false);"; |
| echo "xhr.send(null);"; |
| echo "</script>"; |
| } |
| echo "<img src='resources/post-image-to-verify.php?test=cache_post-with-cached-subresources' onload=\"logAndFinish('PASS');\" onerror=\"logAndFinish('FAIL');\"></img>"; |
| } else { |
| echo "<form action='post-with-cached-subresources.php' method='post'>"; |
| echo "<input type='submit' id='submit' name='submit' value='finish'>"; |
| echo "</form>"; |
| echo "<img src='resources/post-image-to-verify.php?test=cache_post-with-cached-subresources' onload=\"document.getElementById('submit').click();\" onerror=\"logAndFinish('FAIL on initial load');\"></img>"; |
| } |
| ?> |
| </body> |
| </html> |