| Index: test/codegen/lib/html/filteredelementlist_test.dart
|
| diff --git a/test/codegen/lib/html/filteredelementlist_test.dart b/test/codegen/lib/html/filteredelementlist_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b4110f74a5ca5e590e109cd4452922d33a25a6eb
|
| --- /dev/null
|
| +++ b/test/codegen/lib/html/filteredelementlist_test.dart
|
| @@ -0,0 +1,111 @@
|
| +library filteredelementlist_test;
|
| +
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +import 'dart:html';
|
| +import 'dart:html_common';
|
| +
|
| +main() {
|
| + var t1 = new Text('T1'),
|
| + t2 = new Text('T2'),
|
| + t3 = new Text('T3'),
|
| + t4 = new Text('T4');
|
| +
|
| + var d1 = new DivElement(),
|
| + d2 = new DivElement(),
|
| + d3 = new DivElement();
|
| +
|
| + createTestDiv() {
|
| + var testDiv = new DivElement();
|
| + testDiv
|
| + ..append(t1)
|
| + ..append(d1)
|
| + ..append(t2)
|
| + ..append(d2)
|
| + ..append(t3)
|
| + ..append(d3)
|
| + ..append(t4);
|
| + return testDiv;
|
| + }
|
| +
|
| + useHtmlConfiguration();
|
| +
|
| + test('FilteredElementList.insert test', () {
|
| + var i = new DivElement();
|
| +
|
| + // Insert before first element
|
| + var nodeList = createTestDiv();
|
| + var elementList = new FilteredElementList(nodeList);
|
| + elementList.insert(0, i);
|
| + expect(nodeList.childNodes[0], t1);
|
| + expect(nodeList.childNodes[1], i);
|
| + expect(nodeList.childNodes[2], d1);
|
| +
|
| + // Insert in middle
|
| + nodeList = createTestDiv();
|
| + elementList = new FilteredElementList(nodeList);
|
| + elementList.insert(1, i);
|
| + expect(nodeList.childNodes[2], t2);
|
| + expect(nodeList.childNodes[3], i);
|
| + expect(nodeList.childNodes[4], d2);
|
| +
|
| + // Insert before last element
|
| + nodeList = createTestDiv();
|
| + elementList = new FilteredElementList(nodeList);
|
| + elementList.insert(2, i);
|
| + expect(nodeList.childNodes[4], t3);
|
| + expect(nodeList.childNodes[5], i);
|
| + expect(nodeList.childNodes[6], d3);
|
| + });
|
| +
|
| + test('FilteredElementList.insertAll test', () {
|
| + var i1 = new DivElement(),
|
| + i2 = new DivElement();
|
| +
|
| + var it = [i1, i2];
|
| +
|
| + // Insert before first element
|
| + var nodeList = createTestDiv();
|
| + var elementList = new FilteredElementList(nodeList);
|
| + elementList.insertAll(0, it);
|
| + expect(nodeList.childNodes[0], t1);
|
| + expect(nodeList.childNodes[1], i1);
|
| + expect(nodeList.childNodes[2], i2);
|
| + expect(nodeList.childNodes[3], d1);
|
| +
|
| + // Insert in middle
|
| + nodeList = createTestDiv();
|
| + elementList = new FilteredElementList(nodeList);
|
| + elementList.insertAll(1, it);
|
| + expect(nodeList.childNodes[2], t2);
|
| + expect(nodeList.childNodes[3], i1);
|
| + expect(nodeList.childNodes[4], i2);
|
| + expect(nodeList.childNodes[5], d2);
|
| +
|
| + // Insert before last element
|
| + nodeList = createTestDiv();
|
| + elementList = new FilteredElementList(nodeList);
|
| + elementList.insertAll(2, it);
|
| + expect(nodeList.childNodes[4], t3);
|
| + expect(nodeList.childNodes[5], i1);
|
| + expect(nodeList.childNodes[6], i2);
|
| + expect(nodeList.childNodes[7], d3);
|
| + });
|
| +
|
| + test('FilteredElementList.insertAndRemove', () {
|
| + var emptyDiv = new DivElement();
|
| + var elementList = new FilteredElementList(emptyDiv);
|
| + expect(() => elementList[0], throwsA(isRangeError));
|
| + expect(() => elementList.insert(2, new BRElement()), throwsA(isRangeError));
|
| + var br = new BRElement();
|
| + elementList.insert(0, br);
|
| + expect(elementList.removeLast(), br);
|
| + elementList.add(br);
|
| + expect(elementList.remove(br), isTrue);
|
| + var br2 = new BRElement();
|
| + elementList.add(br);
|
| + expect(elementList.remove(br2), isFalse);
|
| + expect(elementList[0], br);
|
| + expect(() => elementList[1], throwsA(isRangeError));
|
| + });
|
| +}
|
|
|