SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
6.2 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test content loader</title>
<script type="text/javascript">
var djConfig = {isDebug: true};
djConfig.debugAtAllCosts = true;
</script>
<script type="text/javascript" src="../../dojo.js"></script>
<script language="JavaScript" type="text/javascript">
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.html.loader");
dojo.require("dojo.lang.assert");
dojo.hostenv.writeIncludes();
</script>
<script>
var postCreate = false;
var show = false;
var del = false;
// make a custom widget
dojo.widget.defineWidget(
"dojo.widget.testLoader",
dojo.widget.HtmlWidget,
function(){
dojo.widget.html.loader.hookUp({widget: this});
},
{
isContainer: true,
// should still fire these 3 functions
postCreate: function(){
// test infinites loop
dojo.debug("postCreate "+this.widgetId);
this.constructor.superclass.postCreate.apply(this, arguments);
postCreate = true;
},
show: function(){
// test infinites loop
dojo.debug("show "+this.widgetId);
this.constructor.superclass.show.apply(this, arguments);
show = true;
},
destroy: function(){
// test inifinite loop
dojo.debug("destroy "+this.widgetId);
this.constructor.superclass.destroy.apply(this, arguments);
del = true;
}
}
);
dojo.addOnLoad(function(){
try{
var isFunc = dojo.lang.isFunction;
var unDef = dojo.lang.isUndefined;
var a = dojo.lang.assert;
var mess = " wrong type, not a func";
var messu = " wrong type, is undefined";
var w = dojo.widget.byId("test");
var cont = "This content should abort our doc0.html initial href, aka this should win"
w.setContent(cont);dojo.debug("here");
dojo.debug("start testing");
// test functions
a(isFunc(w.setContent), "setContent"+mess);
a(isFunc(w.setUrl), "setUrl"+mess);
a(isFunc(w.loadContents, "loadContents"+mess));
a((postCreate==true), "widget specific postCreate not called");
w.show();
a((show==true), "widget specific show not called");
a(isFunc(w.refresh), "refresh"+mess);
a(isFunc(w.abort), "abort"+mess);
a(isFunc(w.onLoad), "onLoad"+mess);
a(isFunc(w.onUnLoad), "onUnLoad"+mess);
a(isFunc(w.addOnLoad), "addOnLoad"+mess);
a(isFunc(w.addOnUnLoad), "addOnUnLoad"+mess);
a(isFunc(w.onDownloadStart), "onDownloadStart"+mess);
a(isFunc(w.onDownloadEnd), "onDownloadEnd"+mess);
a(isFunc(w.onDownloadError), "onDownloadError"+mess);
a(isFunc(w.onExecError), "onExecError"+mess);
a(isFunc(w.onSetContent), "onSetContent"+mess);
a(isFunc(w.onContentParse), "onContentParse"+mess);
a(isFunc(w.onExecScript), "onExecScript"+mess);
a(isFunc(w.setHandler), "setHandler"+mess);
a((typeof w.loader == 'object'), "loader object wasent found")
// test properties
a(!unDef(w.adjustPaths), "adjustPaths"+messu);
a(!unDef(w.href), "href"+messu);
a(!unDef(w.extractContent), "extractContent"+messu);
a(!unDef(w.parseContent), "parseContent"+messu);
a(!unDef(w.cacheContent), "cacheContent"+messu);
a(!unDef(w.bindArgs), "bindArgs"+messu);
a(!unDef(w.preload), "preload"+messu);
a(!unDef(w.refreshOnShow), "refreshOnShow"+messu);
a(!unDef(w.handler), "handler"+messu);
a(!unDef(w.trackHistory), "trackHistory"+messu);
a(!unDef(w.executeScripts), "executeScripts"+messu);
a(!unDef(w.scriptScope), "scriptScope"+messu);
// make sure we havent calles destroy yet
a((del==false), "destroy called prematurely");
// now make sure we have aborted href load
a((w.domNode.innerHTML==cont), cont+" wasnt set, or overriden by a async call");
a((w.href==""), "href!='', setContent should clear href");
dojo.debug("Testing to unHook")
// dettach loader form our widget
w.loader.unHook();
// let the browser do its stuff
// make sure it cleaned up after itself
// test functions
mess = " isnt cleared on loader.unHook()";
messu = " wrong type should be undefined";
a(!isFunc(w.setContent), "setContent"+mess);
a(!isFunc(w.setUrl), "setUrl"+mess);
a(!isFunc(w.loadContents, "loadContents"+mess));
a(!isFunc(w.refresh), "refresh"+mess);
a(!isFunc(w.abort), "abort"+mess);
a(!isFunc(w.onLoad), "onLoad"+mess);
a(!isFunc(w.onUnLoad), "onUnLoad"+mess);
a(!isFunc(w.addOnLoad), "addOnLoad"+mess);
a(!isFunc(w.addOnUnLoad), "addOnUnLoad"+mess);
a(!isFunc(w.onDownloadStart), "onDownloadStart"+mess);
a(!isFunc(w.onDownloadEnd), "onDownloadEnd"+mess);
a(!isFunc(w.onDownloadError), "onDownloadError"+mess);
a(!isFunc(w.onExecError), "onExecError"+mess);
a(!isFunc(w.onSetContent), "onSetContent"+mess);
a(!isFunc(w.onContentParse), "onContentParse"+mess);
a(!isFunc(w.onExecScript), "onExecScript"+mess);
a(!isFunc(w.setHandler), "setHandler"+mess);;
a(unDef(w.loader), "loader object"+mess);
// test properties
// a(unDef(w.adjustPaths), "adjustPaths"+messu); // cant make these work
// a(unDef(w.href), "href"+messu);
a(unDef(w.extractContent), "extractContent"+messu);
a(unDef(w.parseContent), "parseContent"+messu);
a(unDef(w.cacheContent), "cacheContent"+messu);
a(unDef(w.bindArgs), "bindArgs"+messu);
a(unDef(w.preload), "preload"+messu);
a(unDef(w.refreshOnShow), "refreshOnShow"+messu);
a(unDef(w.handler), "handler"+messu);
a(unDef(w.trackHistory), "trackHistory"+messu);
a(unDef(w.executeScripts), "executeScripts"+messu);
a(unDef(w.scriptScope), "scriptScope"+messu);
// make sure we havent calles destroy yet
a((del==false), "destroy called prematurely");
// now make sure we have aborted href load
a((w.domNode.innerHTML==cont), cont+" unhook affected innerHTML");
// destroy our widget
w.destroy();
a((del==true), "destroy wasent called");
var div = dojo.byId("status");
div.innerHTML = "<p>Success!</p>"
div.style.backgroundColor = "green";
}catch(e){dojo.debug("error: "+e)}
});
</script>
</head>
<body>
<h1>Test for loader (base class for ContentPane etc.)</h1>
<h2>Experimental!</h2>
<div dojoType="testLoader" widgetId="test" href="doc0.html" style="border: 2px dashed red;">this is a widget</div>
<div id="status" style="text-align: center; font-size: 16pt; background-color: red">If test passes this gets green</div>
</body>
</html>