web: Add test for classic <frame>s

This commit is contained in:
Nathan Adams 2020-05-23 19:37:06 +02:00 committed by Mike Welsh
parent a0bfe72b19
commit a7abdba49c
6 changed files with 132 additions and 2 deletions

View File

@ -0,0 +1,9 @@
<ruffle-object
type="application/x-shockwave-flash"
data="/test_assets/example.swf"
width="550"
height="400"
>
<param name="movie" value="/test_assets/example.swf" />
<param name="quality" value="high" />
</ruffle-object>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Nav</title>
</head>
<body>
<a href="frame2.html" target="content" id="reload-link">Reload frame</a>
</body>
</html>

View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>REAL CONTENT</title>
<style>
* {
margin: 0;
}
</style>
</head>
<body>
<div id="test-container">
<object
type="application/x-shockwave-flash"
data="/test_assets/example.swf"
width="550"
height="400"
>
<param name="movie" value="/test_assets/example.swf" />
<param name="quality" value="high" />
</object>
</div>
</body>
</html>

View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WEB</title>
<script>
window.RufflePlayer = window.RufflePlayer || {};
window.RufflePlayer.config = {
polyfills: [
"static-content",
"plugin-detect",
"dynamic-content",
"frames",
],
};
</script>
<!--
Frame polyfilling depends on ruffle being loaded first,
so here we explicitly add it early and not after-load
-->
<script src="/dist/ruffle.js"></script>
</head>
<frameset rows="10%,90%">
<frame
id="nav-frame"
name="nav"
src="frame1.html"
scrolling="no"
frameborder="0"
></frame>
<frame
id="test-frame"
name="content"
src="frame2.html"
scrolling="no"
frameborder="0"
></frame>
</frameset>
</html>

View File

@ -0,0 +1,46 @@
const { open_test } = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
use(chaiHtml);
describe("Object and embed", () => {
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")
);
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.waitUntil(() =>
browser.execute(() => document.readyState === "complete")
);
const actual = browser.$("#test-container").getHTML(false);
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
});

View File

@ -28,8 +28,6 @@ function inject_ruffle(browser) {
function inject_ruffle_and_wait(browser) {
inject_ruffle(browser);
wait_for_ruffle(browser);
console.log(browser.$("html").getHTML(true));
}
function open_test(browser, absolute_dir, file_name) {