dijit
Version:
Dijit provides a complete collection of user interface controls based on Dojo, giving you the power to create web applications that are highly optimized for usability, performance, internationalization, accessibility, but above all deliver an incredible u
117 lines (92 loc) • 2.91 kB
HTML
<html>
<head>
<title>Test Dijit Internal Event: "ondijitclick"</title>
<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true"></script>
<script type="text/javascript">
require([
"doh/runner", "dojo/robotx",
"dojo/aspect", "dojo/dom", "dojo/on", "dojo/domReady!"
], function(doh, robot, aspect, dom, on){
robot.initRobot('../_Widget-ondijitclick.html');
// Event monitoring
var widgetClicks = 0, buttonClicks = 0;
var w;
doh.register(function setup(){
// get pointer to registry in the iframe
registry = robot.window.require("dijit/registry");
});
doh.register("ondijitclick w/mouse", {
timeout:5000,
runTest:function(){
var d = new doh.Deferred();
robot.sequence(function(){
w = registry.byId("first");
aspect.after(w, "_onClick", function(){
widgetClicks++;
}, true);
on(dom.byId("plainbutton", robot.doc), "click", function(){
buttonClicks++;
});
w.domNode.focus();
}, 100);
// click the widget
robot.mouseMoveAt("first", 500);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
doh.is(1, widgetClicks, "ondijitclick handler fired once");
}), 1000);
return d;
}
});
// Test clicking on a <button> with an ondijitclick handler.
doh.register("click ondijitclick button", [
{
name: "click",
timeout: 5000,
runTest: function(){
var d = new doh.Deferred(),
buttonWidget = registry.byId("widgetbutton");
buttonWidget.clickCount = 0;
robot.mouseMoveAt("widgetbutton", 500);
robot.mouseClick({left: true}, 500);
// Check that ondijitclick fired exactly once
robot.sequence(d.getTestCallback(function(){
doh.is(1, buttonWidget.clickCount, "one click event");
}), 500);
return d;
}
}
]);
doh.register("bubbling", [
{
name: "bubbling",
timeout: 5000,
runTest: function(){
var d = new doh.Deferred(),
outerDiv = dom.byId("outer", robot.doc),
buttonNode = dom.byId("bubbleTestWidget", robot.doc),
buttonWidget = registry.byId("bubbleTestWidget");
// Listen for click events on the outer DOMNode.
var clicks = 0;
on(outerDiv, "click", function(){
clicks++;
});
// click the widget button
robot.mouseMoveAt("bubbleTestWidget", 500);
robot.mouseClick({left: true}, 500);
// Check that one click event bubbled
robot.sequence(d.getTestCallback(function(){
doh.is(1, buttonWidget.clickCount, "one click event");
doh.is(1, clicks, "one click event bubbled");
}), 500);
return d;
}
}
]);
doh.run();
});
</script>
</head>
</html>