diff options
Diffstat (limited to 'includes/js/dojo/tests/io/scriptTimeout.html')
-rw-r--r-- | includes/js/dojo/tests/io/scriptTimeout.html | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/includes/js/dojo/tests/io/scriptTimeout.html b/includes/js/dojo/tests/io/scriptTimeout.html new file mode 100644 index 0000000..563e37c --- /dev/null +++ b/includes/js/dojo/tests/io/scriptTimeout.html @@ -0,0 +1,67 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> + <head> + <title>Testing dojo.io.script</title> + <style type="text/css"> + @import "../../resources/dojo.css"; + </style> + <script type="text/javascript" + src="../../dojo.js" djConfig="isDebug: true"></script> + <script type="text/javascript"> + dojo.require("dojo.io.script"); + + function startTest(){ + var td = dojo.io.script.get({ + url: "../_base/timeout.php", + callbackParamName: "callback", + content: {Foo: 'Bar'}, + timeout: 500, + handleAs: "json", + preventCache: true, + handle: function(response, ioArgs){ + if(response instanceof Error && response.dojoType == "timeout"){ + console.debug("TEST OK. No errors should be seen after this timeout error."); + }else{ + console.debug("TEST FAILED: some other error or response received: ", response); + } + } + }); + } + </script> + </head> + <body> + <h1>Timeout test</h1> + + <p> + This test page tests the timeout functionality of dojo.io.script, and to make + sure that requests that time out get removed quickly. If the server response + is received after the script has been timed out, there should not be weird + errors as the browser tries to evaluate the responses after the desired time + period. + </p> + + <p>This test requires a server running PHP to work.</p> + + <p> + <p><strong>Firefox Oddity:</strong> Firefox + will print an error after the script response is received from the server:<br /> + <span style="color: red">dojo.io.script.jsonp_dojoIoScript1 has no properties</span> + This is bad because Firefox goes ahead and evaluates the script contents in the page's + JavaScript space (this happens even when I turn off Firefox Add-Ons). All other browsers + do not evaluate the script (given the weird Opera 9.22 behavior below). You can test this + by clicking the <b>Test for SuperXFooBarVariable</b> button after receiving the response + for timeout.php (check Firebug Net tab to see when request is received). All other browsers + show an error or show the "undefined" value for SuperXFooBarVariable, but Firefox will show its + value as being: "Oh no! SuperXFooBarVariable is defined (should not be for timeout case)". + + <p><strong>Opera Oddity:</strong> Opera 9.22 does not seem to trigger the timeout case, + but rather it waits for the server to send a response to the script before continuing past the + point where the script is added to the DOM? That seems wrong. Dynamic script tags are no longer + an async operation? + </p> + + <button onclick="startTest()">Start Test</button> + <button onclick="alert(SuperXFooBarVariable)">Test for SuperXFooBarVariable</button> + </body> +</html> |