predicates.html revision 5f90462bbf4efb0ac7bb65a852d5559d0ab30f0b
1<html>
2<head>
3<link rel="stylesheet" href="/js/resources/js-test-style.css">
4<script src="/js/resources/js-test-pre.js"></script>
5<script src="/xpath-test-pre.js"></script>
6</head>
7<body>
8<div id="console"></div>
9
10<script>
11var doc = (new DOMParser).parseFromString(
12    '<doc id="0">' +
13        '<item id="1" />' +
14        '<group id="g1">' +
15            '<item id="2" />' +
16            '<group id="g2">' +
17                '<item id="3" />' +
18            '</group>' +
19            '<item id="4" />' +
20            '<item id="5" />' +
21        '</group>' +
22        '<item id="6" />' +
23        '<choice index="2" />' +
24   '</doc>',
25    'application/xml');
26
27var ROOT = doc.documentElement;
28var I1 = ROOT.firstChild;
29var G1 = I1.nextSibling;
30var I2 = G1.firstChild;
31var G2 = I2.nextSibling;
32var I3 = G2.firstChild;
33var I4 = G2.nextSibling;
34var I5 = I4.nextSibling;
35var I6 = G1.nextSibling;
36
37test(doc, doc.documentElement, '//item[@id >= 2 and @id <= 4]', [I2, I3, I4]);
38test(doc, doc.documentElement, '/doc/child::item[1]', [I1]);
39test(doc, doc.documentElement, '//group[@id="g2"]/ancestor::*[1]', [G1]);
40test(doc, doc.documentElement, '//item[@id="2"]/following-sibling::item[1]', [I4]);
41test(doc, doc.documentElement, '//item[@id="5"]/preceding-sibling::item[1]', [I4]);
42test(doc, doc.documentElement, '//group[@id="g2"]/following::item[1]', [I4]);
43test(doc, doc.documentElement, '//group[@id="g2"]/preceding::item[1]', [I2]);
44test(doc, doc.documentElement, '//group[@id="g1"]/descendant-or-self::item[1]', [I2]);
45test(doc, doc.documentElement, '//group[@id="g2"]/ancestor-or-self::*[1]', [G2]);
46test(doc, doc.documentElement, '//group/descendant::item[number(//choice/@index)*2]', [I5]);
47test(doc, doc.documentElement, '(//item[@id="5"]/preceding-sibling::item)[1]', [I2]);
48
49
50var successfullyParsed = true;
51
52</script>
53<script src="/js/resources/js-test-post.js"></script>
54</body>
55</html>
56