111 lines
3.3 KiB
HTML
111 lines
3.3 KiB
HTML
<html><body><script src="../../resources/js-test.js"></script><script>
|
|
|
|
description("Test tree ordering algorithm for boundary points.")
|
|
|
|
function shouldBeBoth(containerA, offsetA, containerB, offsetB, forward, reversed)
|
|
{
|
|
shouldBeEqualToString("internals.treeOrderBoundaryPoints(" + containerA + ", " + offsetA + ", " + containerB + ", " + offsetB + ", 'ComposedTree')", forward)
|
|
if (containerA != containerB || offsetA != offsetB)
|
|
shouldBeEqualToString("internals.treeOrderBoundaryPoints(" + containerB + ", " + offsetB + ", " + containerA + ", " + offsetA + ", 'ComposedTree')", reversed)
|
|
}
|
|
|
|
function shouldBeEquivalent(containerA, offsetA, containerB, offsetB)
|
|
{
|
|
shouldBeBoth(containerA, offsetA, containerB, offsetB, "equivalent", "equivalent")
|
|
}
|
|
|
|
function shouldBeLess(containerA, offsetA, containerB, offsetB)
|
|
{
|
|
shouldBeBoth(containerA, offsetA, containerB, offsetB, "less", "greater")
|
|
}
|
|
|
|
function shouldBeUnordered(containerA, offsetA, containerB, offsetB)
|
|
{
|
|
shouldBeBoth(containerA, offsetA, containerB, offsetB, "unordered", "unordered")
|
|
}
|
|
|
|
shouldBeEquivalent("document", 0, "document", 0)
|
|
shouldBeLess("document", 0, "document", 1)
|
|
|
|
let body = document.body;
|
|
|
|
shouldBe("body.childNodes.length", "4")
|
|
|
|
shouldBeEquivalent("body", 0, "body", 0)
|
|
shouldBeLess("document", 0, "body", 0)
|
|
shouldBeLess("body", 0, "document", 1)
|
|
shouldBeLess("body", 4, "document", 1)
|
|
|
|
let a = document.createElement("div")
|
|
shouldBeEquivalent("a", 0, "a", 0)
|
|
shouldBeUnordered("body", 0, "a", 0)
|
|
|
|
body.appendChild(a)
|
|
shouldBeLess("body", 0, "a", 0)
|
|
shouldBeEquivalent("a", 0, "a", 0)
|
|
shouldBeLess("a", 0, "body", 5)
|
|
|
|
let b = document.createElement("div")
|
|
body.appendChild(b)
|
|
shouldBeLess("body", 0, "b", 0)
|
|
shouldBeLess("a", 0, "b", 0)
|
|
shouldBeLess("body", 5, "b", 0)
|
|
shouldBeLess("b", 0, "body", 6)
|
|
|
|
let c = document.createElement("div")
|
|
b.appendChild(c)
|
|
shouldBeLess("body", 0, "c", 0)
|
|
shouldBeLess("a", 0, "c", 0)
|
|
shouldBeLess("b", 0, "c", 0)
|
|
shouldBeLess("body", 4, "c", 0)
|
|
shouldBeLess("c", 0, "body", 6)
|
|
shouldBeLess("a", 1, "c", 0)
|
|
shouldBeLess("c", 0, "b", 1)
|
|
|
|
let d = document.createElement("div")
|
|
a.appendChild(d)
|
|
shouldBeLess("body", 0, "d", 0)
|
|
shouldBeLess("body", 0, "d", 0)
|
|
shouldBeLess("a", 0, "d", 0)
|
|
shouldBeLess("d", 0, "b", 0)
|
|
shouldBeLess("d", 0, "c", 0)
|
|
shouldBeLess("a", 0, "d", 0)
|
|
shouldBeLess("d", 0, "b", 0)
|
|
shouldBeLess("d", 0, "c", 0)
|
|
shouldBeLess("d", 0, "body", 5)
|
|
shouldBeLess("d", 0, "a", 1)
|
|
shouldBeLess("d", 0, "b", 1)
|
|
shouldBeLess("d", 0, "c", 1)
|
|
|
|
let e = document.createElement("div")
|
|
let f = document.createElement("div")
|
|
e.appendChild(f)
|
|
shouldBeUnordered("body", 0, "f", 0)
|
|
shouldBeUnordered("f", 0, "body", 0)
|
|
shouldBeUnordered("body", 4, "f", 0)
|
|
|
|
let g = document.createElement("textarea")
|
|
c.appendChild(g)
|
|
shouldBeLess("body", 0, "g", 0)
|
|
shouldBeLess("body", 4, "g", 0)
|
|
shouldBeLess("c", 0, "c", 1)
|
|
shouldBeLess("c", 1, "c", 2)
|
|
shouldBeLess("c", 0, "c", 2)
|
|
shouldBeLess("c", 0, "g", 0)
|
|
shouldBeLess("g", 0, "c", 1)
|
|
shouldBeLess("g", 0, "c", 2)
|
|
|
|
let h = internals.ensureUserAgentShadowRoot(g).firstChild
|
|
shouldBeLess("body", 0, "h", 0)
|
|
shouldBeLess("body", 4, "h", 0)
|
|
shouldBeLess("c", 0, "h", 0)
|
|
shouldBeLess("h", 0, "c", 1)
|
|
shouldBeLess("h", 0, "c", 2)
|
|
|
|
let i = a.attachShadow({ mode: "closed" })
|
|
shouldBeLess("body", 0, "i", 0)
|
|
shouldBeLess("i", 0, "d", 0)
|
|
shouldBeLess("i", 0, "b", 0)
|
|
|
|
</script></body></html>
|