mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
41 lines
1.4 KiB
HTML
41 lines
1.4 KiB
HTML
<html>
|
|
<link rel="import" href="../resources/chai.html" />
|
|
<link rel="import" href="../resources/mocha.html" />
|
|
<script>
|
|
describe('MutationObserver', function() {
|
|
it('should deliver in order of creation', function(done) {
|
|
var order = [];
|
|
var observers = [];
|
|
|
|
function setUpOrdering(num) {
|
|
observers.push(new MutationObserver(function(mutations) {
|
|
order.push(num);
|
|
}));
|
|
}
|
|
|
|
for (var i = 0; i < 10; ++i)
|
|
setUpOrdering(i);
|
|
|
|
var div = document.createElement('div');
|
|
observers[3].observe(div, {attributes: true});
|
|
observers[2].observe(div, {characterData: true, subtree: true});
|
|
observers[1].observe(div, {attributes: true});
|
|
observers[7].observe(div, {childList: true});
|
|
observers[4].observe(div, {attributes: true});
|
|
observers[9].observe(div, {attributes: true});
|
|
observers[0].observe(div, {childList: true});
|
|
observers[5].observe(div, {attributes: true});
|
|
observers[6].observe(div, {characterData: true, subtree: true});
|
|
observers[8].observe(div, {attributes: true});
|
|
div.setAttribute('foo', 'bar');
|
|
div.appendChild(document.createTextNode('hello'));
|
|
div.firstChild.textContent = 'goodbye';
|
|
setTimeout(function() {
|
|
assert.deepEqual(order, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
done();
|
|
}, 0);
|
|
});
|
|
});
|
|
</script>
|
|
</html>
|