| Index: LayoutTests/fast/dom/custom/ready-callback.html
|
| diff --git a/LayoutTests/fast/dom/custom/ready-callback.html b/LayoutTests/fast/dom/custom/ready-callback.html
|
| index 3ce7e522af09fb303ee0e5182d192dcf4ba4d31b..4cb8680ec0187288337fe589761447be610b429b 100644
|
| --- a/LayoutTests/fast/dom/custom/ready-callback.html
|
| +++ b/LayoutTests/fast/dom/custom/ready-callback.html
|
| @@ -2,33 +2,37 @@
|
| <script src="../../../resources/testharness.js"></script>
|
| <script src="../../../resources/testharnessreport.js"></script>
|
| <body>
|
| +<x-a id="a"></x-a>
|
| +<x-a id="b"></x-a>
|
| <script>
|
| -test(function () {
|
| - var readyInvocations = 0;
|
| - function ready() {
|
| - readyInvocations++;
|
| - }
|
| +t = async_test('ready callback');
|
| +t.calls = [];
|
|
|
| - var getterInvocations = 0;
|
| - function getter() {
|
| - getterInvocations++;
|
| - return ready;
|
| - }
|
| +t.step(function () {
|
| + var proto = Object.create(HTMLElement.prototype);
|
| + proto.readyCallback = function () {
|
| + t.calls.push(this.id + ' ready');
|
| + };
|
|
|
| - function failer() {
|
| - assert_unreached('the ready callback must not be retrieved after registration');
|
| - }
|
| -
|
| - var proto = Object.create(HTMLElement.prototype, {
|
| - readyCallback: {
|
| - get: getter
|
| - }
|
| - });
|
| var ctor = document.register('x-a', {prototype: proto});
|
| - assert_equals(getterInvocations, 1, 'the ready callback must have been retrieved');
|
| + var call_set = t.calls.slice();
|
| + call_set.sort();
|
| + assert_array_equals(call_set, ['a ready', 'b ready'], 'document.register must invoke the ready lifecycle callback for upgrade candidates');
|
| +
|
| + t.calls = [];
|
| + new ctor();
|
| + assert_array_equals(t.calls, [' ready'], 'invoking the generated constructor must invoke the ready lifecycle callback');
|
|
|
| - proto.readyCallback = failer;
|
| - var element = new ctor();
|
| - assert_equals(readyInvocations, 1, 'the ready callback retrieved at registration must be invoked');
|
| -}, 'transfer ready callback');
|
| + t.calls = [];
|
| + var div = document.createElement('div');
|
| + div.innerHTML = '<x-a id="c"></x-a>';
|
| + assert_array_equals(t.calls, [], 'parsing this fragment must not synchronously invoke the ready lifecycle callback');
|
| +});
|
| +</script>
|
| +<script>
|
| +t.step(function () {
|
| + assert_array_equals(t.calls, ['c ready'], 'the ready callback should have been invoked at the microtask checkpoint');
|
| + t.done();
|
| + t = null;
|
| +});
|
| </script>
|
|
|