<!doctype html>
<title>insertAdjacentHTML</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#element {
  display: none;
}
</style>

<div id="element"></div>
<div id="log"></div>

<script>
function wrap(text) {
  return '<h3>' + text + '</h3>';
}

var possiblePositions = {
    'beforebegin': 'previousSibling'
  , 'afterbegin': 'firstChild'
  , 'beforeend': 'lastChild'
  , 'afterend': 'nextSibling'
}

var el = document.querySelector('#element');

Object.keys(possiblePositions).forEach(function(position) {
  var html = wrap(position);
  test(function() {
    el.insertAdjacentHTML(position, html);
    var heading = document.createElement('h3');
    heading.innerHTML = position;
    assert_equals(el[possiblePositions[position]].nodeName, "H3");
    assert_equals(el[possiblePositions[position]].firstChild.nodeType, Node.TEXT_NODE);
  }, 'insertAdjacentHTML(' + position + ', ' + html + ' )');
});
</script>
