<!doctype html>
<title>pointer updates (adding br elements)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
var a = 0;
var b = 0;
var c = 0;
</script>
<video
 ><source onerror=a++
 ><source onerror=b++ src='resources/delayed-broken-video.py'
 ><source onerror=c++
 ></video
>
<script>
async_test(function(t) {
  var video = document.querySelector('video');
  // add br elements
  var br = document.createElement('br');
  video.insertBefore(br, video.querySelector('[onerror="a++"]'));
  video.insertBefore(br.cloneNode(false), video.querySelector('[onerror="b++"]'));
  video.insertBefore(br.cloneNode(false), video.querySelector('[onerror="c++"]'));
  video.appendChild(br.cloneNode(false));
  window.onload = t.step_func(function() {
    assert_equals(a, 1, 'error events on a');
    assert_equals(b, 1, 'error events on b');
    assert_equals(c, 1, 'error events on c');
    t.done();
  });
});
</script>
