mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
88 lines
3.1 KiB
Dart
88 lines
3.1 KiB
Dart
import 'dart:sky';
|
|
|
|
import 'package:test/test.dart';
|
|
|
|
import 'dom_utils.dart';
|
|
|
|
void main() {
|
|
var doc;
|
|
|
|
setUp(() {
|
|
doc = new Document();
|
|
});
|
|
|
|
test("should allow replacing the document element", () {
|
|
var oldChild = doc.appendChild(doc.createElement("div"));
|
|
expect(childElementCount(doc), equals(1));
|
|
var newChild = doc.createElement("div");
|
|
oldChild.replaceWith([newChild]);
|
|
expect(childElementCount(doc), equals(1));
|
|
expect(newChild.parentNode, equals(doc));
|
|
expect(oldChild.parentNode, isNull);
|
|
});
|
|
|
|
test("should allow replacing a text child with an element", () {
|
|
var oldChild = doc.appendChild(doc.createText("text here"));
|
|
expect(childElementCount(doc), equals(0));
|
|
expect(childNodeCount(doc), equals(1));
|
|
var newChild = doc.createElement("div");
|
|
oldChild.replaceWith([newChild]);
|
|
expect(childElementCount(doc), equals(1));
|
|
expect(childNodeCount(doc), equals(1));
|
|
expect(newChild.parentNode, equals(doc));
|
|
expect(oldChild.parentNode, isNull);
|
|
});
|
|
|
|
test("should allow replacing the document element with text", () {
|
|
var oldChild = doc.appendChild(doc.createElement("div"));
|
|
expect(childElementCount(doc), equals(1));
|
|
var newChild = doc.createText(" text ");
|
|
oldChild.replaceWith([newChild]);
|
|
expect(childElementCount(doc), equals(0));
|
|
expect(childNodeCount(doc), equals(1));
|
|
expect(newChild.parentNode, equals(doc));
|
|
expect(oldChild.parentNode, isNull);
|
|
});
|
|
|
|
test("should allow inserting text with a fragment", () {
|
|
var fragment = doc.createDocumentFragment();
|
|
fragment.appendChild(doc.createText(" text "));
|
|
fragment.appendChild(doc.createText(" text "));
|
|
expect(childNodeCount(doc), equals(0));
|
|
doc.appendChild(fragment);
|
|
expect(childElementCount(doc), equals(0));
|
|
expect(childNodeCount(doc), equals(2));
|
|
});
|
|
|
|
test("should allow replacing the document element with a fragment", () {
|
|
var oldChild = doc.appendChild(doc.createElement("div"));
|
|
expect(childElementCount(doc), equals(1));
|
|
var fragment = doc.createDocumentFragment();
|
|
fragment.appendChild(doc.createText(" text "));
|
|
var newChild = fragment.appendChild(doc.createElement("div"));
|
|
fragment.appendChild(doc.createText(" "));
|
|
oldChild.replaceWith([fragment]);
|
|
expect(childElementCount(doc), equals(1));
|
|
expect(childNodeCount(doc), equals(3));
|
|
expect(newChild.parentNode, equals(doc));
|
|
expect(oldChild.parentNode, isNull);
|
|
});
|
|
|
|
test("should throw when inserting multiple elements", () {
|
|
doc.appendChild(doc.createElement("div"));
|
|
doc.appendChild(doc.createText(" text "));
|
|
expect(childElementCount(doc), equals(1));
|
|
doc.createElement("div");
|
|
});
|
|
|
|
test("should throw when inserting multiple elements with a fragment", () {
|
|
doc.appendChild(doc.createElement("div"));
|
|
expect(childElementCount(doc), equals(1));
|
|
var fragment = doc.createDocumentFragment();
|
|
fragment.appendChild(doc.createText(" text "));
|
|
fragment.appendChild(doc.createElement("div"));
|
|
fragment.appendChild(doc.createElement("div"));
|
|
fragment.appendChild(doc.createText(" "));
|
|
});
|
|
}
|