2023-04-25 13:25:59 +02:00

106 lines
2.9 KiB
HTML
Executable File

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>QUnit LoadHide</title>
<link rel="stylesheet" href="resources/qunit.css" />
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture">
<div style="width:600px;">
<div class="focusable" tabindex="0"></div>
<iframe
src="resources/frame.content.html"
width="100%"
scrolling="no"
tabindex="1"
></iframe>
</div>
</div>
<script src="resources/qunit.js"></script>
<script src="resources/jquery.js"></script>
<script src="resources/testLib.js"></script>
<script src="../js/iframeResizer.min.js"></script>
<script>
'use strict'
var regexp1 = /\[iFrameSizer\]\[Host page: iFrameResizer[0-9]+\]/
var regexp2 = /\[Window focus\] IFrame\(iFrameResizer[0-9]+\) not found/
function spyOn(obj, method) {
var original = obj[method]
var spy = {
count: 0,
args: [],
restore: function() {
obj[method] = original
}
}
obj[method] = function() {
var args = [].slice.apply(arguments)
spy.count++
spy.args.push(args)
return original.call(obj, args)
}
return spy
}
function removeIFrameTest() {
asyncTest('Remove iFrame', function() {
var iframeEl = $('iframe')
iframeEl.iFrameResize({
// log: true,
onInit: function() {
var warn = spyOn(console, 'warn')
$('.focusable').focus()
iframeEl[0].parentElement.removeChild(iframeEl[0])
setTimeout(function() {
warn.restore()
if (warn.count > 0) {
warn.args.forEach(function(args) {
ok(
!regexp1.test(args[0]) && !regexp2.test(args[1]),
'No warnings about already removed frames should get logged to the console. Instead "' +
args.join('') +
'" got logged.'
)
})
} else {
ok(
true,
'No warnings about already removed frames got logged to the console.'
)
}
start()
}, 100)
}
})
})
}
if (
window.MutationObserver ||
window.WebKitMutationObserver ||
window.MozMutationObserver
) {
removeIFrameTest()
} else {
console.warn(
'(MutationObserver not supported in this browser! Unable to run test)'
)
test('Remove iFrame', function() {
ok(
true,
'MutationObserver not supported in this browser! Unable to run test.'
)
})
}
</script>
</body>
</html>