<html>
<import src="../resources/chai.sky" />
<import src="/sky/framework/inspector/dom-agent.sky" as="DOMAgent" />
<div><div></div></div>
<script>
// setTimeout to flush pending DOM modifications and measure
// only the changes we want to.
var expectedMessages = [
    'DOM.childNodeRemoved',
    'DOM.childNodeInserted',
];
var actualMessages = [];

setTimeout(function() {
    var delegate = {
        sendMessage: function(message, params) {
            actualMessages.push(message);
        }
    };

    var domAgent = new DOMAgent(delegate);
    domAgent.enable();

    var adding = document.createElement('adding');
    var container = document.querySelector('div');
    container.firstChild.remove();
    container.appendChild(document.createElement('adding'));

    setTimeout(function() {
        assert.equal(JSON.stringify(expectedMessages),
            JSON.stringify(actualMessages));
        internals.notifyTestComplete("Done!");
    });
});
</script>
</html>
