import 'dart:ui'; import 'package:test/test.dart'; import 'dom_utils.dart'; void main() { Document document = new Document(); test("should throw with invalid arguments", () { var parent = document.createElement("div"); expect(() { Function.apply(parent.appendChild, []); }, throws); expect(() { parent.appendChild(null); }, throws); expect(() { Function.apply(parent.appendChild, [{"tagName": "div"}]); }, throws); }); test("should insert children", () { var parent = document.createElement("div"); var child1 = parent.appendChild(document.createElement("div")); var child2 = parent.appendChild(document.createText(" text ")); var child3 = parent.appendChild(document.createText(" ")); var child4 = parent.appendChild(document.createElement("div")); expect(child1.parentNode, equals(parent)); expect(child2.parentNode, equals(parent)); expect(child3.parentNode, equals(parent)); expect(child4.parentNode, equals(parent)); expect(childNodeCount(parent), equals(4)); expect(childElementCount(parent), equals(2)); }); test("should insert children with a fragment", () { var fragment = document.createDocumentFragment(); var child1 = fragment.appendChild(document.createElement("div")); var child2 = fragment.appendChild(document.createText(" text ")); var child3 = fragment.appendChild(document.createText(" ")); var child4 = fragment.appendChild(document.createElement("div")); var parent = document.createElement("div"); parent.appendChild(fragment); expect(child1.parentNode, equals(parent)); expect(child2.parentNode, equals(parent)); expect(child3.parentNode, equals(parent)); expect(child4.parentNode, equals(parent)); expect(childNodeCount(parent), equals(4)); expect(childElementCount(parent), equals(2)); }); // TODO(dart): These might be real bugs too. // test("should throw when appending to a text", () { // var parent = new Text(); // expect(() { // parent.appendChild(document.createElement("div")); // }, throws); // }); }