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

502 lines (429 loc) 16.3 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", "dijit/tests/helpers", "dijit/tests/layout/robot/borderContainerTestFunctions", "dojo/domReady!" ], function(doh, robot, aspect, dom, geom, json, query, helpers, bcTest){ 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; } } ]); // Test commented out until #13411 fixed. /* doh.register("TabContainer in table",[ function width(){ // Make sure the scrolling tabs don't make the width of the table explode to 50,0000px doh.is(400, geom.position(dom.byId("tableTabContainer")).w); }, { name: "tab1_t2", timeout: 4000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab1'); handler = aspect.after(tab, 'onDownloadEnd', function(){ setTimeout(d.getTestCallback(function(){ var h1 = query('h1', dom.byId('atab1'))[0]; var p1 = query('p', dom.byId('atab1'))[0]; var div1 = query('div', dom.byId('atab1'))[0]; checkInside(h1, registry.byId("tableTabContainer").domNode); checkInside(p1, registry.byId("tableTabContainer").domNode); checkInside(div1, registry.byId("tableTabContainer").domNode); oldPos = geom.position(dom.byId("textAfterTabContainer2"), true); }), 500); }); robot.mouseMoveAt('tableTabContainer_tablist_atab1', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } }, { name: "tab2_t2", timeout: 4000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab2'); handler = aspect.after(tab, 'onDownloadEnd', function(){ setTimeout(d.getTestCallback(function(){ var h2 = query('h1', dom.byId('atab2'))[0]; var p2 = query('p', dom.byId('atab2'))[0]; checkInside(h2, registry.byId("tableTabContainer").domNode); checkInside(p2, registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('tableTabContainer_tablist_atab2', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } }, { name: "tab3_t2", timeout: 4000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab3'); handler = aspect.after(tab, '_onShow', function(){ setTimeout(d.getTestCallback(function(){ checkInside(dom.byId("h4"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("p6"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("p7"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("p8"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("b5"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("b6"), registry.byId("tableTabContainer").domNode); checkInside(dom.byId("foo2"), registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('tableTabContainer_tablist_atab3', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } }, { name: "tab4_innerTab1_t2", timeout: 12000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab4'); handler = aspect.after(tab, '_onShow', function(){ handler.remove(); handler = null; setTimeout(d.getTestErrback(function(){ tab = registry.byId('atab4a'); handler = aspect.after(tab, '_onShow', function(){ handler.remove(); handler = null; setTimeout(d.getTestCallback(function(){ var h1 = query('h1', dom.byId('atab4a'))[0]; var p1 = query('p', dom.byId('atab4a'))[0]; var div1 = query('div', dom.byId('atab4a'))[0]; checkInside(h1, registry.byId("tableTabContainer").domNode); checkInside(p1, registry.byId("tableTabContainer").domNode); checkInside(div1, registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('atab4_tablist_atab4a', 0, 1); robot.mouseClick({left: true}, 500); }), 1000); }); robot.mouseMoveAt('tableTabContainer_tablist_atab4', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ if(handler){ handler.remove(); } } }, { name: "tab4_innerTab2_t2", timeout: 4000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab4b'); handler = aspect.after(tab, '_onShow', function(){ setTimeout(d.getTestCallback(function(){ var h2 = query('h1', dom.byId('atab4b'))[0]; var p2 = query('p', dom.byId('atab4b'))[0]; checkInside(h2, registry.byId("tableTabContainer").domNode); checkInside(p2, registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('atab4_tablist_atab4b', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } }, { name: "tab5_innerTab1_t2", timeout: 7000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab5'); handler = aspect.after(tab, 'onDownloadEnd', function(){ robot.mouseMoveAt('tableTabContainer_tablist_atab4a', 1000, 1); robot.mouseClick({left: true}, 500); robot.sequence(d.getTestCallback(function(){ var p = query("p", dom.byId('atab4a'))[0]; checkInside(p, registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('tableTabContainer_tablist_atab5', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } }, { name: "tab5_innerTab2_t2", timeout: 4000, runTest: function(t){ var d = new doh.Deferred(); tab = registry.byId('atab4b'); handler = aspect.after(tab, '_onShow', function(){ setTimeout(d.getTestCallback(function(){ var p1 = query("p", dom.byId('atab4b'))[0]; var p2 = query("p", dom.byId('atab4b'))[1]; var p3 = query("p", dom.byId('atab4b'))[2]; checkInside(p1, registry.byId("tableTabContainer").domNode); checkInside(p2, registry.byId("tableTabContainer").domNode); checkInside(p3, registry.byId("tableTabContainer").domNode); var newPos = geom.position(dom.byId("textAfterTabContainer2"), true); doh.isNot(oldPos.y, newPos.y, "oldpos y vs. newpos y"); oldPos = newPos; }), 1000); }); robot.mouseMoveAt('tableTabContainer_tablist_atab4b', 0, 1); robot.mouseClick({left: true}, 500); return d; }, tearDown: function(t){ handler.remove(); } } ]); */ doh.run(); }); </script> </head> </html>