Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
        <title>Dijit raw programatic test suite | The Dojo Toolkit</title>

        <style type="text/css">
                @import "../../dojo/resources/dojo.css";
                @import "css/dijitTests.css";
                body, html { width:100%; height:100%; margin:0; padding:0; background:#fff !important; } 
        </style>

        <script type="text/javascript" src="../../dojo/dojo.js"
                djConfig="parseOnLoad: true, isDebug: true"></script>
        <script type="text/javascript" src="_testCommon.js"></script>

        <script language="JavaScript" type="text/javascript">
                dojo.require("dojo.data.ItemFileReadStore");
                dojo.require("dijit.dijit-all"); 

                var randomParams = function(){
                        // need better params to test passing
                        return { "length" : 20  };
                };

                var inspectClass = function(fullClassName){
                        var newDijit, newDijitDom, newDijitParam = null;
                        var createdWidgets = [];
                        className = eval(fullClassName); // 

                        // just try to make the class:
                        try{
                                newDijit = new className({});
                                createdWidgets.push(newDijit);
                        }catch(e){
                                console.warn('new only: ',fullClassName,e); 
                        }

                        // try starting this widget
                        try{
                                if (newDijit && newDijit.startup){ newDijit.startup(); } 
                        }catch(e){
                                console.warn('call startup: ',fullClassName,e); 
                        }

                        // try with a div in the dom
                        try{
                                var tmpDiv = dojo.body().appendChild(document.createElement('div'));
                                newDijitDom = new className({},tmpDiv);
                                createdWidgets.push(newDijitDom);
                        }catch(e){
                                console.warn('attached to div: ',fullClassName,e);
                        }

                        // lets pass random parameters
                        try{
                                var tmpDiv = dojo.body().appendChild(document.createElement('div'));
                                newDijitParam = new className(randomParams(),tmpDiv);
                                createdWidgets.push(newDijitParam);             
                        }catch(e){
                                console.warn('random param test: ',fullClassName,e); 
                        }
                        // add more tests ...

                        // cleanup after ourselves
                        dojo.forEach(createdWidgets,function(byeWidget){
                                try{
                                        if(byeWidget.destroy){ byeWidget.destroy(); }
                                }catch(e){
                                        console.warn('destroying: ',byeWidget.declaredClass,e,byeWidget);
                                }
                        });

                };

                var storeError = function(e,request){
                        console.warn(e,request);
                };
                
                var storeReady = function(items,request){
                        dojo.forEach(items,function(item){
                                var testClass = theStore.getValue(item,"className");
                                try{
                                        inspectClass(testClass);
                                }catch(e){
                                        console.warn(e);
                                }
                        });
                };

                var init = function(){
                        var request = {
                                query: { },
                                onComplete: storeReady,
                                onError: storeError
                        };
                        theStore.fetch(request);
                };
                dojo.addOnLoad(init);

        </script>

</head>
<body>
        <div dojoType="dojo.data.ItemFileReadStore" jsId="theStore"
                url="../tests/_data/dijits.json"></div>
        
</body>
</html>