<html>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<script>
window.jsTestIsAsync = true;

describe('MutationObservers', function() {
    it ('must wait for the next loop when created during delivery', function(done) {
        var order = [];
        var div = document.createElement('div');

        var observer3;
        var observer1 = new MutationObserver(function(mutations) {
            order.push(1);
            if (!observer3) {
                observer3 = new MutationObserver(function(mutations) {
                    order.push(3);
                });
                observer3.observe(div, {attributes: true});
                div.setAttribute('foo', 'baz');
            }
        });
        var observer2 = new MutationObserver(function(mutations) {
            order.push(2);
        });

        observer1.observe(div, {attributes: true});
        observer2.observe(div, {attributes: true});
        div.setAttribute('foo', 'bar');
        setTimeout(function() {
            assert.deepEqual(order, [1, 2, 1, 3]);
            done();
        }, 0);
    });
});
</script>
</html>
