OLD | NEW |
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 (function () { | 7 (function () { |
8 var t = async_test('entered, left callbacks should only be invoked when ' + | 8 var t = async_test('entered, left callbacks should only be invoked when ' + |
9 'entering or leaving a document with a view'); | 9 'entering or leaving a document with a view'); |
10 withFrame(t.step_func(function (frame) { | 10 withFrame(t.step_func(function (frame) { |
11 // Set up a definition | 11 // Set up a definition |
12 | 12 |
13 var docA = frame.contentDocument; | 13 var docA = frame.contentDocument; |
14 var docB = docA.implementation.createHTMLDocument(); | 14 var docB = docA.implementation.createHTMLDocument(); |
15 | 15 |
16 var invocations = []; | 16 var invocations = []; |
17 function log(msg) { | 17 function log(msg) { |
18 return function () { invocations.push(msg); }; | 18 return function () { invocations.push(msg); }; |
19 } | 19 } |
20 | 20 |
21 var proto = Object.create(frame.contentWindow.HTMLElement.prototype); | 21 var proto = Object.create(frame.contentWindow.HTMLElement.prototype); |
22 proto.createdCallback = log('created'); | 22 proto.createdCallback = log('created'); |
23 proto.attributeChangedCallback = log('attribute changed'); | 23 proto.attributeChangedCallback = log('attribute changed'); |
24 proto.enteredViewCallback = log('entered'); | 24 proto.attachedCallback = log('entered'); |
25 proto.leftViewCallback = log('left'); | 25 proto.detachedCallback = log('left'); |
26 | 26 |
27 // Created, owned by a document without a view | 27 // Created, owned by a document without a view |
28 | 28 |
29 var A = docB.register('x-a', {prototype: proto}); | 29 var A = docB.registerElement('x-a', {prototype: proto}); |
30 var a = new A(); | 30 var a = new A(); |
31 assert_equals(a.ownerDocument, docB, | 31 assert_equals(a.ownerDocument, docB, |
32 'new instance should be owned by the document the ' + | 32 'new instance should be owned by the document the ' + |
33 'definition was registered with'); | 33 'definition was registered with'); |
34 assert_array_equals(invocations, ['created'], | 34 assert_array_equals(invocations, ['created'], |
35 'calling the constructor should invoke the created ' + | 35 'calling the constructor should invoke the created ' + |
36 'callback'); | 36 'callback'); |
37 | 37 |
38 // Entered document without a view | 38 // Entered document without a view |
39 | 39 |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 assert_array_equals(invocations, ['entered'], | 136 assert_array_equals(invocations, ['entered'], |
137 'the entered callback should be invoked when ' + | 137 'the entered callback should be invoked when ' + |
138 'inserted into a document with a view as part of ' + | 138 'inserted into a document with a view as part of ' + |
139 'a subtree'); | 139 'a subtree'); |
140 | 140 |
141 frame.remove(); | 141 frame.remove(); |
142 t.done(); | 142 t.done(); |
143 })); | 143 })); |
144 })(); | 144 })(); |
145 </script> | 145 </script> |
OLD | NEW |