diff options
Diffstat (limited to 'includes/js/dojo/tests/rpc.js')
-rw-r--r-- | includes/js/dojo/tests/rpc.js | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/includes/js/dojo/tests/rpc.js b/includes/js/dojo/tests/rpc.js new file mode 100644 index 0000000..09c8ef2 --- /dev/null +++ b/includes/js/dojo/tests/rpc.js @@ -0,0 +1,151 @@ +if(!dojo._hasResource["tests.rpc"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["tests.rpc"] = true; +dojo.provide("tests.rpc"); + +dojo.require("dojo.rpc.RpcService"); +dojo.require("dojo.rpc.JsonService"); +dojo.require("dojo.rpc.JsonpService"); + +doh.register("tests.rpc", + [ + + { + name: "JsonRPC-EchoTest", + timeout: 2000, + setUp: function(){ + + var testSmd = { + serviceURL:"../../dojo/tests/resources/test_JsonRPCMediator.php", + methods:[ + { + name:"myecho", + parameters:[ + { + name:"somestring", + type:"STRING" + } + ] + } + ] + } + + this.svc = new dojo.rpc.JsonService(testSmd); + }, + runTest: function(){ + var d = new doh.Deferred(); + var td = this.svc.myecho("RPC TEST"); + + if (window.location.protocol=="file:") { + var err= new Error("This Test requires a webserver and PHP and will fail intentionally if loaded from file://"); + d.errback(err); + return d; + } + + td.addCallbacks(function(result) { + if(result=="<P>RPC TEST</P>"){ + return true; + }else{ + return new Error("JsonRpc-EchoTest test failed, resultant content didn't match"); + } + }, function(result){ + return new Error(result); + }); + + td.addBoth(d, "callback"); + + return d; + } + + }, + + { + name: "JsonRPC-EmptyParamTest", + timeout: 2000, + setUp: function(){ + var testSmd={ + serviceURL:"../../dojo/tests/resources/test_JsonRPCMediator.php", + methods:[ { name:"contentB" } ] + } + + this.svc = new dojo.rpc.JsonService(testSmd); + }, + runTest: function(){ + var d = new doh.Deferred(); + var td = this.svc.contentB(); + + if (window.location.protocol=="file:") { + var err= new Error("This Test requires a webserver and PHP and will fail intentionally if loaded from file://"); + d.errback(err); + return d; + } + + td.addCallbacks(function(result){ + if(result=="<P>Content B</P>"){ + return true; + }else{ + return new Error("JsonRpc-EmpytParamTest test failed, resultant content didn't match"); + } + }, function(result){ + return new Error(result); + }); + + td.addBoth(d, "callback"); + + return d; + } + }, + + { + name: "JsonRPC_SMD_Loading_test", + setUp: function(){ + this.svc = new dojo.rpc.JsonService("../../dojo/tests/resources/testClass.smd"); + }, + runTest: function(){ + + if (this.svc.objectName=="testClass") { + return true; + } else { + return new Error("Error loading and/or parsing an smd file"); + } + } + }, + + { + name: "JsonP_test", + timeout: 10000, + setUp: function(){ + this.svc = new dojo.rpc.JsonpService(dojo.moduleUrl("dojo.tests.resources","yahoo_smd_v1.smd"), {appid: "foo"}); + }, + runTest: function(){ + var d = new doh.Deferred(); + + if (window.location.protocol=="file:") { + var err= new Error("This Test requires a webserver and will fail intentionally if loaded from file://"); + d.errback(err); + return d; + } + + var td = this.svc.webSearch({query:"dojotoolkit"}); + + td.addCallbacks(function(result){ + return true; + if (result["ResultSet"]["Result"][0]["DisplayUrl"]=="dojotoolkit.org/") { + return true; + }else{ + return new Error("JsonRpc_SMD_Loading_Test failed, resultant content didn't match"); + } + }, function(result){ + return new Error(result); + }); + + td.addBoth(d, "callback"); + + return d; + } + } + ] +); + + + +} |