document.body.js 2.3 KB

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