Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Side by Side Diff: LayoutTests/fast/dom/custom/ready-callback.html

Issue 17707002: Implement Custom Elements inserted and removed callbacks. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../../../resources/testharness.js"></script> 2 <script src="../../../resources/testharness.js"></script>
3 <script src="../../../resources/testharnessreport.js"></script> 3 <script src="../../../resources/testharnessreport.js"></script>
4 <body> 4 <body>
5 <x-a id="a"></x-a>
6 <x-a id="b"></x-a>
5 <script> 7 <script>
6 test(function () { 8 t = async_test('ready callback');
7 var readyInvocations = 0; 9 t.calls = [];
8 function ready() {
9 readyInvocations++;
10 }
11 10
12 var getterInvocations = 0; 11 t.step(function () {
13 function getter() { 12 var proto = Object.create(HTMLElement.prototype);
14 getterInvocations++; 13 proto.readyCallback = function () {
15 return ready; 14 t.calls.push(this.id + ' ready');
16 } 15 };
17 16
18 function failer() { 17 var ctor = document.register('x-a', {prototype: proto});
19 assert_unreached('the ready callback must not be retrieved after registr ation'); 18 var call_set = t.calls.slice();
20 } 19 call_set.sort();
20 assert_array_equals(call_set, ['a ready', 'b ready'], 'document.register mus t invoke the ready lifecycle callback for upgrade candidates');
21 21
22 var proto = Object.create(HTMLElement.prototype, { 22 t.calls = [];
23 readyCallback: { 23 new ctor();
24 get: getter 24 assert_array_equals(t.calls, [' ready'], 'invoking the generated constructor must invoke the ready lifecycle callback');
25 }
26 });
27 var ctor = document.register('x-a', {prototype: proto});
28 assert_equals(getterInvocations, 1, 'the ready callback must have been retri eved');
29 25
30 proto.readyCallback = failer; 26 t.calls = [];
31 var element = new ctor(); 27 var div = document.createElement('div');
32 assert_equals(readyInvocations, 1, 'the ready callback retrieved at registra tion must be invoked'); 28 div.innerHTML = '<x-a id="c"></x-a>';
33 }, 'transfer ready callback'); 29 assert_array_equals(t.calls, [], 'parsing this fragment must not synchronous ly invoke the ready lifecycle callback');
30 });
34 </script> 31 </script>
32 <script>
33 t.step(function () {
34 assert_array_equals(t.calls, ['c ready'], 'the ready callback should have be en invoked at the microtask checkpoint');
35 t.done();
36 t = null;
37 });
38 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698