fune/dom/browser-element/mochitest/browserElement_GetContentDimensions.js
Alexandre Lissy 6798f02654 Bug 1286530 - Clean AvailableIn, CheckAnyPermissions and CheckAllPermissions from WebIDL r=bz,fabrice
MozReview-Commit-ID: 6EQfBM09xUE

--HG--
rename : dom/contacts/tests/test_contacts_cache.xul => dom/contacts/tests/test_contacts_a_cache.xul
rename : dom/contacts/tests/test_contacts_shutdown.xul => dom/contacts/tests/test_contacts_a_shutdown.xul
rename : dom/contacts/tests/test_contacts_upgrade.xul => dom/contacts/tests/test_contacts_a_upgrade.xul
rename : dom/mobilemessage/tests/mochitest/mochitest.ini => dom/mobilemessage/tests/mochitest/chrome.ini
extra : rebase_source : 5f708f2a927fafff66626367ef07080785ba9f55
2016-04-21 15:48:59 +02:00

66 lines
2.5 KiB
JavaScript

/* Any copyright is dedicated to the public domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// Bug 757859 - Test the getContentDimensions functionality of mozbrowser
"use strict";
SimpleTest.waitForExplicitFinish();
browserElementTestHelpers.setEnabledPref(true);
var resizeContent = function() {
var innerBox = content.document.getElementById('abox');
innerBox.style.width = '800px';
innerBox.style.height = '800px';
}
function runTest() {
var iframe1 = document.createElement('iframe');
iframe1.setAttribute('mozbrowser', 'true');
var iframeWidth = 400;
var iframeHeight = 400;
var numIframeLoaded = 0;
var numResizeEvents = 0;
var mm;
iframe1.src = 'data:text/html,<html><body><div id=\'abox\' ' +
'style=\'background:blue;width:200px;height:200px\'>test</div></body></html>';
iframe1.style.width = iframeWidth + 'px';
iframe1.style.height = iframeHeight + 'px';
document.body.appendChild(iframe1);
function iframeScrollAreaChanged(e) {
numResizeEvents++;
if (numResizeEvents === 1) {
ok(true, 'Resize event when changing content size');
ok(e.detail.width > iframeWidth, 'Iframes content is larger than iframe');
ok(e.detail.height > iframeHeight, 'Iframes content is larger than iframe');
iframe1.src = 'data:text/html,<html><body><div id=\'abox\' ' +
'style=\'background:blue;width:200px;height:200px\'>test</div></body></html>';
} else if (numResizeEvents === 2) {
ok(true, 'Resize event when changing src');
iframe1.removeEventListener('mozbrowserresize', iframeScrollAreaChanged);
SimpleTest.finish();
}
}
function iframeLoadedHandler() {
iframe1.removeEventListener('mozbrowserloadend', iframeLoadedHandler);
mm = SpecialPowers.getBrowserFrameMessageManager(iframe1);
iframe1.getContentDimensions().onsuccess = function(e) {
ok(typeof e.target.result.width === 'number', 'Received width');
ok(typeof e.target.result.height === 'number', 'Received height');
ok(e.target.result.height <= iframeHeight, 'Iframes content is smaller than iframe');
ok(e.target.result.width <= iframeWidth, 'Iframes content is smaller than iframe');
iframe1.addEventListener('mozbrowserscrollareachanged', iframeScrollAreaChanged);
mm.loadFrameScript('data:,(' + resizeContent.toString() + ')();', false);
}
}
iframe1.addEventListener('mozbrowserloadend', iframeLoadedHandler);
}
addEventListener('load', function() {
SimpleTest.executeSoon(runTest);
});