diff --git a/web/packages/selfhosted/test/polyfill/classic_frames/expected.html b/web/packages/selfhosted/test/polyfill/classic_frames_injected/expected.html similarity index 100% rename from web/packages/selfhosted/test/polyfill/classic_frames/expected.html rename to web/packages/selfhosted/test/polyfill/classic_frames_injected/expected.html diff --git a/web/packages/selfhosted/test/polyfill/classic_frames/frame1.html b/web/packages/selfhosted/test/polyfill/classic_frames_injected/frame1.html similarity index 100% rename from web/packages/selfhosted/test/polyfill/classic_frames/frame1.html rename to web/packages/selfhosted/test/polyfill/classic_frames_injected/frame1.html diff --git a/web/packages/selfhosted/test/polyfill/classic_frames/frame2.html b/web/packages/selfhosted/test/polyfill/classic_frames_injected/frame2.html similarity index 100% rename from web/packages/selfhosted/test/polyfill/classic_frames/frame2.html rename to web/packages/selfhosted/test/polyfill/classic_frames_injected/frame2.html diff --git a/web/packages/selfhosted/test/polyfill/classic_frames/index.html b/web/packages/selfhosted/test/polyfill/classic_frames_injected/index.html similarity index 81% rename from web/packages/selfhosted/test/polyfill/classic_frames/index.html rename to web/packages/selfhosted/test/polyfill/classic_frames_injected/index.html index 57e49dec8..2d9e5bb8c 100644 --- a/web/packages/selfhosted/test/polyfill/classic_frames/index.html +++ b/web/packages/selfhosted/test/polyfill/classic_frames_injected/index.html @@ -14,11 +14,6 @@ ], }; - - diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.js b/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.js new file mode 100644 index 000000000..657fba368 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.js @@ -0,0 +1,44 @@ +const { open_test, inject_ruffle_and_wait } = require("../utils"); +const { expect, use } = require("chai"); +const chaiHtml = require("chai-html"); +const fs = require("fs"); + +use(chaiHtml); + +// TODO: Injected is broken today +describe.skip("Flash inside frame with injected ruffle", () => { + it("loads the test", () => { + open_test(browser, __dirname); + }); + + it("polyfills inside a frame", () => { + inject_ruffle_and_wait(browser); + browser.switchToFrame(browser.$("#test-frame")); + browser.$("").waitForExist(); + + const actual = browser.$("#test-container").getHTML(false); + const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); + expect(actual).html.to.equal(expected); + }); + + it("polyfills even after a reload", () => { + // Contaminate the old contents, to ensure we get a "fresh" state + browser.execute(() => { + document.getElementById("test-container").remove(); + }); + + // Then reload + browser.switchToParentFrame(); + browser.switchToFrame(browser.$("#nav-frame")); + browser.$("#reload-link").click(); + + // And finally, check + browser.switchToParentFrame(); + browser.switchToFrame(browser.$("#test-frame")); + browser.$("").waitForExist(); + + const actual = browser.$("#test-container").getHTML(false); + const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); + expect(actual).html.to.equal(expected); + }); +}); diff --git a/web/packages/selfhosted/test/polyfill/iframes/expected.html b/web/packages/selfhosted/test/polyfill/classic_frames_provided/expected.html similarity index 100% rename from web/packages/selfhosted/test/polyfill/iframes/expected.html rename to web/packages/selfhosted/test/polyfill/classic_frames_provided/expected.html diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame1.html b/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame1.html new file mode 100644 index 000000000..5c75e86d5 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame1.html @@ -0,0 +1,11 @@ + + + + + Nav + + + + Reload frame + + diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame2.html b/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame2.html new file mode 100644 index 000000000..5b978113d --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/classic_frames_provided/frame2.html @@ -0,0 +1,26 @@ + + + + + REAL CONTENT + + + + +
+ + + + +
+ + diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_provided/index.html b/web/packages/selfhosted/test/polyfill/classic_frames_provided/index.html new file mode 100644 index 000000000..269615a67 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/classic_frames_provided/index.html @@ -0,0 +1,36 @@ + + + + + WEB + + + + + + + + + diff --git a/web/packages/selfhosted/test/polyfill/classic_frames/test.js b/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.js similarity index 82% rename from web/packages/selfhosted/test/polyfill/classic_frames/test.js rename to web/packages/selfhosted/test/polyfill/classic_frames_provided/test.js index f98da0104..7b3e7f005 100644 --- a/web/packages/selfhosted/test/polyfill/classic_frames/test.js +++ b/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.js @@ -5,16 +5,14 @@ const fs = require("fs"); use(chaiHtml); -describe("Flash inside frame", () => { +describe("Flash inside frame with provided ruffle", () => { it("loads the test", () => { open_test(browser, __dirname); }); it("polyfills inside a frame", () => { browser.switchToFrame(browser.$("#test-frame")); - browser.waitUntil(() => - browser.execute(() => document.readyState === "complete") - ); + browser.$("").waitForExist(); const actual = browser.$("#test-container").getHTML(false); const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); @@ -35,9 +33,7 @@ describe("Flash inside frame", () => { // And finally, check browser.switchToParentFrame(); browser.switchToFrame(browser.$("#test-frame")); - browser.waitUntil(() => - browser.execute(() => document.readyState === "complete") - ); + browser.$("").waitForExist(); const actual = browser.$("#test-container").getHTML(false); const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); diff --git a/web/packages/selfhosted/test/polyfill/iframes/inner.html b/web/packages/selfhosted/test/polyfill/iframes/inner.html deleted file mode 100644 index 8e2de8368..000000000 --- a/web/packages/selfhosted/test/polyfill/iframes/inner.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - REAL CONTENT - - - - -
- - - - -
- - diff --git a/web/packages/selfhosted/test/polyfill/iframes_injected/expected.html b/web/packages/selfhosted/test/polyfill/iframes_injected/expected.html new file mode 100644 index 000000000..383ff72d1 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_injected/expected.html @@ -0,0 +1,9 @@ + + + + diff --git a/web/packages/selfhosted/test/polyfill/iframes/index.html b/web/packages/selfhosted/test/polyfill/iframes_injected/index.html similarity index 82% rename from web/packages/selfhosted/test/polyfill/iframes/index.html rename to web/packages/selfhosted/test/polyfill/iframes_injected/index.html index d6d9a6912..35a2ca657 100644 --- a/web/packages/selfhosted/test/polyfill/iframes/index.html +++ b/web/packages/selfhosted/test/polyfill/iframes_injected/index.html @@ -19,11 +19,6 @@ ], }; - - Reload frame diff --git a/web/packages/selfhosted/test/polyfill/iframes_injected/inner.html b/web/packages/selfhosted/test/polyfill/iframes_injected/inner.html new file mode 100644 index 000000000..b51199e47 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_injected/inner.html @@ -0,0 +1,25 @@ + + + + + REAL CONTENT + + + +
+ + + + +
+ + diff --git a/web/packages/selfhosted/test/polyfill/iframes_injected/test.js b/web/packages/selfhosted/test/polyfill/iframes_injected/test.js new file mode 100644 index 000000000..54849d63f --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_injected/test.js @@ -0,0 +1,43 @@ +const { open_test, inject_ruffle_and_wait } = require("../utils"); +const { expect, use } = require("chai"); +const chaiHtml = require("chai-html"); +const fs = require("fs"); + +use(chaiHtml); + +// TODO: Injected is broken today +describe.skip("Flash inside iframe with injected ruffle", () => { + it("loads the test", () => { + open_test(browser, __dirname); + }); + + it("polyfills inside an iframe", () => { + inject_ruffle_and_wait(browser); + browser.switchToFrame(browser.$("#test-frame")); + browser.$("").waitForExist(); + + const actual = browser.$("#test-container").getHTML(false); + const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); + expect(actual).html.to.equal(expected); + }); + + it("polyfills even after a reload", () => { + // Contaminate the old contents, to ensure we get a "fresh" state + browser.execute(() => { + document.getElementById("test-container").remove(); + }); + + // Then reload + browser.switchToParentFrame(); + browser.$("#reload-link").click(); + + // And finally, check + browser.switchToParentFrame(); + browser.switchToFrame(browser.$("#test-frame")); + browser.$("").waitForExist(); + + const actual = browser.$("#test-container").getHTML(false); + const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); + expect(actual).html.to.equal(expected); + }); +}); diff --git a/web/packages/selfhosted/test/polyfill/iframes_provided/expected.html b/web/packages/selfhosted/test/polyfill/iframes_provided/expected.html new file mode 100644 index 000000000..383ff72d1 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_provided/expected.html @@ -0,0 +1,9 @@ + + + + diff --git a/web/packages/selfhosted/test/polyfill/iframes_provided/index.html b/web/packages/selfhosted/test/polyfill/iframes_provided/index.html new file mode 100644 index 000000000..710077693 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_provided/index.html @@ -0,0 +1,36 @@ + + + + + FAKE CONTENT + + + + + + Reload frame + + + diff --git a/web/packages/selfhosted/test/polyfill/iframes_provided/inner.html b/web/packages/selfhosted/test/polyfill/iframes_provided/inner.html new file mode 100644 index 000000000..b51199e47 --- /dev/null +++ b/web/packages/selfhosted/test/polyfill/iframes_provided/inner.html @@ -0,0 +1,25 @@ + + + + + REAL CONTENT + + + +
+ + + + +
+ + diff --git a/web/packages/selfhosted/test/polyfill/iframes/test.js b/web/packages/selfhosted/test/polyfill/iframes_provided/test.js similarity index 82% rename from web/packages/selfhosted/test/polyfill/iframes/test.js rename to web/packages/selfhosted/test/polyfill/iframes_provided/test.js index cb9b9dbe3..aac5ff6dd 100644 --- a/web/packages/selfhosted/test/polyfill/iframes/test.js +++ b/web/packages/selfhosted/test/polyfill/iframes_provided/test.js @@ -5,16 +5,14 @@ const fs = require("fs"); use(chaiHtml); -describe("Flash inside iframe", () => { +describe("Flash inside iframe with provided ruffle", () => { it("loads the test", () => { open_test(browser, __dirname); }); it("polyfills inside an iframe", () => { browser.switchToFrame(browser.$("#test-frame")); - browser.waitUntil(() => - browser.execute(() => document.readyState === "complete") - ); + browser.$("").waitForExist(); const actual = browser.$("#test-container").getHTML(false); const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8"); @@ -34,9 +32,7 @@ describe("Flash inside iframe", () => { // And finally, check browser.switchToParentFrame(); browser.switchToFrame(browser.$("#test-frame")); - browser.waitUntil(() => - browser.execute(() => document.readyState === "complete") - ); + browser.$("").waitForExist(); const actual = browser.$("#test-container").getHTML(false); const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");