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
266 lines (224 loc) • 8.39 kB
HTML
<html>
<head>
<title>robot TabContainer No Layout Test</title>
<style>
@import "../../../../util/doh/robot/robot.css";
</style>
<!-- required: dojo.js -->
<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/dom-geometry", "dojo/json", "dojo/query"
], function(doh, robot, aspect, dom, geom, json, query){
function checkInside(childDomNode, parentDomNode){
var cp = geom.position(childDomNode, true),
pp = geom.position(parentDomNode, true);
doh.t(
cp.y > pp.y && cp.y+cp.h < pp.y+pp.h &&
cp.x > pp.x && cp.x+cp.w < pp.x+pp.w,
childDomNode.id + "child not inside " + parentDomNode.id + json.stringify(cp) + json.stringify(pp)
);
}
var oldPos, tab, handler;
robot.initRobot('../test_TabContainer_noLayout.html');
var registry;
doh.register("setup", [
function setup(){
// get pointers to singletons loaded on test page
registry = robot.window.require("dijit/registry");
}
]);
doh.register("plain TabContainer",[
{
name: "tab1",
timeout: 8000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('tab1');
handler = aspect.after(tab, 'onDownloadEnd', function(){
setTimeout(d.getTestCallback(function(){
var h1 = query('h1', dom.byId('tab1'))[0];
var p1 = query('p', dom.byId('tab1'))[0];
var div1 = query('div', dom.byId('tab1'))[0];
checkInside(h1, registry.byId("plainTabContainer").domNode);
checkInside(p1, registry.byId("plainTabContainer").domNode);
checkInside(div1, registry.byId("plainTabContainer").domNode);
oldPos = geom.position(dom.byId("textAfterTabContainer1"), true);
}), 500);
});
robot.mouseMoveAt('plainTabContainer_tablist_tab1', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
handler.remove();
}
},
{
name: "tab2",
timeout: 4000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('tab2');
handler = aspect.after(tab, 'onDownloadEnd', function(){
setTimeout(d.getTestCallback(function(){
var h2 = query('h1', dom.byId('tab2'))[0];
var p2 = query('p', dom.byId('tab2'))[0];
checkInside(h2, registry.byId("plainTabContainer").domNode);
checkInside(p2, registry.byId("plainTabContainer").domNode);
var newPos = geom.position(dom.byId("textAfterTabContainer1"), true);
doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y");
oldPos = newPos;
}), 1000);
});
robot.mouseMoveAt('plainTabContainer_tablist_tab2', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
handler.remove();
}
},
{
name: "tab3",
timeout: 4000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('tab3');
handler = aspect.after(tab, '_onShow', function(){
setTimeout(d.getTestCallback(function(){
checkInside(dom.byId("h3"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("p3"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("p4"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("p5"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("b3"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("b4"), registry.byId("plainTabContainer").domNode);
checkInside(dom.byId("foo"), registry.byId("plainTabContainer").domNode);
var newPos = geom.position(dom.byId("textAfterTabContainer1"), true);
doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y");
oldPos = newPos;
}), 1000);
});
robot.mouseMoveAt('plainTabContainer_tablist_tab3', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
handler.remove();
}
},
{
name: "tab4_innerTab1",
timeout: 12000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('tab4');
handler = aspect.after(tab, '_onShow', function(){
handler.remove();
handler = null;
setTimeout(d.getTestErrback(function(){
tab = registry.byId('tab4a');
handler = aspect.after(tab, '_onShow', function(){
handler.remove();
handler = null;
setTimeout(d.getTestCallback(function(){
var h1 = query('h1', dom.byId('tab4a'))[0];
var p1 = query('p', dom.byId('tab4a'))[0];
var div1 = query('div', dom.byId('tab4a'))[0];
checkInside(h1, registry.byId("plainTabContainer").domNode);
checkInside(p1, registry.byId("plainTabContainer").domNode);
checkInside(div1, registry.byId("plainTabContainer").domNode);
var newPos = geom.position(dom.byId("textAfterTabContainer1"), true);
doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y");
oldPos = newPos;
}), 1000);
});
robot.mouseMoveAt('tab4_tablist_tab4a', 0, 1);
robot.mouseClick({left: true}, 500);
}), 1000);
});
robot.mouseMoveAt('plainTabContainer_tablist_tab4', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
if(handler){
handler.remove();
}
}
},
{
name: "tab4_innerTab2",
timeout: 4000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('tab4b');
handler = aspect.after(tab, '_onShow', function(){
setTimeout(d.getTestCallback(function(){
var h2 = query('h1', dom.byId('tab4b'))[0];
var p2 = query('p', dom.byId('tab4b'))[0];
checkInside(h2, registry.byId("plainTabContainer").domNode);
checkInside(p2, registry.byId("plainTabContainer").domNode);
var newPos = geom.position(dom.byId("textAfterTabContainer1"), true);
doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y");
oldPos = newPos;
}), 1000);
});
robot.mouseMoveAt('tab4_tablist_tab4b', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
handler.remove();
}
},
{
name: "addTab",
timeout: 8000,
runTest: function(t){
var d = new doh.Deferred();
tab = registry.byId('plainTabContainer');
handler = aspect.after(tab, 'addChild', function(){
setTimeout(function(){
robot.mouseMoveAt('plainTabContainer_tablist_newTab6', 0, 1);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
var newTab = dom.byId("newTab6");
doh.is("Contents of Tab 6", newTab.innerHTML);
checkInside(newTab, registry.byId("plainTabContainer").domNode);
var newPos = geom.position(dom.byId("textAfterTabContainer1"), true);
doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y");
}), 1000);
}, 1000)
});
robot.mouseMoveAt('addTabButton', 0, 1);
robot.mouseClick({left: true}, 500);
return d;
},
tearDown: function(t){
handler.remove();
}
},
{
timeout: 4000,
name: "destroy",
runTest: function(){
var d = new doh.Deferred();
robot.mouseMoveAt('destroyTabContainer', 0, 1);
robot.mouseClick({left: true}, 500);
robot.sequence(d.getTestCallback(function(){
doh.is(undefined, dom.byId("plainTabContainer"), 'widget was not removed');
}), 2000);
return d;
}
}
]);
doh.run();
});
</script>
</head>
</html>