| <!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> |