document.readyState.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. describe("readyState", () => {
  2. loadLocalPage("/res/html/misc/blank.html");
  3. beforeInitialPageLoad(page => {
  4. window.events = [];
  5. page.document.addEventListener("readystatechange", () => {
  6. window.events.push(page.document.readyState);
  7. });
  8. page.document.addEventListener("DOMContentLoaded", () => {
  9. test("Ready state should be 'interactive' when 'DOMContentLoaded' fires", () => {
  10. expect(page.document.readyState).toBe("interactive");
  11. });
  12. });
  13. test("Ready state should be 'loading' initially", () => {
  14. expect(page.document.readyState).toBe("loading");
  15. });
  16. });
  17. afterInitialPageLoad(page => {
  18. test("'interactive' should come before 'complete' and both should have happened", () => {
  19. expect(page.window.events).toHaveLength(2);
  20. expect(page.window.events[0]).toBe("interactive");
  21. expect(page.window.events[1]).toBe("complete");
  22. });
  23. test("Ready state should be 'complete' after loading", () => {
  24. expect(page.document.readyState).toBe("complete");
  25. });
  26. });
  27. waitForPageToLoad();
  28. });