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
174 lines (139 loc) • 4.98 kB
HTML
<html>
<head>
<title>robot bgIframe Test</title>
<style>
@import "../../../util/doh/robot/robot.css";
</style>
<!-- required: dojo.js -->
<script type="text/javascript" src="../../../dojo/dojo.js"></script>
<script type="text/javascript">
require([
"doh/runner", "dojo/robotx",
"dojo/_base/array", "dojo/dom", "dojo/on", "dojo/sniff", "dojo/window",
"dijit/tests/helpers", "dojo/domReady!"
], function(doh, robot, array, dom, on, has, winUtils, helpers){
robot.initRobot('../test_bgIframe.html');
doh.register(function setup(){
// get pointer to registry in the iframe
registry = robot.window.require("dijit/registry");
});
array.forEach(["pdf", "flash"], function(xId){
doh.register(xId, [
{
name: "dialog_" + xId,
timeout: 15000,
runTest: function(){
var d = new doh.Deferred();
winUtils.scrollIntoView(xId);
var wasClicked = false;
var connection;
// show the dialog; show it programmatically because we may have just scrolled the "show
// dialog" button off the screen)
registry.byId("dialog").show();
// drag the dialog on top of the pdf
robot.mouseMoveAt(registry.byId("dialog").titleNode, 2000, 1);
robot.mousePress({left: true}, 500);
robot.mouseMoveAt(xId, 500, 1000);
robot.mouseRelease({left: true}, 500);
robot.sequence(function(){
connection = on(registry.byId("dialog").containerNode, "click", function(e){ wasClicked = true; });
}, 500);
// click on the dialog
robot.mouseMoveAt(registry.byId("dialog").containerNode, 1, 1);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
connection.remove();
// derify the native select did not disappear
doh.t(helpers.isVisible(dom.byId("dropDown_" + xId, robot.doc)), "The native select is not visible");
registry.byId("dialog").hide();
doh.t(wasClicked, "Dialog was not visible because the onclick did not fire.");
}), 1000);
return d;
}
},
{
name: "tooltip_" + xId,
timeout: 8000,
runTest: function(){
var d = new doh.Deferred();
var tooltipWasClicked = false;
var connection, oldHide;
// dhow the tooltip
robot.mouseMoveAt("two_" + xId, 500, 1);
robot.sequence(function(){
var tooltip = registry.byId("dijit__MasterTooltip_0");
oldHide = tooltip.hide;
tooltip.hide = function(aroundNode){
// don't allow the tooltip to be hidden
};
connection = on(tooltip.domNode, "click",
function(e){
tooltipWasClicked = true;
tooltip.hide = oldHide;
tooltip.hide(tooltip.aroundNode);
}
);
}, 2000);
// Click on the tooltip
robot.mouseMoveAt("dijit__MasterTooltip_0", 1, 1);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
connection.remove();
doh.t(tooltipWasClicked, "The tooltip is not visible because the onclick event was not fired.");
}), 1000);
return d;
}
},
{
name: "dateTextBox_" + xId,
timeout: 7000,
runTest: function(){
var d = new doh.Deferred();
var wasClicked = false;
var connection;
// Show the popup
var textbox = registry.byId("dateText_" + xId);
robot.mouseMoveAt(textbox._buttonNode, 500, 1);
robot.mouseClick({left: true}, 500);
robot.sequence(function(){
connection = on(registry.byId("dateText_"+xId+"_popup").domNode, "click", function(e){ wasClicked = true; });
}, 2000);
// Click on the popup
robot.mouseMoveAt("dateText_"+xId+"_popup", 1, 1, 10, 10);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
connection.remove();
doh.t(wasClicked);
}), 1000);
return d;
}
},
{
name: "menu_" + xId,
timeout: 7000,
runTest: function(){
var d = new doh.Deferred();
var wasClicked = false;
registry.byId("copy_"+xId).onClick = function(e){ wasClicked = true; };
// Show the popup
var button = registry.byId("menuButton_" + xId);
robot.mouseMoveAt(button.domNode, 500, 1);
robot.mouseClick({left: true}, 500);
// Click on the popup
robot.mouseMoveAt("copy_"+xId);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
doh.t(wasClicked);
}), 1000);
return d;
}
}
]);
});
doh.run();
});
</script>
</head>
</html>