Skip to content

Commit 3bc11de

Browse files
simonwuelkerservo-wpt-sync
authored andcommitted
Add web platform test
Signed-off-by: Simon Wülker <[email protected]>
1 parent 8f25d0c commit 3bc11de

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

domxpath/node-set-tree-order.html

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Tree order of node sets during evaluation</title>
5+
<link rel="author" title="Simon Wülker" href="mailto:[email protected]">
6+
<link rel="help" href="https://github.com/servo/servo/issues/40435">
7+
<script src="/resources/testharness.js"></script>
8+
<script src="/resources/testharnessreport.js"></script>
9+
</head>
10+
<body>
11+
<div id="container">
12+
<span></span>
13+
<p id="p"></p>
14+
</div>
15+
<script>
16+
function toArray(result) {
17+
var a = [];
18+
while (true) {
19+
var node = result.iterateNext();
20+
if (node === null) break;
21+
a.push(node);
22+
}
23+
return a;
24+
}
25+
26+
let container = document.getElementById("container");
27+
test(() => {
28+
// If the result of "(./p | ./span)" is not in tree order then "last()" will filter the wrong element,
29+
// causing the span to be returned.
30+
31+
let result = document.evaluate("(./p | ./span)[last()]", container, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
32+
assert_array_equals(toArray(result), [document.getElementById("p")])
33+
}, "Temporary node sets created during evaluation must be in tree order");
34+
</script>
35+
</body>
36+
</html>

0 commit comments

Comments
 (0)