<html>
<head>
<title>Test for 13364</title>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}
</script>
</head>
<body>
<a href="http://bugs.webkit.org/show_bug.cgi?id=13364">http://bugs.webkit.org/show_bug.cgi?id=13364</a><br><br>
This tests the base url in a subframe document that starts out loaded from a really, addressable resource but then undergoes a document.write (or document.open)<br><br>
The link in the subframe relative to this document should be "/resources/foobar.html" and not "foobar.html"<br><br>
<div id="testResult">Failure</div><br>
<iframe src="resources/subframe-base-url.html"><br><br>
</body>
</head>

