summaryrefslogtreecommitdiff
path: root/includes/js/dojo/tests/behavior.html
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojo/tests/behavior.html')
-rw-r--r--includes/js/dojo/tests/behavior.html106
1 files changed, 106 insertions, 0 deletions
diff --git a/includes/js/dojo/tests/behavior.html b/includes/js/dojo/tests/behavior.html
new file mode 100644
index 0000000..280fc29
--- /dev/null
+++ b/includes/js/dojo/tests/behavior.html
@@ -0,0 +1,106 @@
+<!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: true, popup: true"></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++;
+ }
+ }
+
+ 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){
+ var d = new doh.Deferred();
+ 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();
+ dojo.byId("blah").blur();
+ dojo.byId("blah").focus();
+ setTimeout(function(){
+ // blur/focus event generation isn't synchronous on IE
+ try{
+ t.is(4, topicCount);
+ d.callback(true);
+ }catch(e){
+ d.errback(e);
+ }
+ }, 10);
+ return d;
+ }
+ ]
+ );
+ doh.run();
+ });
+ </script>
+ </head>
+ <body>
+ <div class="foo" id="fooOne">
+ <span>.foo &gt; span</span>
+ <div class="bar">
+ <span>.foo &gt; .bar &gt; span</span>
+ </div>
+ </div>
+ <input type="text" id="blah" class="foo blah" name="thinger" value="thinger" tabIndex="0">
+ </body>
+</html>