tests: In browser based tests, actually press play and check that the movie spits out some text

This commit is contained in:
Nathan Adams 2020-09-06 01:39:17 +02:00 committed by Mike Welsh
parent 4c6c8ee1f2
commit 085c61b94f
13 changed files with 184 additions and 12 deletions

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Embed tag", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-embed />")
);
});
});

View File

@ -1,4 +1,8 @@
const { open_test, inject_ruffle_and_wait } = require("../utils");
const {
open_test,
inject_ruffle_and_wait,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -18,4 +22,11 @@ describe("Embed with case-insensitive MIME type", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-embed />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Embed without type attribute", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-embed />")
);
});
});

View File

@ -1,4 +1,8 @@
const { open_test, inject_ruffle_and_wait } = require("../utils");
const {
open_test,
inject_ruffle_and_wait,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -18,4 +22,11 @@ describe("Object with case-insensitive MIME type", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { open_test, inject_ruffle_and_wait } = require("../utils");
const {
open_test,
inject_ruffle_and_wait,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -18,4 +22,11 @@ describe("Object with case-insensitive clsid", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { open_test, inject_ruffle_and_wait } = require("../utils");
const {
open_test,
inject_ruffle_and_wait,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -18,4 +22,11 @@ describe("Object with only data attribute", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object tag", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object for old IE must work everywhere", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object without type attribute", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object without type and classid attributes", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object with unexpected string", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -1,4 +1,8 @@
const { inject_ruffle_and_wait, open_test } = require("../utils");
const {
inject_ruffle_and_wait,
open_test,
play_and_monitor,
} = require("../utils");
const { expect, use } = require("chai");
const chaiHtml = require("chai-html");
const fs = require("fs");
@ -16,4 +20,11 @@ describe("Object with wrong type attribute value", () => {
const expected = fs.readFileSync(`${__dirname}/expected.html`, "utf8");
expect(actual).html.to.equal(expected);
});
it("Plays a movie", () => {
play_and_monitor(
browser,
browser.$("#test-container").$("<ruffle-object />")
);
});
});

View File

@ -24,6 +24,45 @@ function inject_ruffle(browser) {
});
}
function play_and_monitor(browser, player) {
// TODO: better way to test for this in the API
browser.waitUntil(
() => {
return browser.execute((player) => {
return (
player.play_button_clicked !== undefined && player.instance
);
}, player);
},
{
timeoutMsg: "Expected player to have initialized",
}
);
browser.execute((player) => {
player.__ruffle_log__ = "";
player.trace_observer = (msg) => {
player.__ruffle_log__ += msg + "\n";
};
// TODO: make this an actual intended api...
player.play_button_clicked();
}, player);
browser.waitUntil(
() => {
return (
browser.execute((player) => {
return player.__ruffle_log__;
}, player) === "Hello from Flash!\n"
);
},
{
timeoutMsg: "Expected Ruffle to trace a message",
}
);
}
function inject_ruffle_and_wait(browser) {
inject_ruffle(browser);
wait_for_ruffle(browser);
@ -40,6 +79,7 @@ function open_test(browser, absolute_dir, file_name) {
module.exports = {
is_ruffle_loaded,
wait_for_ruffle,
play_and_monitor,
inject_ruffle,
inject_ruffle_and_wait,
open_test,