import 'dart:sky'; import 'package:test/test.dart'; import 'dom_utils.dart'; void main() { var document = new Document(); test("should replace elements", () { var parent = document.createElement("div"); var oldChild = parent.appendChild(document.createElement("div")); var newChild = document.createElement("div"); oldChild.replaceWith([newChild]); expect(oldChild.parentNode, isNull); expect(newChild.parentNode, equals(parent)); }); test("should replace text", () { var parent = document.createElement("div"); var oldChild = parent.appendChild(document.createText(" it's a text ")); var newChild = document.createElement("div"); oldChild.replaceWith([newChild]); expect(oldChild.parentNode, isNull); expect(newChild.parentNode, equals(parent)); }); test("should replace 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"); var oldChild = parent.appendChild(document.createElement("div")); var lastChild = parent.appendChild(document.createElement("div")); oldChild.replaceWith([fragment]); expect(child1.parentNode, equals(parent)); expect(child2.parentNode, equals(parent)); expect(child3.parentNode, equals(parent)); expect(child4.parentNode, equals(parent)); expect(oldChild.parentNode, isNull); expect(childNodeCount(parent), equals(5)); expect(childElementCount(parent), equals(3)); expect(parent.lastChild, equals(lastChild)); }); // test("should throw when appending to a text", () { // var parent = new Text(); // expect(() { // parent.replaceChild(document.createElement("div"), null); // }, throws); // }); }