| <sky> |
| <script> |
| import "../resources/third_party/unittest/unittest.dart"; |
| import "../resources/unit.dart"; |
| |
| import "dart:sky"; |
| |
| class FooElement extends Element { |
| final String tagName = "foo"; |
| |
| attachedCallback() { |
| ++attachedCallbackCount; |
| } |
| |
| detachedCallback() { |
| ++detachedCallbackCount; |
| } |
| |
| attributeChangedCallback(String name, String oldValue, String newValue) { |
| ++attributeChangedCallbackCount; |
| } |
| |
| int attachedCallbackCount = 0; |
| int detachedCallbackCount = 0; |
| int attributeChangedCallbackCount = 0; |
| } |
| |
| |
| void main() { |
| initUnit(); |
| |
| document.registerElement("foo", FooElement); |
| |
| test("callbacks should be called", () { |
| Element sky = document.querySelector("sky"); |
| FooElement foo = document.createElement("foo"); |
| expect(foo.attachedCallbackCount, equals(0)); |
| expect(foo.detachedCallbackCount, equals(0)); |
| expect(foo.attributeChangedCallbackCount, equals(0)); |
| sky.appendChild(foo); |
| expect(foo.attachedCallbackCount, equals(1)); |
| expect(foo.detachedCallbackCount, equals(0)); |
| expect(foo.attributeChangedCallbackCount, equals(0)); |
| foo.setAttribute("bar", "baz"); |
| expect(foo.attachedCallbackCount, equals(1)); |
| expect(foo.detachedCallbackCount, equals(0)); |
| expect(foo.attributeChangedCallbackCount, equals(1)); |
| foo.remove(); |
| expect(foo.attachedCallbackCount, equals(1)); |
| expect(foo.detachedCallbackCount, equals(1)); |
| expect(foo.attributeChangedCallbackCount, equals(1)); |
| }); |
| } |
| </script> |
| </sky> |