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
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> |