blob: 8af364e2e3e8b31300d4a8364e54d979f2e50ac2 [file] [log] [blame]
function checkIfFrameLocationMatchesSrcAndCallDone(frameId)
{
if (!window.testRunner)
return;
var actualURL = 'unavailable', frame = document.getElementById(frameId);
try {
actualURL = frame.contentWindow.location.href;
}
catch (e) {
console.log(e);
}
if (actualURL != frame.src)
alert('URL mismatch: ' + actualURL + ' vs. ' + frame.src);
testRunner.notifyDone();
}
function sendRequestFromIFrame(url, params, HTTPMethod, callbackWhenDone)
{
if (!params || !params.length)
return;
if (!HTTPMethod)
HTTPMethod = 'GET';
if (document.getElementById('frame'))
document.body.removeChild(document.getElementById('frame'));
var iFrameObj = document.createElement('iframe');
iFrameObj.id = 'frame';
iFrameObj.name = 'frame';
document.body.appendChild(iFrameObj);
var frameContent = iFrameObj.contentDocument;
frameContent.open();
frameContent.write('<form method="' + HTTPMethod + '" name="form" id="form" action="' + url + '">');
if (params.length > 0) {
var paramArray = params.split('&');
for (var i = 0; i < paramArray.length; ++i) {
var paramElement = paramArray[i].split('=', 2);
frameContent.write('<input type="text" name="' + paramElement[0] + '" value="' + paramElement[1] + '">');
}
}
frameContent.write('</form>');
frameContent.close();
if (callbackWhenDone)
iFrameObj.onload = callbackWhenDone;
frameContent.getElementById('form').submit();
}
function notifyDoneAfterReceivingBeforeloadFromIds(ids)
{
var loadAttempted = 0;
window.addEventListener("message", function(event) {
var index = ids.indexOf(event.data);
if (index == -1)
return;
loadAttempted = loadAttempted | (1 << index);
if (loadAttempted == (1 << ids.length) - 1)
testRunner.notifyDone();
}, false);
}