<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


<title>A simple page</title>
<script>
if (window.testRunner)
  testRunner.waitUntilDone();

window.onload = function() {
  var span=document.createElement("span");
  if (window.location != 'http://localhost/simple_page.html' &&
      document.domain != 'localhost') {
     span.innerHTML = "PASS";
  } else {
     span.innerHTML = "FAIL window.location=" + window.location +
         " document.domain=" + document.domain;
  }

  document.getElementById('locDiv').appendChild(span);
  testRunner.notifyDone();
}

</script>
<base href=3D"http://localhost/"></base></head><body>
<h1>This is a very simple page</h1>
Very <b>basic</b> page.
<div id='locDiv'></div>
</body></html>
