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

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

Issue 117313008: Update Custom Elements API to new names. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update for forgotten tests. Created 7 years 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 <script src="test-harness-utils.js"></script> 4 <script src="test-harness-utils.js"></script>
5 <body> 5 <body>
6 <script> 6 <script>
7 test(function() { 7 test(function() {
8 var createdInvocations = 0; 8 var createdInvocations = 0;
9 function created() { 9 function created() {
10 createdInvocations++; 10 createdInvocations++;
11 } 11 }
12 12
13 var getterInvocations = 0; 13 var getterInvocations = 0;
14 function getter() { 14 function getter() {
15 getterInvocations++; 15 getterInvocations++;
16 return created; 16 return created;
17 } 17 }
18 18
19 function failer() { 19 function failer() {
20 assert_unreached('the created callback must not be retrieved after regis tration'); 20 assert_unreached('the created callback must not be retrieved after regis tration');
21 } 21 }
22 22
23 var proto = Object.create(HTMLElement.prototype, { 23 var proto = Object.create(HTMLElement.prototype, {
24 createdCallback: { 24 createdCallback: {
25 get: getter 25 get: getter
26 } 26 }
27 }); 27 });
28 var ctor = document.register('x-a', {prototype: proto}); 28 var ctor = document.registerElement('x-a', {prototype: proto});
29 assert_equals(getterInvocations, 1, 'the created callback must have been ret rieved'); 29 assert_equals(getterInvocations, 1, 'the created callback must have been ret rieved');
30 30
31 proto.createdCallback = failer; 31 proto.createdCallback = failer;
32 var element = new ctor(); 32 var element = new ctor();
33 assert_equals(createdInvocations, 1, 'the created callback retrieved at regi stration must be invoked'); 33 assert_equals(createdInvocations, 1, 'the created callback retrieved at regi stration must be invoked');
34 }, 'transfer created callback'); 34 }, 'transfer created callback');
35 35
36 (function() { 36 (function() {
37 37
38 t = async_test('__proto__, :unresolved and created callback timing'); 38 t = async_test('__proto__, :unresolved and created callback timing');
(...skipping 12 matching lines...) Expand all
51 51
52 assert_equals(div.querySelector('x-b:not(:unresolved)'), this, 'the :unresolved pseudoclass should cease to apply when the created callback is invok ed'); 52 assert_equals(div.querySelector('x-b:not(:unresolved)'), this, 'the :unresolved pseudoclass should cease to apply when the created callback is invok ed');
53 assert_array_equals(div.querySelectorAll(':unresolved'), [v, w], 'th e :unresolved pseudoclass should be processed in order'); 53 assert_array_equals(div.querySelectorAll(':unresolved'), [v, w], 'th e :unresolved pseudoclass should be processed in order');
54 54
55 assert_true(t instanceof C, 'prototype upgrade should happen in orde r (#t)'); 55 assert_true(t instanceof C, 'prototype upgrade should happen in orde r (#t)');
56 assert_false(v instanceof C, 'prototype upgrade should happen in ord er (#v)'); 56 assert_false(v instanceof C, 'prototype upgrade should happen in ord er (#v)');
57 }, this); 57 }, this);
58 } 58 }
59 59
60 var protoB = Object.create(HTMLElement.prototype); 60 var protoB = Object.create(HTMLElement.prototype);
61 var B = document.register('x-b', {prototype: protoB}); 61 var B = document.registerElement('x-b', {prototype: protoB});
62 62
63 var protoC = Object.create(HTMLElement.prototype); 63 var protoC = Object.create(HTMLElement.prototype);
64 protoC.createdCallback = created; 64 protoC.createdCallback = created;
65 var C = document.register('x-c', {prototype: protoC}); 65 var C = document.registerElement('x-c', {prototype: protoC});
66 66
67 var div = document.createElement('div'); 67 var div = document.createElement('div');
68 div.innerHTML = '<x-c id="t"></x-c>' + 68 div.innerHTML = '<x-c id="t"></x-c>' +
69 '<x-b id="u"></x-b>' + 69 '<x-b id="u"></x-b>' +
70 '<x-c id="v"></x-c>' + 70 '<x-c id="v"></x-c>' +
71 '<x-b id="w"></x-b>'; 71 '<x-b id="w"></x-b>';
72 assert_equals(createdInvocations, 2, 'the created callback should have been invoked once for each x-c element'); 72 assert_equals(createdInvocations, 2, 'the created callback should have been invoked once for each x-c element');
73 assert_true(div.querySelector('#w') instanceof B, '#w\'s prototype should ha ve ultimately been upgraded'); 73 assert_true(div.querySelector('#w') instanceof B, '#w\'s prototype should ha ve ultimately been upgraded');
74 t.done(); 74 t.done();
75 }); 75 });
(...skipping 11 matching lines...) Expand all
87 messages.push(msg); 87 messages.push(msg);
88 } 88 }
89 89
90 var proto = Object.create(frame.contentWindow.HTMLElement.prototype); 90 var proto = Object.create(frame.contentWindow.HTMLElement.prototype);
91 proto.createdCallback = function() { 91 proto.createdCallback = function() {
92 log('created started'); 92 log('created started');
93 this.remove(); 93 this.remove();
94 this.setAttribute('prey', 'gargoyles'); 94 this.setAttribute('prey', 'gargoyles');
95 log('created finished'); 95 log('created finished');
96 }; 96 };
97 proto.enteredViewCallback = function() { log('entered'); }; 97 proto.attachedCallback = function() { log('entered'); };
98 proto.leftViewCallback = function() { log('left'); }; 98 proto.detachedCallback = function() { log('left'); };
99 proto.attributeChangedCallback = function() { log('attribute changed'); }; 99 proto.attributeChangedCallback = function() { log('attribute changed'); };
100 var D = frame.contentDocument.register('x-d', {prototype: proto}); 100 var D = frame.contentDocument.registerElement('x-d', {prototype: proto});
101 101
102 frame.contentDocument.body.innerHTML = '<x-d></x-d>'; 102 frame.contentDocument.body.innerHTML = '<x-d></x-d>';
103 log('done'); 103 log('done');
104 104
105 assert_array_equals( 105 assert_array_equals(
106 messages, 106 messages,
107 ['created started', 'created finished', 'entered', 'left', 107 ['created started', 'created finished', 'entered', 'left',
108 'attribute changed', 'done'], 108 'attribute changed', 'done'],
109 'callbacks should not be dispatched until the created callback has ' + 109 'callbacks should not be dispatched until the created callback has ' +
110 'finished'); 110 'finished');
111 t.done(); 111 t.done();
112 })); 112 }));
113 113
114 })(); 114 })();
115 </script> 115 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698