OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library js_custom_test; | 5 library js_custom_test; |
6 | 6 |
7 import 'package:unittest/unittest.dart'; | 7 import 'package:unittest/unittest.dart'; |
8 import 'package:unittest/html_config.dart'; | 8 import 'package:unittest/html_config.dart'; |
9 import 'dart:html'; | 9 import 'dart:html'; |
10 import '../utils.dart'; | 10 import '../utils.dart'; |
(...skipping 13 matching lines...) Expand all Loading... |
24 useHtmlConfiguration(); | 24 useHtmlConfiguration(); |
25 | 25 |
26 // Adapted from Blink's | 26 // Adapted from Blink's |
27 // fast/dom/custom/constructor-calls-created-synchronously test. | 27 // fast/dom/custom/constructor-calls-created-synchronously test. |
28 | 28 |
29 var registered = false; | 29 var registered = false; |
30 setUp(() { | 30 setUp(() { |
31 return customElementsReady.then((_) { | 31 return customElementsReady.then((_) { |
32 if (!registered) { | 32 if (!registered) { |
33 registered = true; | 33 registered = true; |
34 document.register(A.tag, A); | 34 document.registerElement(A.tag, A); |
35 } | 35 } |
36 }); | 36 }); |
37 }); | 37 }); |
38 | 38 |
39 test('accessing custom Dart element from JS', () { | 39 test('accessing custom Dart element from JS', () { |
40 var a = new A(); | 40 var a = new A(); |
41 a.id = 'a'; | 41 a.id = 'a'; |
42 document.body.append(a); | 42 document.body.append(a); |
43 | 43 |
44 var script = ''' | 44 var script = ''' |
45 document.querySelector('#a').setAttribute('fromJS', 'true'); | 45 document.querySelector('#a').setAttribute('fromJS', 'true'); |
46 '''; | 46 '''; |
47 document.body.append(new ScriptElement()..text = script); | 47 document.body.append(new ScriptElement()..text = script); |
48 | 48 |
49 expect(a.attributes['fromJS'], 'true'); | 49 expect(a.attributes['fromJS'], 'true'); |
50 }); | 50 }); |
51 | 51 |
52 test('accessing custom JS element from Dart', () { | 52 test('accessing custom JS element from Dart', () { |
53 var script = ''' | 53 var script = ''' |
54 var Foo = document.register('x-foo', { | 54 var Foo = document.registerElement('x-foo', { |
55 prototype: Object.create(HTMLElement.prototype, { | 55 prototype: Object.create(HTMLElement.prototype, { |
56 createdCallback: { | 56 createdCallback: { |
57 value: function() { | 57 value: function() { |
58 this.setAttribute('fromJS', 'true'); | 58 this.setAttribute('fromJS', 'true'); |
59 } | 59 } |
60 } | 60 } |
61 })}); | 61 })}); |
62 var foo = new Foo(); | 62 var foo = new Foo(); |
63 foo.id = 'b'; | 63 foo.id = 'b'; |
64 document.body.appendChild(foo); | 64 document.body.appendChild(foo); |
65 '''; | 65 '''; |
66 | 66 |
67 document.body.append(new ScriptElement()..text = script); | 67 document.body.append(new ScriptElement()..text = script); |
68 var custom = document.querySelector('#b'); | 68 var custom = document.querySelector('#b'); |
69 expect(custom is HtmlElement, isTrue); | 69 expect(custom is HtmlElement, isTrue); |
70 expect(custom.attributes['fromJS'], 'true'); | 70 expect(custom.attributes['fromJS'], 'true'); |
71 }); | 71 }); |
72 } | 72 } |
OLD | NEW |