deputat/iframe-resizer-master/spec/getPageInfoSpec.js
2023-04-25 13:25:59 +02:00

87 lines
2.1 KiB
JavaScript
Executable File

define(['iframeResizer'], function(iFrameResize) {
describe('Get Page info', function() {
var log = LOG
var testId = 'anchor'
beforeEach(function() {
loadIFrame('iframe600.html')
})
it('requested from iFrame', function(done) {
var iframe1 = iFrameResize({
log: log,
id: 'getPageInfo'
})[0]
spyOn(iframe1.contentWindow, 'postMessage').and.callFake(function(msg) {
if (0 !== msg.indexOf('pageInfo')) {
expect(
msg.indexOf(
'"offsetTop":0,"offsetLeft":0,"scrollTop":0,"scrollLeft":0'
)
).not.toEqual(0)
}
if (0 !== msg.indexOf('pageInfoStop')) {
tearDown(iframe1)
done()
}
})
mockMsgFromIFrame(iframe1, 'pageInfo')
mockMsgFromIFrame(iframe1, 'pageInfoStop')
})
})
describe('Get Page info with multiple frames', function() {
var log = LOG
beforeEach(function() {
loadIFrame('twoIFrame600WithId.html')
})
xit('must send pageInfo to second frame', function(done) {
var iframes = iFrameResize({
log: log,
id: '#frame1,#frame2',
onInit: function(iframe) {
iframe.iFrameResizer.sendMessage('getPageInfo')
}
})
var iframe1 = iframes[0],
iframe2 = iframes[1]
setTimeout(function() {
var counter = 0,
frame1Called = false,
frame2Called = false
function checkCounter() {
if (counter === 2) {
expect(frame1Called && frame2Called).toBeTruthy()
tearDown(iframe1)
tearDown(iframe2)
done()
}
}
iframe1.contentWindow.postMessage = function(msg) {
if (0 < msg.indexOf('pageInfo')) {
frame1Called = true
counter++
checkCounter()
}
}
iframe2.contentWindow.postMessage = function(msg) {
if (0 < msg.indexOf('pageInfo')) {
frame2Called = true
counter++
checkCounter()
}
}
window.dispatchEvent(new Event('resize'))
}, 200)
})
})
})