62 lines
1.7 KiB
HTML
62 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<title>Node.baseURI</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<div id="log"></div>
|
|
<script>
|
|
const elementTests = [
|
|
{
|
|
name: "elements belonging to document",
|
|
creator: () => {
|
|
const element = document.createElement("div");
|
|
document.body.appendChild(element);
|
|
return element;
|
|
}
|
|
},
|
|
{
|
|
name: "elements unassigned to document",
|
|
creator: () => document.createElement("div")
|
|
},
|
|
{
|
|
name: "elements belonging to document fragments",
|
|
creator: () => {
|
|
const fragment = document.createDocumentFragment();
|
|
const element = document.createElement("div");
|
|
fragment.appendChild(element);
|
|
return element;
|
|
}
|
|
},
|
|
{
|
|
name: "elements belonging to document fragments in document",
|
|
creator: () => {
|
|
const fragment = document.createDocumentFragment();
|
|
const element = document.createElement("div");
|
|
fragment.appendChild(element);
|
|
document.body.appendChild(fragment);
|
|
return element;
|
|
}
|
|
},
|
|
];
|
|
|
|
const attributeTests = [
|
|
{
|
|
name: "attributes unassigned to element",
|
|
creator: () => document.createAttribute("class")
|
|
},
|
|
...elementTests.map(({ name, creator }) => ({
|
|
name: "attributes in " + name,
|
|
creator: () => {
|
|
const element = creator();
|
|
element.setAttribute("class", "abc");
|
|
return element.getAttributeNode("class");
|
|
}
|
|
}))
|
|
];
|
|
|
|
for (const { name, creator } of [...elementTests, ...attributeTests]) {
|
|
test(function() {
|
|
const node = creator();
|
|
assert_equals(node.baseURI, document.URL);
|
|
}, `For ${name}, baseURI should be document URL`)
|
|
}
|
|
</script>
|