blob: 57a40fe84dae0a8c26880970d1761c83e115d5ba [file] [log] [blame]
// testharness file with WebExtensions utilities
/**
* Loads the WebExtension at the path specified and runs the tests defined in the extension's resources.
* Listens to messages sent from the user agent and converts the `browser.test` assertions
* into testharness.js assertions.
*
* @param {string} extensionPath - a path to the extension's resources.
*/
setup({ explicit_done: true })
globalThis.runTestsWithWebExtension = function(extensionPath) {
test_driver.install_web_extension({
type: "path",
path: extensionPath
})
.then((result) => {
let test;
browser.test.onTestStarted.addListener((data) => {
test = async_test(data.testName)
})
browser.test.onTestFinished.addListener((data) => {
test.step(() => {
let description = data.message ? `${data.assertionDescription}. ${data.message}` : data.assertionDescription
assert_true(data.result, description)
})
test.done()
if (!data.result) {
test.set_status(test.FAIL)
}
if (!data.remainingTests) {
test_driver.uninstall_web_extension(result.extension).then(() => { done() })
}
})
})
}