diff --git a/Meta/build-root-filesystem.sh b/Meta/build-root-filesystem.sh index 260c14ad8e..a7c20477b3 100755 --- a/Meta/build-root-filesystem.sh +++ b/Meta/build-root-filesystem.sh @@ -157,12 +157,11 @@ mkdir -p mnt/home/anon mkdir -p mnt/home/anon/Desktop mkdir -p mnt/home/anon/Downloads mkdir -p mnt/home/nona -# FIXME: Handle these test copies using CMake install rules -rm -fr mnt/home/anon/Tests/js-tests mnt/home/anon/Tests/web-tests mnt/home/anon/Tests/cpp-tests +# FIXME: Handle these test copies using CMake install rules +rm -fr mnt/home/anon/Tests/js-tests mnt/home/anon/Tests/cpp-tests mkdir -p mnt/home/anon/Tests/cpp-tests/ cp "$SERENITY_SOURCE_DIR"/README.md mnt/home/anon/ cp -r "$SERENITY_SOURCE_DIR"/Userland/Libraries/LibJS/Tests mnt/home/anon/Tests/js-tests -cp -r "$SERENITY_SOURCE_DIR"/Userland/Libraries/LibWeb/Tests mnt/home/anon/Tests/web-tests cp -r "$SERENITY_SOURCE_DIR"/Userland/Libraries/LibCodeComprehension/Cpp/Tests mnt/home/anon/Tests/cpp-tests/comprehension cp -r "$SERENITY_SOURCE_DIR"/Userland/Libraries/LibCpp/Tests/parser mnt/home/anon/Tests/cpp-tests/parser cp -r "$SERENITY_SOURCE_DIR"/Userland/Libraries/LibCpp/Tests/preprocessor mnt/home/anon/Tests/cpp-tests/preprocessor diff --git a/Userland/Libraries/LibWeb/Tests/DOM/AbortController.js b/Userland/Libraries/LibWeb/Tests/DOM/AbortController.js deleted file mode 100644 index 44c77443a6..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/AbortController.js +++ /dev/null @@ -1,20 +0,0 @@ -describe("AbortController", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const abortController = new page.AbortController(); - let timesCallbackCalled = 0; - abortController.signal.addEventListener("abort", () => { - timesCallbackCalled++; - }); - - abortController.abort(); - expect(abortController.signal.aborted).toBeTrue(); - - abortController.abort(); - expect(timesCallbackCalled).toBe(1); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/Comment.js b/Userland/Libraries/LibWeb/Tests/DOM/Comment.js deleted file mode 100644 index 354be07dad..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/Comment.js +++ /dev/null @@ -1,17 +0,0 @@ -describe("Comments", () => { - loadLocalPage("Comment.html"); - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const comment = page.document.body.firstChild.nextSibling; - expect(comment).not.toBeNull(); - - // FIXME: Add this in once Comment's constructor is implemented. - //expect(comment).toBeInstanceOf(Comment); - - expect(comment.nodeName).toBe("#comment"); - expect(comment.data).toBe("This is a comment"); - expect(comment).toHaveLength(17); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/Element.js b/Userland/Libraries/LibWeb/Tests/DOM/Element.js deleted file mode 100644 index d92fbae200..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/Element.js +++ /dev/null @@ -1,42 +0,0 @@ -describe("Element", () => { - loadLocalPage("/res/html/misc/innertext_textcontent.html"); - - afterInitialPageLoad(page => { - test("Element.innerText", () => { - var p = page.document.getElementsByTagName("p")[0]; - expect(p.innerText).toBe("This is a very small test page :^)"); - - // FIXME: Call this on p once that's supported. - var b = page.document.getElementsByTagName("b")[0]; - b.innerText = "foo"; - expect(b.innerText).toBe("foo"); - expect(p.innerText).toBe("This is a foo test page :^)"); - - p.innerText = "bar"; - expect(p.innerText).toBe("bar"); - - var p = page.document.getElementById("source"); - // FIXME: The leading and trailing two spaces each are wrong. - // FIXME: The text should be affected by the text-transform:uppercase. - expect(p.innerText).toBe(` Take a look at -how this text -is interpreted below. `); - }); - - test("Element.namespaceURI basics", () => { - const htmlNamespace = "http://www.w3.org/1999/xhtml"; - const p = page.document.getElementsByTagName("p")[0]; - expect(p.namespaceURI).toBe(htmlNamespace); - - // createElement always sets the namespace to the HTML namespace in HTML page.documents. - const svgElement = page.document.createElement("svg"); - expect(svgElement.namespaceURI).toBe(htmlNamespace); - - const svgNamespace = "http://www.w3.org/2000/svg"; - p.innerHTML = ""; - const domSVGElement = p.getElementsByTagName("svg")[0]; - expect(domSVGElement.namespaceURI).toBe(svgNamespace); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/Node.js b/Userland/Libraries/LibWeb/Tests/DOM/Node.js deleted file mode 100644 index 12f8e12a57..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/Node.js +++ /dev/null @@ -1,68 +0,0 @@ -describe("Node", () => { - loadLocalPage("/res/html/misc/innertext_textcontent.html"); - - afterInitialPageLoad(page => { - test("Node.textContent", () => { - var p = page.document.getElementsByTagName("p")[0]; - expect(p.textContent).toBe("This is a very small test page :^)"); - expect(p.firstChild.textContent).toBe("This is a "); - expect(p.firstChild.firstChild).toBe(null); - - p.firstChild.textContent = "foo"; - expect(p.firstChild.textContent).toBe("foo"); - expect(p.firstChild.firstChild).toBe(null); - expect(p.textContent).toBe("foovery small test page :^)"); - - p.textContent = "bar"; - expect(p.textContent).toBe("bar"); - expect(p.firstChild.textContent).toBe("bar"); - expect(p.firstChild.firstChild).toBe(null); - - var p = page.document.getElementById("source"); - expect(p.textContent).toBe(` - #source { color: red; } #text { text-transform: uppercase; } - Take a look athow this textis interpreted - below. - HIDDEN TEXT - `); - }); - - test("Node.isConnected", () => { - var element = page.document.createElement("p"); - expect(element.isConnected).toBeFalse(); - - page.document.body.appendChild(element); - expect(element.isConnected).toBeTrue(); - - page.document.body.removeChild(element); - expect(element.isConnected).toBeFalse(); - }); - - test("Node.compareDocumentPosition()", () => { - const head = page.document.head; - const body = page.document.body; - - expect(head.compareDocumentPosition(head)).toBe(0); - - // FIXME: Can be uncommented once the IDL parser correctly implements nullable parameters. - // expect(head.compareDocumentPosition(null) & Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC). - // toBe(Node.DOCUMENT_POSITION_DISCONNECTED | Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC); - - expect(head.compareDocumentPosition(body)).toBe(page.Node.DOCUMENT_POSITION_FOLLOWING); - expect(body.compareDocumentPosition(head)).toBe(page.Node.DOCUMENT_POSITION_PRECEDING); - - const source = page.document.getElementById("source"); - expect(source.compareDocumentPosition(body)).toBe( - page.Node.DOCUMENT_POSITION_CONTAINS | page.Node.DOCUMENT_POSITION_PRECEDING - ); - expect(body.compareDocumentPosition(source)).toBe( - page.Node.DOCUMENT_POSITION_CONTAINED_BY | page.Node.DOCUMENT_POSITION_FOLLOWING - ); - expect(source.compareDocumentPosition(head)).toBe( - page.Node.DOCUMENT_POSITION_PRECEDING - ); - }); - }); - - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/Text.js b/Userland/Libraries/LibWeb/Tests/DOM/Text.js deleted file mode 100644 index d2bb6b63e3..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/Text.js +++ /dev/null @@ -1,18 +0,0 @@ -describe("Text", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const title = page.document.getElementsByTagName("title")[0]; - expect(title).toBeDefined(); - - // FIXME: Add this in once Text's constructor is implemented. - //expect(title.firstChild).toBeInstanceOf(Text); - - expect(title.firstChild.nodeName).toBe("#text"); - expect(title.firstChild.data).toBe("Blank"); - expect(title.firstChild.length).toBe(5); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/document.createComment.js b/Userland/Libraries/LibWeb/Tests/DOM/document.createComment.js deleted file mode 100644 index 1b67103110..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/document.createComment.js +++ /dev/null @@ -1,16 +0,0 @@ -describe("createComment", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const comment = page.document.createComment("Create Comment Test"); - - // FIXME: Add this in once Comment's constructor is implemented. - //expect(comment).toBeInstanceOf(Comment); - expect(comment.nodeName).toBe("#comment"); - expect(comment.data).toBe("Create Comment Test"); - expect(comment.length).toBe(19); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/document.createDocumentFragment.js b/Userland/Libraries/LibWeb/Tests/DOM/document.createDocumentFragment.js deleted file mode 100644 index ee3dc1843d..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/document.createDocumentFragment.js +++ /dev/null @@ -1,15 +0,0 @@ -describe("createDocumentFragment", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const fragment = page.document.createDocumentFragment(); - - // FIXME: Add this in once DocumentFragment's constructor is implemented. - //expect(fragment).toBeInstanceOf(DocumentFragment); - expect(fragment.nodeName).toBe("#document-fragment"); - }); - }); - - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/document.createTextNode.js b/Userland/Libraries/LibWeb/Tests/DOM/document.createTextNode.js deleted file mode 100644 index 37c7b6808e..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/document.createTextNode.js +++ /dev/null @@ -1,15 +0,0 @@ -describe("createTextNode", () => { - loadLocalPage("/res/html/misc/blank.html"); - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const text = page.document.createTextNode("Create Text Test"); - - // FIXME: Add this in once Text's constructor is implemented. - //expect(text).toBeInstanceOf(Text); - expect(text.nodeName).toBe("#text"); - expect(text.data).toBe("Create Text Test"); - expect(text.length).toBe(16); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/document.doctype.js b/Userland/Libraries/LibWeb/Tests/DOM/document.doctype.js deleted file mode 100644 index 32634aa551..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/document.doctype.js +++ /dev/null @@ -1,22 +0,0 @@ -describe("doctype", () => { - loadLocalPage("/res/html/misc/blank.html"); - afterInitialPageLoad(page => { - test("Basic functionality", () => { - expect(page.document.compatMode).toBe("CSS1Compat"); - expect(page.document.doctype).not.toBeNull(); - expect(page.document.doctype.name).toBe("html"); - expect(page.document.doctype.publicId).toBe(""); - expect(page.document.doctype.systemId).toBe(""); - }); - }); - waitForPageToLoad(); - - loadLocalPage("/res/html/misc/blank-no-doctype.html"); - afterInitialPageLoad(page => { - test("Quirks mode", () => { - expect(page.document.compatMode).toBe("BackCompat"); - expect(page.document.doctype).toBeNull(); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/document.documentElement.js b/Userland/Libraries/LibWeb/Tests/DOM/document.documentElement.js deleted file mode 100644 index 3b4591e66e..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/document.documentElement.js +++ /dev/null @@ -1,20 +0,0 @@ -describe("documentElement", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - expect(page.document.documentElement).not.toBeNull(); - // FIXME: Add this in once HTMLHtmlElement's constructor is implemented. - //expect(document.documentElement).toBeInstanceOf(HTMLHtmlElement); - expect(page.document.documentElement.nodeName).toBe("HTML"); - }); - - // FIXME: Add this in once removeChild is implemented. - test.skip("Nullable", () => { - page.document.removeChild(page.document.documentElement); - expect(page.document.documentElement).toBeNull(); - }); - }); - - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/mixins/NonElementParentNode.js b/Userland/Libraries/LibWeb/Tests/DOM/mixins/NonElementParentNode.js deleted file mode 100644 index 23bcb84d2d..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/mixins/NonElementParentNode.js +++ /dev/null @@ -1,22 +0,0 @@ -describe("NonElementParentNode", () => { - loadLocalPage("ParentNode.html"); - - afterInitialPageLoad(page => { - test("getElementById basics", () => { - const unique = page.document.getElementById("unique"); - expect(unique).not.toBeNull(); - expect(unique.nodeName).toBe("DIV"); - expect(unique.id).toBe("unique"); - - const caseSensitive = page.document.getElementById("Unique"); - expect(caseSensitive).toBeNull(); - - const firstDuplicate = page.document.getElementById("dupeId"); - expect(firstDuplicate).not.toBeNull(); - expect(firstDuplicate.nodeName).toBe("DIV"); - expect(firstDuplicate.id).toBe("dupeId"); - expect(firstDuplicate.innerHTML).toBe("First ID"); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/DOM/mixins/ParentNode.js b/Userland/Libraries/LibWeb/Tests/DOM/mixins/ParentNode.js deleted file mode 100644 index dab3c35111..0000000000 --- a/Userland/Libraries/LibWeb/Tests/DOM/mixins/ParentNode.js +++ /dev/null @@ -1,28 +0,0 @@ -describe("ParentNode", () => { - loadLocalPage("ParentNode.html"); - - afterInitialPageLoad(page => { - test("querySelector basics", () => { - const firstDuplicateElement = page.document.querySelector(".duplicate"); - expect(firstDuplicateElement).not.toBeNull(); - expect(firstDuplicateElement.nodeName).toBe("DIV"); - expect(firstDuplicateElement.innerHTML).toBe("First"); - - const noElement = page.document.querySelector(".nonexistent"); - expect(noElement).toBeNull(); - }); - - test("querySelectorAll basics", () => { - const allDuplicates = page.document.querySelectorAll(".duplicate"); - expect(allDuplicates).toHaveLength(2); - expect(allDuplicates[0].nodeName).toBe("DIV"); - expect(allDuplicates[0].innerHTML).toBe("First"); - expect(allDuplicates[1].nodeName).toBe("DIV"); - expect(allDuplicates[1].innerHTML).toBe("Second"); - - const noElements = page.document.querySelectorAll(".nonexistent"); - expect(noElements).toHaveLength(0); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encode.js b/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encode.js deleted file mode 100644 index a8c8fdd126..0000000000 --- a/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encode.js +++ /dev/null @@ -1,28 +0,0 @@ -describe("normal behavior", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const textEncoder = new page.TextEncoder(); - - { - const typedArray = textEncoder.encode(""); - expect(typedArray).toHaveLength(0); - } - - { - const typedArray = textEncoder.encode("abc"); - expect(typedArray).toHaveLength(3); - expect(Array.from(typedArray)).toEqual([97, 98, 99]); - } - - { - const typedArray = textEncoder.encode("€"); - expect(typedArray).toHaveLength(3); - expect(Array.from(typedArray)).toEqual([226, 130, 172]); - // [255, 254, 172, 32] in UTF-16, but TextEncoder always converts JS UTF-16 strings to UTF-8 - } - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encoding.js b/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encoding.js deleted file mode 100644 index 50a61beff8..0000000000 --- a/Userland/Libraries/LibWeb/Tests/Encoding/TextEncoder.prototype.encoding.js +++ /dev/null @@ -1,12 +0,0 @@ -describe("normal behavior", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("Basic functionality", () => { - const textEncoder = new page.TextEncoder(); - - expect(textEncoder.encoding).toBe("utf-8"); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/HTML/HTMLElement.js b/Userland/Libraries/LibWeb/Tests/HTML/HTMLElement.js deleted file mode 100644 index 1081c6ca23..0000000000 --- a/Userland/Libraries/LibWeb/Tests/HTML/HTMLElement.js +++ /dev/null @@ -1,12 +0,0 @@ -describe("HTMLElement", () => { - loadLocalPage("/res/html/misc/welcome.html"); - - afterInitialPageLoad(page => { - test("contentEditable attribute", () => { - expect(page.document.body.contentEditable).toBe("inherit"); - expect(page.document.firstChild.nextSibling.nodeName).toBe("HTML"); - expect(page.document.firstChild.nextSibling.contentEditable).toBe("true"); - }); - }); - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/HTML/HTMLScriptElement.supports.js b/Userland/Libraries/LibWeb/Tests/HTML/HTMLScriptElement.supports.js deleted file mode 100644 index e449797d51..0000000000 --- a/Userland/Libraries/LibWeb/Tests/HTML/HTMLScriptElement.supports.js +++ /dev/null @@ -1,25 +0,0 @@ -describe("HTMLScriptElement.supports", () => { - loadLocalPage("/res/html/misc/blank.html"); - - afterInitialPageLoad(page => { - test("length is 1", () => { - expect(page.HTMLScriptElement.supports).toHaveLength(1); - }); - - test("Basic functionality", () => { - expect(page.HTMLScriptElement.supports("classic")).toBeTrue(); - expect(page.HTMLScriptElement.supports("module")).toBeTrue(); - expect(page.HTMLScriptElement.supports("abc")).toBeFalse(); - - // Is case sensitive. - expect(page.HTMLScriptElement.supports("Classic")).toBeFalse(); - expect(page.HTMLScriptElement.supports("Module")).toBeFalse(); - - // Doesn't strip whitespace. - expect(page.HTMLScriptElement.supports(" classic ")).toBeFalse(); - expect(page.HTMLScriptElement.supports(" module ")).toBeFalse(); - }); - }); - - waitForPageToLoad(); -}); diff --git a/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js b/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js deleted file mode 100644 index 82d5d317e5..0000000000 --- a/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js +++ /dev/null @@ -1,121 +0,0 @@ -describe("HTMLTableElement", () => { - loadLocalPage("Table.html"); - - afterInitialPageLoad(page => { - test("empty table attributes", () => { - let table = page.document.getElementById("empty-table"); - expect(table).not.toBeNull(); - - expect(table.caption).toBe(null); - expect(table.tHead).toBe(null); - expect(table.tFoot).toBe(null); - - expect(table.tBodies).toHaveLength(0); - expect(table.rows).toHaveLength(0); - }); - - test("full table attributes", () => { - let table = page.document.getElementById("full-table"); - expect(table).not.toBeNull(); - - expect(table.caption.nodeName).toBe("CAPTION"); - expect(table.tHead.nodeName).toBe("THEAD"); - expect(table.tFoot.nodeName).toBe("TFOOT"); - - expect(table.tBodies.length).toBe(1); - expect(table.rows.length).toBe(3); - }); - - test("create/delete caption", () => { - let table = page.document.createElement("table"); - expect(table).not.toBeNull(); - - expect(table.caption).toBeNull(); - table.createCaption(); - expect(table.caption).not.toBeNull(); - table.deleteCaption(); - expect(table.caption).toBeNull(); - }); - - test("create/delete thead", () => { - let table = page.document.createElement("table"); - expect(table).not.toBeNull(); - - expect(table.tHead).toBeNull(); - table.createTHead(); - expect(table.tHead).not.toBeNull(); - table.deleteTHead(); - expect(table.tHead).toBeNull(); - }); - - test("create/delete tfoot", () => { - let table = page.document.createElement("table"); - expect(table).not.toBeNull(); - - expect(table.tFoot).toBeNull(); - table.createTFoot(); - expect(table.tFoot).not.toBeNull(); - table.deleteTFoot(); - expect(table.tFoot).toBeNull(); - }); - - test("insert rows", () => { - let table = page.document.createElement("table"); - expect(table).not.toBeNull(); - - // We hardcode the default value in a few places, due to the BindingsGenerator's bug with default values - const defaultValue = -1; - - expect(table.rows.length).toBe(0); - - // insertRow with an index > number of rows will throw - expect(() => { - table.insertRow(1); - }).toThrow(); - - // Inserting a row into an empty table will create a
andHead Cell | -
---|
Body Cell | -
Footer Cell | -