summaryrefslogtreecommitdiff
path: root/includes/js/dojo/tests/_base/xhr.html
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojo/tests/_base/xhr.html')
-rw-r--r--includes/js/dojo/tests/_base/xhr.html404
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>
+