<form action="resources/success.txt" method="GET" target="tg">
  <object data="resources/logo.gif" type="image/gif" width="180" height="60">
    <textarea id="abc" name="abc" rows="5" cols="70">Hello World</textarea>
  </object>
</form>
<iframe name="tg"></iframe>
<div id="result"></div>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

window.onload = function() {
    document.getElementsByTagName('iframe')[0].addEventListener('load', function () {
        var expected_search = "?abc=Hello+World";
        var actual_search = this.contentWindow.location.search;
        if (expected_search == actual_search)
            document.getElementById('result').textContent = "PASS";
        else
            document.getElementById('result').textContent = "FAIL: actual=" + actual_search;
        if (window.testRunner)
            testRunner.notifyDone();
    }, false);

    document.getElementsByTagName('form')[0].submit();
}
</script>
