blob: c4b456750bdbe99d9fb6b97129f9bcee0a79f964 [file]
'use strict';
if (typeof window !== "undefined" && typeof window.document !== 'undefined') {
runTests();
}
function runTests() {
describe('test.issue8581.js', function () {
let iframe;
let callbackFnName = "";
afterEach(() => {
if (iframe) {
window.document.body.removeChild(iframe);
}
iframe = null;
if (callbackFnName in window) {
delete window[callbackFnName];
}
});
this.beforeEach(() => {
callbackFnName = "callback" + Date.now();
iframe = window.document.createElement("iframe", { src: "about:blank" });
window.document.body.appendChild(iframe);
});
it('#8581 Should not raise error', function (done) {
window[callbackFnName] = (err) => {
if (timeout) {
timeout = clearTimeout(timeout);
}
done(err);
window[callbackFnName] = () => { };
};
let timeout = setTimeout(
() => {
if (callbackFnName in window) {
window[callbackFnName](new Error(`Timed out`));
}
}
, 500);
const target = iframe.contentDocument;
const scriptElement = target.createElement("script");
scriptElement.innerHTML =
`localStorage.setItem("Hello",new Date());setTimeout(window.parent.${callbackFnName},100);`;
target.body.appendChild(scriptElement);
});
});
}