<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML Test: base_href_unspecified</title>
<link rel="author" title="Intel" href="http://www.intel.com/">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-base-element">
<base id="base" target="_blank">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<div id="log"></div>
<img id="test" src="/images/blue-100x100.png" style="display:none">

<script>
  var testElement,
      baseElement;

  setup(function () {
    testElement = document.getElementById("test");
    baseElement = document.getElementById("base");
  });

  test(function() {
    assert_equals(baseElement.href, document.location.href, "Return the document base URL if the base element has no href content attribute.");
  }, "The value of the href attribute must be the document's address if it is unspecified");

  test(function() {
    var exp = testElement.src.substring(0, testElement.src.lastIndexOf("/images/blue-100x100.png") + 1);
    assert_true(baseElement.href.indexOf(exp) != -1, "The src attribute of the img element is incorrect.");
  }, "The src attribute of the img element must relative to document's address");
</script>
