Serenity Operating System
1describe("body", () => {
2 loadLocalPage("/res/html/misc/blank.html");
3
4 afterInitialPageLoad(page => {
5 test("Basic functionality", () => {
6 expect(page.document.body).not.toBeNull();
7 // FIXME: Add this in once HTMLBodyElement's constructor is implemented.
8 //expect(page.document.body).toBeInstanceOf(HTMLBodyElement);
9 expect(page.document.body.nodeName).toBe("BODY");
10 });
11
12 // FIXME: Add this in once set_body is fully implemented.
13 test.skip("Setting body to a new body element", () => {
14 // Add something to body to see if it's gone afterwards
15 const p = page.document.createElement("p");
16 page.document.body.appendChild(p);
17
18 expect(page.document.body.firstChild).toBe(p);
19
20 const newBody = page.document.createElement("body");
21 page.document.body = newBody;
22
23 expect(page.document.body).not.toBeNull();
24 expect(page.document.body.nodeName).toBe("BODY");
25
26 // FIXME: Add this in once HTMLBodyElement's constructor is implemented.
27 //expect(page.document.body).toBeInstanceOf(HTMLBodyElement);
28
29 expect(page.document.body.firstChild).toBeNull();
30 });
31
32 // FIXME: Add this in once set_body is fully implemented.
33 test.skip("Setting body to a new frameset element", () => {
34 const newFrameSet = page.document.createElement("frameset");
35 page.document.body = newFrameSet;
36
37 expect(page.document.body).not.toBeNull();
38 expect(page.document.body.nodeName).toBe("FRAMESET");
39
40 // FIXME: Add this in once HTMLFrameSetElement's constructor is implemented.
41 //expect(page.document.body).toBeInstanceOf(HTMLFrameSetElement);
42 });
43
44 // FIXME: Add this in once set_body is fully implemented.
45 test.skip("Setting body to an element that isn't body/frameset", () => {
46 expect(() => {
47 page.document.body = page.document.createElement("div");
48 }).toThrow(DOMException);
49 });
50
51 // FIXME: Add this in once removeChild is implemented.
52 test.skip("Nullable", () => {
53 page.document.page.documentElement.removeChild(page.document.body);
54 expect(page.document.body).toBeNull();
55 });
56 });
57 waitForPageToLoad();
58});