62 lines
1.7 KiB
HTML
62 lines
1.7 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>
|
|
|
|
<!-- 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>
|