UNPKG

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
<!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>