diff options
Diffstat (limited to 'includes/js/dojo/tests/_base/xhr.html')
-rw-r--r-- | includes/js/dojo/tests/_base/xhr.html | 404 |
1 files changed, 404 insertions, 0 deletions
diff --git a/includes/js/dojo/tests/_base/xhr.html b/includes/js/dojo/tests/_base/xhr.html new file mode 100644 index 0000000..ddc1bb4 --- /dev/null +++ b/includes/js/dojo/tests/_base/xhr.html @@ -0,0 +1,404 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> + <head> + <title>testing form and xhr utils</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <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("doh.runner"); + dojo.addOnLoad(function(){ + var f1fo = { 'blah': "blah" }; + var f1foStr = "blah=blah"; + var f1foJson = '{"blah":"blah"}'; + + var f2fo = { + blah: "blah", + multi: [ + "thud", + "thonk" + ], + textarea: "textarea_value" + }; + var f2foStr = "blah=blah&multi=thud&multi=thonk&textarea=textarea_value"; + var f2foJson = '{"blah":"blah","multi":["thud","thonk"],"textarea":"textarea_value"}'; + + var f3fo = { + spaces: "string with spaces" + }; + var f3foStr = "spaces=string%20with%20spaces&"; + var f3foJson = '{"spaces":"string with spaces"}'; + + var f5fo = { 'blåh': "bláh" }; + var f5foStr = "bl%C3%A5h=bl%C3%A1h"; + var f5foJson = '{"blåh":"bláh"}'; + + + doh.register("t", + [ + function formNodeToObject(t){ + t.is(f1fo , dojo.formToObject(dojo.byId("f1"))); + t.is(f5fo , dojo.formToObject(dojo.byId("f5"))); + }, + function formIdToObject(t){ + t.is(f1fo , dojo.formToObject("f1")); + t.is(f5fo , dojo.formToObject("f5")); + }, + function formToObjectWithMultiSelect(t){ + t.is(f2fo , dojo.formToObject("f2")); + }, + function objectToQuery(t){ + t.is(f1foStr , dojo.objectToQuery(f1fo)); + t.is(f5foStr , dojo.objectToQuery(f5fo)); + }, + function objectToQueryArr(t){ + t.is(f2foStr, dojo.objectToQuery(f2fo)); + }, + function formToQuery(t){ + t.is(f1foStr, dojo.formToQuery("f1")); + t.is(f5foStr, dojo.formToQuery("f5")); + }, + function formToQueryArr(t){ + t.is(f2foStr, dojo.formToQuery("f2")); + }, + function formToJson(t){ + t.is(f1foJson, dojo.formToJson("f1")); + t.is(f5foJson, dojo.formToJson("f5")); + }, + function formToJsonArr(t){ + t.is(f2foJson, dojo.formToJson("f2")); + }, + function queryToObject(t){ + t.is(f1fo , dojo.queryToObject(f1foStr)); + t.is(f2fo , dojo.queryToObject(f2foStr)); + t.is(f3fo , dojo.queryToObject(f3foStr)); + t.is(f5fo , dojo.queryToObject(f5foStr)); + }, + function textContentHandler(t){ + t.is("foo bar baz ", + dojo._contentHandlers.text({ + responseText: "foo bar baz " + }) + ); + }, + function jsonContentHandler(t){ + var jsonObj = { + foo: "bar", + baz: [ + { thonk: "blarg" }, + "xyzzy!" + ] + }; + t.is(jsonObj, + dojo._contentHandlers.json({ + responseText: dojo.toJson(jsonObj) + }) + ); + }, + function jsonCFContentHandler(t){ + var jsonObj = { + foo: "bar", + baz: [ + { thonk: "blarg" }, + "xyzzy!" + ] + }; + var e; + try{ + dojo._contentHandlers["json-comment-filtered"]({ + responseText: dojo.toJson(jsonObj) + }) + }catch(ex){ + e = ex; + }finally{ + // did we fail closed? + t.is((typeof e), "object"); + } + t.is(jsonObj, + dojo._contentHandlers["json-comment-filtered"]({ + responseText: "\tblag\n/*"+dojo.toJson(jsonObj)+"*/\n\r\t\r" + }) + ); + }, + function jsContentHandler(t){ + var jsonObj = { + foo: "bar", + baz: [ + { thonk: "blarg" }, + "xyzzy!" + ] + }; + t.is(jsonObj, + dojo._contentHandlers["javascript"]({ + responseText: "("+dojo.toJson(jsonObj)+")" + }) + ); + t.t(dojo._contentHandlers["javascript"]({ + responseText: "true;" + }) + ); + t.f(dojo._contentHandlers["javascript"]({ + responseText: "false;" + }) + ); + }, + function xmlContentHandler(t){ + var fauxObj = { + foo: "bar", + baz: [ + { thonk: "blarg" }, + "xyzzy!" + ] + }; + t.is(fauxObj, + dojo._contentHandlers["xml"]({ responseXML: fauxObj }) + ); + }, + function xhrGet(t){ + var d = new doh.Deferred(); + var td = dojo.xhrGet({ + url: "xhr.html", // self + preventCache: true, + load: function(text, ioArgs){ + t.is(4, ioArgs.xhr.readyState); + return text; //must return a value here or the parent test deferred fails. + } + }); + t.t(td instanceof dojo.Deferred); + td.addCallback(d, "callback"); + return d; + }, + function xhrGet404(t){ + var d = new doh.Deferred(); + try{ + var td = dojo.xhrGet({ + url: "xhr_blarg.html", // doesn't exist + error: function(err, ioArgs){ + t.is(404, ioArgs.xhr.status); + return err; //must return a value here or the parent test deferred fails. + } + }); + // td.addErrback(d, "callback"); + }catch(e){ + d.callback(true); + } + // return d; + }, + function xhrGetContent(t){ + var d = new doh.Deferred(); + var td = dojo.xhrGet({ + url: "xhr.html?color=blue", + content: { + foo: [ "bar", "baz" ], + thud: "thonk", + xyzzy: 3 + } + }); + td.addCallback(function(text){ + // console.debug(td, td.xhr, td.args); + t.is("xhr.html?color=blue&foo=bar&foo=baz&thud=thonk&xyzzy=3", + td.ioArgs.url); + d.callback(true); + }); + return d; + }, + function xhrGetForm(t){ + var d = new doh.Deferred(); + var td = dojo.xhrGet({ + url: "xhr.html", // self + form: "f3" + }); + td.addCallback(function(xhr){ + // console.debug(td.args.url); + t.is("xhr.html?spaces=string%20with%20spaces", td.ioArgs.url); + d.callback(true); + }); + return d; + }, + function xhrGetFormWithContent(t){ + // ensure that stuff passed via content over-rides + // what's specified in the form + var d = new doh.Deferred(); + var td = dojo.xhrGet({ + url: "xhr.html", // self + form: "f3", + content: { spaces: "blah" } + }); + td.addCallback(function(xhr){ + // console.debug(td.args.url); + t.is("xhr.html?spaces=blah", td.ioArgs.url); + d.callback(true); + }); + return d; + }, + function xhrPost(t){ + var d = new doh.Deferred(); + var td = dojo.xhrPost({ + url: "xhr.html?foo=bar", // self + content: { color: "blue"}, + handle: function(res, ioArgs){ + if((dojo._isDocumentOk(ioArgs.xhr))|| + (ioArgs.xhr.status == 405) + ){ + d.callback(true); + }else{ + d.errback(false); + } + } + }); + // t.t(td instanceof dojo.Deferred); + return d; + }, + function xhrPostWithContent(t){ + var d = new doh.Deferred(); + var td = dojo.xhrPost({ + url: "xhr.html", + content: { + foo: [ "bar", "baz" ], + thud: "thonk", + xyzzy: 3 + } + }); + td.addBoth(function(text){ + t.is("foo=bar&foo=baz&thud=thonk&xyzzy=3", + td.ioArgs.query); + if( (dojo._isDocumentOk(td.ioArgs.xhr))|| + (td.ioArgs.xhr.status == 405) + ){ + d.callback(true); + }else{ + d.errback(false); + } + }); + return d; + }, + function xhrPostForm(t){ + var d = new doh.Deferred(); + var form = dojo.byId("f4"); + + //Make sure we can send a form to its + //action URL. See trac: #2844. + var td = dojo.xhrPost({ + form: form + }); + td.addCallback(function(){ + d.callback(true); + }); + td.addErrback(function(error){ + d.callback(error); + }); + // t.t(td instanceof dojo.Deferred); + return d; + }, + function rawXhrPost(t){ + var d = new doh.Deferred(); + var td = dojo.rawXhrPost({ + url: "xhr.html", // self + postContent: "foo=bar&color=blue&height=average", + handle: function(res, ioArgs){ + if((dojo._isDocumentOk(ioArgs.xhr))|| + (ioArgs.xhr.status == 405) + ){ + d.callback(true); + }else{ + d.errback(false); + } + } + }); + // t.t(td instanceof dojo.Deferred); + return d; + }, + function xhrPut(t){ + var d = new doh.Deferred(); + var td = dojo.xhrPut({ + url: "xhrDummyMethod.php?foo=bar", // self + content: { color: "blue"}, + handle: function(res, ioArgs){ + if((dojo._isDocumentOk(ioArgs.xhr))|| + (ioArgs.xhr.status == 403) + ){ + d.callback(true); + }else{ + d.errback(false); + } + } + }); + // t.t(td instanceof dojo.Deferred); + return d; + }, + function xhrDelete(t){ + var d = new doh.Deferred(); + var td = dojo.xhrDelete({ + url: "xhrDummyMethod.php", // self + preventCache: true, + handle: function(res, ioArgs){ + if((dojo._isDocumentOk(ioArgs.xhr))|| + (ioArgs.xhr.status == 403) + ){ + d.callback(true); + }else{ + d.errback(false); + } + } + }); + // t.t(td instanceof dojo.Deferred); + return d; + }, + function xhrCancel(t){ + var d = new doh.Deferred(); + var td = dojo.xhrPost({ + url: "xhrDummyMethod.php", // self + handle: function(res, ioArgs){ + if(res instanceof Error && res.dojoType == "cancel"){ + d.callback(true); + }else{ + d.errback(false); + } + } + }); + td.cancel(); + // t.t(td instanceof dojo.Deferred); + return d; + } + // FIXME: need to add tests for wrapForm + ] + ); + doh.run(); + }); + </script> + </head> + <body> + <form id="f1" style="border: 1px solid black;"> + <input type="text" name="blah" value="blah"> + <input type="text" name="no_value" value="blah" disabled> + <input type="button" name="no_value2" value="blah"> + </form> + <form id="f2" style="border: 1px solid black;"> + <input type="text" name="blah" value="blah"> + <input type="text" name="no_value" value="blah" disabled> + <input type="button" name="no_value2" value="blah"> + <select type="select" multiple name="multi" size="5"> + <option value="blah">blah</option> + <option value="thud" selected>thud</option> + <option value="thonk" selected>thonk</option> + </select> + <textarea name="textarea">textarea_value</textarea> + </form> + <form id="f3" style="border: 1px solid black;"> + <input type="hidden" name="spaces" value="string with spaces"> + </form> + <form id="f4" style="border: 1px solid black;" action="xhrDummyMethod.php"> + <input type="hidden" name="action" value="Form with input named action"> + </form> + <form id="f5" style="border: 1px solid black;"> + <input type="text" name="blåh" value="bláh"> + <input type="text" name="no_value" value="blah" disabled> + <input type="button" name="no_value2" value="blah"> + </form> + </body> +</html> + |