Blame | Last modification | View Log | RSS feed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><!--we use a strict-mode DTD to ensure that the box model is the same for thesebasic tests--><html><head><title>testing Core HTML/DOM/CSS/Style utils</title><style type="text/css">@import "../../resources/dojo.css";</style><script type="text/javascript"src="../../dojo.js"djConfig="isDebug: true"></script><script type="text/javascript">dojo.require("doh.runner");function getIframeDocument(/*DOMNode*/iframeNode){//summary: Returns the document object associated with the iframe DOM Node argument.var doc = iframeNode.contentDocument || // W3((iframeNode.contentWindow)&&(iframeNode.contentWindow.document)) || // IE((iframeNode.name)&&(document.frames[iframeNode.name])&&(document.frames[iframeNode.name].document)) || null;return doc;}dojo.addOnLoad(function(){doh.register("t",["t.is(100, dojo.marginBox('sq100').w);","t.is(100, dojo.marginBox('sq100').h);","t.is(120, dojo.marginBox('sq100margin10').w);","t.is(120, dojo.marginBox('sq100margin10').h);","t.is(100, dojo.contentBox('sq100margin10').w);","t.is(100, dojo.contentBox('sq100margin10').h);","t.is(140, dojo.marginBox('sq100margin10pad10').w);","t.is(140, dojo.marginBox('sq100margin10pad10').h);","t.is(120, dojo.marginBox('sq100pad10').w);","t.is(120, dojo.marginBox('sq100pad10').h);","t.is(110, dojo.marginBox('sq100ltpad10').w);","t.is(110, dojo.marginBox('sq100ltpad10').h);","t.is(100, dojo.contentBox('sq100ltpad10').w);","t.is(100, dojo.contentBox('sq100ltpad10').h);","t.is(120, dojo.marginBox('sq100ltpad10rbmargin10').w);","t.is(120, dojo.marginBox('sq100ltpad10rbmargin10').h);","t.is(120, dojo.marginBox('sq100border10').w);","t.is(120, dojo.marginBox('sq100border10').h);","t.is(100, dojo.contentBox('sq100border10').w);","t.is(100, dojo.contentBox('sq100border10').h);","t.is(140, dojo.marginBox('sq100border10margin10').w);","t.is(140, dojo.marginBox('sq100border10margin10').h);","t.is(100, dojo.contentBox('sq100border10margin10').w);","t.is(100, dojo.contentBox('sq100border10margin10').h);","t.is(160, dojo.marginBox('sq100border10margin10pad10').w);","t.is(160, dojo.marginBox('sq100border10margin10pad10').h);","t.is(100, dojo.contentBox('sq100border10margin10pad10').w);","t.is(100, dojo.contentBox('sq100border10margin10pad10').h);",// FIXME: the 'correct' w is not 100 on Safari WebKit (2.0.4 [419.3]), the right-margin extends to the document edge// "t.is(100, dojo.marginBox('sq100nopos').w);","t.is(100, dojo.marginBox('sq100nopos').h);","t.is(10, dojo._getPadExtents(dojo.byId('sq100ltpad10rbmargin10')).l);","t.is(10, dojo._getPadExtents(dojo.byId('sq100ltpad10rbmargin10')).t);","t.is(10, dojo._getPadExtents(dojo.byId('sq100ltpad10rbmargin10')).w);","t.is(10, dojo._getPadExtents(dojo.byId('sq100ltpad10rbmargin10')).h);","t.is(0, dojo._getMarginExtents(dojo.byId('sq100ltpad10rbmargin10')).l);","t.is(0, dojo._getMarginExtents(dojo.byId('sq100ltpad10rbmargin10')).t);","t.is(10, dojo._getMarginExtents(dojo.byId('sq100ltpad10rbmargin10')).w);","t.is(10, dojo._getMarginExtents(dojo.byId('sq100ltpad10rbmargin10')).h);","t.is(10, dojo._getBorderExtents(dojo.byId('sq100border10margin10pad10')).l);","t.is(10, dojo._getBorderExtents(dojo.byId('sq100border10margin10pad10')).t);","t.is(20, dojo._getBorderExtents(dojo.byId('sq100border10margin10pad10')).w);","t.is(20, dojo._getBorderExtents(dojo.byId('sq100border10margin10pad10')).h);","t.is(20, dojo._getPadBorderExtents(dojo.byId('sq100border10margin10pad10')).l);","t.is(20, dojo._getPadBorderExtents(dojo.byId('sq100border10margin10pad10')).t);","t.is(40, dojo._getPadBorderExtents(dojo.byId('sq100border10margin10pad10')).w);","t.is(40, dojo._getPadBorderExtents(dojo.byId('sq100border10margin10pad10')).h);",function coordsBasic(t){var pos = dojo.coords("sq100", false);// console.debug(pos);t.is(100, pos.x);t.is(100, pos.y);t.is(100, pos.w);t.is(100, pos.h);},function coordsMargin(t){// coords is getting us the margin-box location, is// this right?var pos = dojo.coords("sq100margin10", false);t.is(260, pos.x);t.is(110, pos.y);t.is(120, pos.w);t.is(120, pos.h);},function sq100nopos(t){var pos = dojo.coords("sq100nopos", false);// console.debug(pos);t.is(0, pos.x);t.t(pos.y > 0);// FIXME: the 'correct' w is not 100 on Safari WebKit (2.0.4 [419.3]), the right-margin extends to the document edge// t.is(100, pos.w);t.is(100, pos.h);},function coordsScrolled(t) {var s = document.createElement('div');var c = document.createElement('div');document.body.appendChild(s);s.appendChild(c);var x=257, y= 285;with (s.style) {position = 'absolute';overflow = 'scroll';}dojo._setMarginBox(s, x, y, 100, 100);dojo._setMarginBox(c, 0, 0, 500, 500);s.scrollTop = 200;var pos = dojo.coords(s, true);t.is(x, pos.x);t.is(y, pos.y);},"t.is(1, dojo.style('sq100nopos', 'opacity'));","t.is(0.1, dojo.style('sq100nopos', 'opacity', 0.1));","t.is(0.8, dojo.style('sq100nopos', 'opacity', 0.8));","t.is('static', dojo.style('sq100nopos', 'position'));",function getBgcolor(t){var bgc = dojo.style('sq100nopos', 'backgroundColor');t.t((bgc == "rgb(0, 0, 0)")||(bgc == "black")||(bgc == "#000000"));},function isDescendant(t){t.t(dojo.isDescendant("sq100", dojo.body()));t.t(dojo.isDescendant("sq100", dojo.doc));t.t(dojo.isDescendant("sq100", "sq100"));t.t(dojo.isDescendant(dojo.byId("sq100"), "sq100"));t.f(dojo.isDescendant("sq100", dojo.byId("sq100").firstChild));t.t(dojo.isDescendant(dojo.byId("sq100").firstChild, "sq100"));},function isDescendantIframe(t){var bif = dojo.byId("blah");getIframeDocument(bif).write("<html><body><div id='subDiv'></div></body></html>");getIframeDocument(bif).close();// this test barely makes sense. disabling it for now.// t.t(dojo.isDescendant(bif.contentDocument.getElementById("subDiv"), bif.parentNode));var subDiv = getIframeDocument(bif).getElementById("subDiv");t.t(dojo.isDescendant(subDiv, subDiv));t.t(dojo.isDescendant(subDiv, subDiv.parentNode));t.f(dojo.isDescendant(subDiv.parentNode, subDiv));},function testClassFunctions(t){var node = dojo.byId("sq100");dojo.addClass(node, "a");t.is("a", node.className);dojo.removeClass(node, "c");t.is("a", node.className);t.assertTrue(dojo.hasClass(node, "a"));t.assertFalse(dojo.hasClass(node, "b"));dojo.addClass(node, "b");t.is("a b", node.className);t.assertTrue(dojo.hasClass(node, "a"));t.assertTrue(dojo.hasClass(node, "b"));dojo.removeClass(node, "a");t.is("b", node.className);t.assertFalse(dojo.hasClass(node, "a"));t.assertTrue(dojo.hasClass(node, "b"));dojo.toggleClass(node, "a");t.is("b a", node.className);t.assertTrue(dojo.hasClass(node, "a"));t.assertTrue(dojo.hasClass(node, "b"));dojo.toggleClass(node, "a");t.is("b", node.className);t.assertFalse(dojo.hasClass(node, "a"));t.assertTrue(dojo.hasClass(node, "b"));dojo.toggleClass(node, "b");t.is("", node.className);t.assertFalse(dojo.hasClass(node, "a"));t.assertFalse(dojo.hasClass(node, "b"));dojo.removeClass(node, "c");t.assertTrue(!node.className);}]);doh.run();});</script><style type="text/css">html, body {padding: 0px;margin: 0px;border: 0px;}#sq100 {background-color: black;color: white;position: absolute;left: 100px;top: 100px;width: 100px;height: 100px;border: 0px;padding: 0px;margin: 0px;overflow: hidden;}#sq100margin10 {background-color: black;color: white;position: absolute;left: 250px;top: 100px;width: 100px;height: 100px;border: 0px;padding: 0px;margin: 10px;overflow: hidden;}#sq100margin10pad10 {background-color: black;color: white;position: absolute;left: 400px;top: 100px;width: 100px;height: 100px;border: 0px;padding: 10px;margin: 10px;overflow: hidden;}#sq100pad10 {background-color: black;color: white;position: absolute;left: 100px;top: 250px;width: 100px;height: 100px;border: 0px;padding: 10px;margin: 0px;overflow: hidden;}#sq100ltpad10 {background-color: black;color: white;position: absolute;left: 250px;top: 250px;width: 100px;height: 100px;border: 0px;padding-left: 10px;padding-top: 10px;padding-right: 0px;padding-bottom: 0px;margin: 0px;overflow: hidden;}#sq100ltpad10rbmargin10 {background-color: black;color: white;position: absolute;left: 400px;top: 250px;width: 100px;height: 100px;border: 0px;padding-left: 10px;padding-top: 10px;padding-right: 0px;padding-bottom: 0px;margin-left: 0px;margin-top: 0px;margin-right: 10px;margin-bottom: 10px;overflow: hidden;}#sq100border10 {background-color: black;color: white;position: absolute;left: 100px;top: 400px;width: 100px;height: 100px;border: 10px solid yellow;padding: 0px;margin: 0px;overflow: hidden;}#sq100border10margin10 {background-color: black;color: white;position: absolute;left: 250px;top: 400px;width: 100px;height: 100px;border: 10px solid yellow;padding: 0px;margin: 10px;overflow: hidden;}#sq100border10margin10pad10 {background-color: black;color: white;position: absolute;left: 400px;top: 400px;width: 100px;height: 100px;border: 10px solid yellow;padding: 10px;margin: 10px;overflow: hidden;}#sq100nopos {background-color: black;color: white;width: 100px;height: 100px;padding: 0px;margin: 0px;}</style></head><body><h1>testing Core HTML/DOM/CSS/Style utils</h1><div id="sq100">100px square, abs</div><div id="sq100margin10">100px square, abs, 10px margin</div><div id="sq100margin10pad10">100px square, abs, 10px margin, 10px padding</div><div id="sq100pad10">100px square, abs, 10px padding</div><div id="sq100ltpad10">100px square, abs, 10px left and top padding</div><div id="sq100ltpad10rbmargin10">100px square, abs, 10px left and top padding, 10px bottom and right margin</div><div id="sq100border10">100px square, abs, 10px yellow border</div><div id="sq100border10margin10">100px square, abs, 10px yellow border, 10px margin</div><div id="sq100border10margin10pad10">100px square, abs, 10px yellow border, 10px margin, 10px padding</div><div id="sq100nopos">100px square, no positioning</div><iframe id="blah"></iframe></body></html>