wallet-core/testlib/selenium/testhost.html

64 lines
1.8 KiB
HTML

<!doctype html>
<html>
<head>
<title>Browser Test Host</title>
<script src="/testlib/selenium/esprima.js"></script>
<script src="/testlib/selenium/escodegen.browser.js"></script>
<script src="/testlib/selenium/instrumenter.js"></script>
<script src="/src/vendor/URI.js"></script>
<!-- for instrumentation to work, we have to use the non-csp version -->
<script src="/testlib/selenium/system.js"></script>
</head>
<body>
<script>
document.body.appendChild(document.createTextNode(`starting test`));
document.body.appendChild(document.createElement("br"));
var requestCoverage = false;
let parser = document.createElement('a');
let oldTranslate = System.translate.bind(System);
System.translate = (load) => {
let srcP = oldTranslate(load);
if (!requestCoverage) {
return srcP;
}
parser.href = load.name;
let modName = parser.pathname.substring(1);
if (/.*\/?taler-emscripten-lib.js/.test(load.name)) {
// don't instrument emscripten
document.body.appendChild(document.createTextNode(`not instrumenting ${modName}`));
document.body.appendChild(document.createElement("br"));
return srcP;
}
let inst = new Instrumenter();
document.body.appendChild(document.createTextNode(`instrumenting ${modName}`));
document.body.appendChild(document.createElement("br"));
return Promise.resolve(srcP).then((src) => {
return inst.instrumentSync(src, modName);
});
}
System.config({
baseURL: "/",
defaultJSExtensions: true,
meta: {
"src/emscripten/taler-emscripten-lib": {
format: "global",
exports: "Module",
},
},
});
</script>
</body>
</html>