155 lines
6.6 KiB
HTML
155 lines
6.6 KiB
HTML
|
<html>
|
||
|
<head>
|
||
|
<title>testing dojo.query()</title>
|
||
|
<style type="text/css">
|
||
|
@import "../../resources/dojo.css";
|
||
|
</style>
|
||
|
<script type="text/javascript" src="../../dojo.js"
|
||
|
djConfig="isDebug: true, debugAtAllCosts: false, noFirebugLite: true"></script>
|
||
|
<script type="text/javascript" src="../../../util/doh/runner.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
dojo.require("doh.runner");
|
||
|
dojo.require("dojox.data.dom");
|
||
|
dojo.addOnLoad(function(){
|
||
|
doh.register("t",
|
||
|
[
|
||
|
// basic sanity checks
|
||
|
"doh.is(4, (dojo.query('h3')).length);",
|
||
|
"doh.is(1, (dojo.query('h1:first-child')).length);",
|
||
|
"doh.is(2, (dojo.query('h3:first-child')).length);",
|
||
|
"doh.is(1, (dojo.query('#t')).length);",
|
||
|
"doh.is(1, (dojo.query('#bug')).length);",
|
||
|
"doh.is(4, (dojo.query('#t h3')).length);",
|
||
|
"doh.is(1, (dojo.query('div#t')).length);",
|
||
|
"doh.is(4, (dojo.query('div#t h3')).length);",
|
||
|
"doh.is(0, (dojo.query('span#t')).length);",
|
||
|
"doh.is(1, (dojo.query('#t div > h3')).length);",
|
||
|
"doh.is(2, (dojo.query('.foo')).length);",
|
||
|
"doh.is(1, (dojo.query('.foo.bar')).length);",
|
||
|
"doh.is(2, (dojo.query('.baz')).length);",
|
||
|
"doh.is(3, (dojo.query('#t > h3')).length);",
|
||
|
// syntactic equivalents
|
||
|
"doh.is(12, (dojo.query('#t > *')).length);",
|
||
|
"doh.is(12, (dojo.query('#t >')).length);",
|
||
|
"doh.is(3, (dojo.query('.foo >')).length);",
|
||
|
"doh.is(3, (dojo.query('.foo > *')).length);",
|
||
|
// with a root, by ID
|
||
|
"doh.is(3, (dojo.query('> *', 'container')).length);",
|
||
|
"doh.is(3, (dojo.query('> h3', 't')).length);",
|
||
|
// compound queries
|
||
|
"doh.is(2, (dojo.query('.foo, .bar')).length);",
|
||
|
"doh.is(2, (dojo.query('.foo,.bar')).length);",
|
||
|
// multiple class attribute
|
||
|
"doh.is(1, (dojo.query('.foo.bar')).length);",
|
||
|
"doh.is(2, (dojo.query('.foo')).length);",
|
||
|
"doh.is(2, (dojo.query('.baz')).length);",
|
||
|
// case sensitivity
|
||
|
"doh.is(1, (dojo.query('span.baz')).length);",
|
||
|
"doh.is(1, (dojo.query('sPaN.baz')).length);",
|
||
|
"doh.is(1, (dojo.query('SPAN.baz')).length);",
|
||
|
"doh.is(1, (dojo.query('[class = \"foo bar\"]')).length);",
|
||
|
"doh.is(2, (dojo.query('[foo~=\"bar\"]')).length);",
|
||
|
"doh.is(2, (dojo.query('[ foo ~= \"bar\" ]')).length);",
|
||
|
// "t.is(0, (dojo.query('[ foo ~= \"\\'bar\\'\" ]')).length);",
|
||
|
"doh.is(3, (dojo.query('[foo]')).length);",
|
||
|
"doh.is(1, (dojo.query('[foo$=\"thud\"]')).length);",
|
||
|
"doh.is(1, (dojo.query('[foo$=thud]')).length);",
|
||
|
"doh.is(1, (dojo.query('[foo$=\"thudish\"]')).length);",
|
||
|
"doh.is(1, (dojo.query('#t [foo$=thud]')).length);",
|
||
|
"doh.is(1, (dojo.query('#t [ title $= thud ]')).length);",
|
||
|
"doh.is(0, (dojo.query('#t span[ title $= thud ]')).length);",
|
||
|
"doh.is(1, (dojo.query('[foo|=\"bar\"]')).length);",
|
||
|
"doh.is(1, (dojo.query('[foo|=\"bar-baz\"]')).length);",
|
||
|
"doh.is(0, (dojo.query('[foo|=\"baz\"]')).length);",
|
||
|
"doh.is(dojo.byId('_foo'), dojo.query('.foo:nth-child(2)')[0]);",
|
||
|
"doh.is(dojo.query('style')[0], dojo.query(':nth-child(2)')[0]);",
|
||
|
// descendant selectors
|
||
|
"doh.is(3, dojo.query('>', 'container').length);",
|
||
|
"doh.is(3, dojo.query('> *', 'container').length);",
|
||
|
"doh.is(2, dojo.query('> [qux]', 'container').length);",
|
||
|
"doh.is('child1', dojo.query('> [qux]', 'container')[0].id);",
|
||
|
"doh.is('child3', dojo.query('> [qux]', 'container')[1].id);",
|
||
|
"doh.is(3, dojo.query('>', 'container').length);",
|
||
|
"doh.is(3, dojo.query('> *', 'container').length);",
|
||
|
"doh.is('passed', dojo.query('#bug')[0].value);",
|
||
|
// sibling selectors
|
||
|
"doh.is(1, dojo.query('+', 'container').length);",
|
||
|
"doh.is(3, dojo.query('~', 'container').length);",
|
||
|
"doh.is(1, (dojo.query('.foo + span')).length);",
|
||
|
"doh.is(4, (dojo.query('.foo ~ span')).length);",
|
||
|
"doh.is(1, (dojo.query('#foo ~ *')).length);",
|
||
|
"doh.is(1, (dojo.query('#foo ~')).length);",
|
||
|
// sub-selector parsing
|
||
|
"doh.is(1, dojo.query('#t span.foo:not(span:first-child)').length);",
|
||
|
"doh.is(1, dojo.query('#t span.foo:not(:first-child)').length);",
|
||
|
|
||
|
// nth-child tests
|
||
|
"doh.is(2, dojo.query('#t > h3:nth-child(odd)').length);",
|
||
|
"doh.is(3, dojo.query('#t h3:nth-child(odd)').length);",
|
||
|
"doh.is(3, dojo.query('#t h3:nth-child(2n+1)').length);",
|
||
|
"doh.is(1, dojo.query('#t h3:nth-child(even)').length);",
|
||
|
"doh.is(1, dojo.query('#t h3:nth-child(2n)').length);",
|
||
|
"doh.is(0, dojo.query('#t h3:nth-child(2n+3)').length);",
|
||
|
"doh.is(2, dojo.query('#t h3:nth-child(1)').length);",
|
||
|
"doh.is(1, dojo.query('#t > h3:nth-child(1)').length);",
|
||
|
"doh.is(3, dojo.query('#t :nth-child(3)').length);",
|
||
|
"doh.is(0, dojo.query('#t > div:nth-child(1)').length);",
|
||
|
"doh.is(7, dojo.query('#t span').length);",
|
||
|
// :empty pseudo-selector
|
||
|
"doh.is(4, dojo.query('#t > span:empty').length);",
|
||
|
"doh.is(6, dojo.query('#t span:empty').length);",
|
||
|
"doh.is(0, dojo.query('h3 span:empty').length);",
|
||
|
"doh.is(1, dojo.query('h3 :not(:empty)').length);",
|
||
|
// escaping of ":" chars inside an ID
|
||
|
function silly_IDs1(){
|
||
|
doh.t(document.getElementById("silly:id::with:colons"));
|
||
|
doh.is(1, dojo.query("#silly\\:id\\:\\:with\\:colons").length);
|
||
|
},
|
||
|
function NodeList_identity(){
|
||
|
var foo = new dojo.NodeList([dojo.byId("container")]);
|
||
|
doh.is(foo, dojo.query(foo));
|
||
|
},
|
||
|
function xml(){
|
||
|
try{
|
||
|
var doc = dojox.data.dom.createDocument("<ResultSet><Result>One</Result><Result>Two</Result></ResultSet>");
|
||
|
console.debug(doc);
|
||
|
console.debug(dojox.data.dom.innerXML(doc.documentElement));
|
||
|
console.debug(dojo.query("Result", doc.documentElement).length);
|
||
|
}catch(e){ console.debug(e); }
|
||
|
}
|
||
|
]
|
||
|
);
|
||
|
doh.run();
|
||
|
});
|
||
|
</script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<h1>testing dojo.query()</h1>
|
||
|
<div id="t">
|
||
|
<h3>h3 <span>span</span> endh3 </h3>
|
||
|
<!-- comment to throw things off -->
|
||
|
<div class="foo bar" id="_foo">
|
||
|
<h3>h3</h3>
|
||
|
<span id="foo"></span>
|
||
|
<span></span>
|
||
|
</div>
|
||
|
<h3>h3</h3>
|
||
|
<h3 class="baz" title="thud">h3</h3>
|
||
|
<span class="foobar baz foo"></span>
|
||
|
<span foo="bar"></span>
|
||
|
<span foo="baz bar thud"></span>
|
||
|
<!-- FIXME: should foo="bar-baz-thud" match? [foo$=thud] ??? -->
|
||
|
<span foo="bar-baz-thudish" id="silly:id::with:colons"></span>
|
||
|
<div id="container">
|
||
|
<div id="child1" qux="true"></div>
|
||
|
<div id="child2"></div>
|
||
|
<div id="child3" qux="true"></div>
|
||
|
</div>
|
||
|
<div qux="true"></div>
|
||
|
<input id="notbug" name="bug" type="hidden" value="failed" />
|
||
|
<input id="bug" type="hidden" value="passed" />
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|
||
|
|