blob: 1f6374d80d27317317eca872cbbcd274e9c9917b [file] [log] [blame]
<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>