Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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("dojox.rpc","yahoo.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;
                        }
                }
        ]
);



}