You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
265 lines
8.2 KiB
265 lines
8.2 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
|
"http://www.w3.org/TR/html4/strict.dtd"> |
|
<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>
|
|
|