Files
openlayers/master/examples/onloads.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

317 lines
7.7 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Sample Dojo / Dijit Page</title>
<style type="text/css">
#container {
position:absolute;
left:-9999px;
width:9000px;
overflow:hidden;
}
#randomimage {
height:100px;
}
</style>
<!-- load Dojo -->
<script>var djConfig = { isDebug:true }</script>
<script src="../../../dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("doh.runner");
dojo.addOnLoad(function(){
doh.register("testUi",
[
{
name:"basic onload",
timeout:7000,
runTest: function(t){
var d = new doh.Deferred();
try{
var n = dojo.create("img", null, "container");
}catch(e){
d.errback(e);
}
dojo.connect(n, "onload", function(e){
try{
t.is("load", e.type);
t.is(359, n.height, "height mismatch");
t.is(359, n.width, "width mismatch");
}catch(e){
d.errback(e);
return;
}
d.callback(true);
});
n.src = "images/square.jpg";
return d;
}
},
{
name:"basic onload, probably cached",
timeout:17000,
runTest: function(t){
var d = new doh.Deferred();
try{
var n = dojo.create("img", null, "container");
}catch(e){
d.errback(e);
}
dojo.connect(n, "onload", function(e){
try{
t.is("load", e.type);
t.is(359, n.height);
t.is(359, n.width);
}catch(e){
d.errback(e);
return;
}
d.callback(true);
});
n.src = "images/square.jpg";
return d;
}
},
{
name:"set src after long delay",
timeout:5000,
runTest: function(t){
var d = new doh.Deferred();
var n = dojo.place("<img id='bar'/>", "container");
dojo.connect(n, "onload", function(){
t.is(375, n.height);
t.is(500, n.width);
d.callback(true);
})
setTimeout(function(){
n.src = "images/chris1_lg.jpg";
}, 2000)
return d;
}
},
{
name:"test re-calling of onload",
timeout:9000,
runTest: function(t){
var d = new doh.Deferred();
var called = 0;
var n = dojo.create("img", null, "container");
dojo.connect(n, "onload", function(e){
called++;
if(called == 2){
d.callback(true);
}
});
n.src = "images/chris1_sm.jpg";
setTimeout(function(){
n.src = "images/chris1_sm.jpg?" + (new Date().getTime());
}, 1000);
return d;
}
},
{
name:"testing the sizes, styled by js (height)",
timeout:9000,
runTest: function(t){
var d = new doh.Deferred();
var newn = dojo.create("img", null, "container");
dojo.style(newn, "height", "100px");
dojo.connect(newn, "onload", function(e){
try{
t.is(100, newn.height);
t.is(100, newn.width);
d.callback(true);
}catch(e){
d.errback(e);
}
});
newn.src = "images/square.jpg";
return d;
}
},
{
name:"testing the sizes, styled by js (width)",
timeout:9000,
runTest: function(t){
var d = new doh.Deferred();
var newn = dojo.create("img", null, "container");
dojo.style(newn, "width", "100px");
dojo.connect(newn, "onload", function(e){
try{
t.is(100, newn.height);
t.is(100, newn.width);
d.callback(true);
}catch(e){
d.errback(e);
}
});
newn.src = "images/square.jpg";
return d;
}
},
{
name:"testing the sizes, styled by js (both)",
timeout:9000,
runTest: function(t){
var d = new doh.Deferred();
var newn = dojo.create("img", null, "container");
dojo.style(newn, { "height":"100px", "width":"100px" });
dojo.connect(newn, "onload", function(e){
try{
t.is(100, newn.height);
t.is(100, newn.width);
d.callback(true);
}catch(e){
d.errback(e);
}
});
newn.src = "images/square.jpg";
return d;
}
},
// {
// name:"testing the sizes, styled by css (no .src)",
// timeout:9000,
// runTest: function(t){
// var d = new doh.Deferred();
//
// var newn = dojo.byId("randomimage");
// dojo.connect(newn, "onload", function(e){
// try{
// t.is(100, newn.height);
// t.is(100, newn.width);
// d.callback(true);
// }catch(e){
// d.errback(e);
// }
// });
//
// // janky here?:
// setTimeout(function(){
// if(dojo.isOpera){
// d.callback("expecting opera not to fire onload?");
// }
// }, 8500)
//
// return d;
// }
// },
// {
// name:"testing the sizes, styled by css (set .src)",
// timeout:9000,
// runTest: function(t){
// var d = new doh.Deferred();
//
// var newn = dojo.byId("randomimage");
// dojo.connect(newn, "onload", function(e){
// try{
// t.is(100, newn.height);
// t.is(100, newn.width);
// d.callback(true);
// }catch(e){
// d.errback(e);
// }
// });
// newn.src = "images/square.jpg";
//
// return d;
// }
// },
{
name:"testing the sizes, styled by attr ",
timeout:9000,
runTest: function(t){
var d = new doh.Deferred();
var newn = dojo.byId("randomimage");
dojo.connect(newn, "onload", function(e){
try{
t.is(100, newn.height);
t.is(100, newn.width);
d.callback(true);
}catch(e){
d.errback(e);
}
});
newn.height = 100;
newn.src = "images/square.jpg";
return d;
}
},
{
name:"load event does not bubble",
timeout:4000,
runTest: function(t){
var d = new doh.Deferred();
var bubbles; // it doesn't bubble, btw.
var c = dojo.byId("container2")
var x = dojo.connect(c, "load", function(){
d.errback("Should not fire");
dojo.disconnect(x);
});
dojo.create("img", { src:"images/square.jpg" }, "container2");
setTimeout(function(){
dojo.disconnect(x);
d.callback(true);
}, 3000);
return d;
}
}
]
);
doh.run();
//
// var setimg = dojo.create("img", { src:"../rockstar.jpg" });
// setimg.width = 175;
// dojo.connect(setimg, "onload", function(e){
// console.log("attr'd onload", img.height, dojo.style(img, "height"), img.offsetHeight, img.naturalHeight);
// });
//
});
</script>
</head>
<body class="tundra">
<h2>These tests are all expected to take a long time (image loading)</h2>
<p>Some of them might fail</p>
<div id="container">
<div id="container2"></div>
</div>
<img id="randomimage" src="images/square.jpg">
<img id="fixedimage">
</body>
</html>