<html>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<script>
describe('MutationObserver', function() {
  it('should not interrupt delivery order on getting mutations during delivery', function(done) {
    function finish() {
      assert.deepEqual(order, [1, 3, 2]);
      done();
    }

    var order = [];
    var div = document.createElement('div');

    var observer1 = new MutationObserver(function(mutations) {
      order.push(1);
      div.appendChild(document.createElement('span'));
    });
    var observer2 = new MutationObserver(function(mutations) {
      order.push(2);
    });
    var observer3 = new MutationObserver(function(mutations) {
      order.push(3);
    });

    observer1.observe(div, {attributes: true});
    observer2.observe(div, {childList: true});
    observer3.observe(div, {attributes: true});
    div.setAttribute('foo', 'bar');
    setTimeout(finish, 0);
  });
});
</script>
</html>
