<html>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<script>
describe('Test MutationObserver.observe', function() {
  it('should respect character data options', function() {
    var observer = new MutationObserver(function() {});
    var text = document.createTextNode('0');

    observer.observe(text, {characterDataOldValue: true});
    text.data = '1';
    var records = observer.takeRecords();
    assert.equal(records.length, 1);
    assert.equal(records[0].oldValue, 0);
    observer.disconnect();

    observer.observe(text, {characterDataOldValue: false});
    text.data = '2';
    var records = observer.takeRecords();
    assert.equal(records.length, 1);
    assert.isNull(records[0].oldValue);
    observer.disconnect();
  });
});
</script>
</html>
