New file |
0,0 → 1,98 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
"http://www.w3.org/TR/html4/strict.dtd"> |
<html> |
<head> |
<title>Testing dojo.behavior</title> |
<style type="text/css"> |
@import "../resources/dojo.css"; |
</style> |
<script type="text/javascript" |
src="../dojo.js" djConfig="isDebug: false"></script> |
<script type="text/javascript"> |
dojo.require("doh.runner"); |
dojo.require("dojo.behavior"); |
|
var applyCount = 0; |
|
var behaviorObj = { |
".bar": function(elem){ |
dojo.style(elem, "opacity", 0.5); |
applyCount++; |
}, |
".foo > span": function(elem){ |
elem.style.fontStyle = "italic"; |
applyCount++; |
} |
} |
|
var topicCount = 0; |
dojo.subscribe("/foo", function(){ topicCount++; }); |
|
// no behaviors should be executed when onload fires |
dojo.addOnLoad(function(){ |
doh.register("t", |
[ |
function add(t){ |
t.f(dojo.behavior._behaviors[".bar"]); |
t.f(dojo.behavior._behaviors[".foo > span"]); |
dojo.behavior.add(behaviorObj); |
// make sure they got plopped in |
t.t(dojo.behavior._behaviors[".bar"]); |
t.is(1, dojo.behavior._behaviors[".bar"].length); |
t.t(dojo.behavior._behaviors[".foo > span"]); |
t.is(1, dojo.behavior._behaviors[".foo > span"].length); |
}, |
function apply(t){ |
t.is(0, applyCount); |
dojo.behavior.apply(); |
t.is(2, applyCount); |
|
// reapply and make sure we only match once |
dojo.behavior.apply(); |
t.is(2, applyCount); |
}, |
function reapply(t){ |
t.is(2, applyCount); |
// add the rules again |
dojo.behavior.add(behaviorObj); |
dojo.behavior.apply(); |
t.is(4, applyCount); |
// dojo.behavior.apply(); |
// t.is(4, applyCount); |
// dojo.query(".bar").styles("opacity", 1.0); |
}, |
function topics(t){ |
t.is(0, topicCount); |
dojo.behavior.add({ ".foo": "/foo" }); |
dojo.behavior.apply(); |
t.is(2, topicCount); |
|
dojo.behavior.add({ ".foo": { |
"onfocus": "/foo" |
} |
}); |
dojo.behavior.apply(); |
t.is(2, topicCount); |
dojo.byId("blah").focus(); |
t.is(3, topicCount); |
dojo.byId("blah").blur(); |
dojo.byId("blah").focus(); |
t.is(4, topicCount); |
|
} |
] |
); |
doh.run(); |
}); |
</script> |
</head> |
<body> |
<div class="foo" id="fooOne"> |
<span>.foo > span</span> |
<div class="bar"> |
<span>.foo > .bar > span</span> |
</div> |
</div> |
<input type="text" id="blah" class="foo blah" name="thinger" value="thinger"> |
</body> |
</html> |