| Index: client/tests/client/html/NodeTests.dart
|
| diff --git a/client/tests/client/html/NodeTests.dart b/client/tests/client/html/NodeTests.dart
|
| index ced2616c82961392eb992c7e34d1d206ea14480f..0389d83e2c4bc51953daa46f31f3e811a8c1563d 100644
|
| --- a/client/tests/client/html/NodeTests.dart
|
| +++ b/client/tests/client/html/NodeTests.dart
|
| @@ -109,6 +109,176 @@ void testNode() {
|
| Expect.isTrue(node.nodes[5] is InputElement);
|
| });
|
|
|
| + group('setRange', () {
|
| + test('one node', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.setRange(1, 1, [new Element.tag('hr')]);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + Expect.isTrue(node.nodes[1] is HRElement);
|
| + Expect.isTrue(node.nodes[2] is Comment);
|
| + });
|
| +
|
| + test('several nodes', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.setRange(1, 2, [
|
| + new Element.tag('hr'), new Element.tag('img')]);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + Expect.isTrue(node.nodes[1] is HRElement);
|
| + Expect.isTrue(node.nodes[2] is ImageElement);
|
| + });
|
| +
|
| + test('fewer than all source nodes', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.setRange(1, 1, [
|
| + new Element.tag('hr'), new Element.tag('img')]);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + Expect.isTrue(node.nodes[1] is HRElement);
|
| + Expect.isTrue(node.nodes[2] is Comment);
|
| + });
|
| +
|
| + test('startFrom', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.setRange(1, 1, [
|
| + new Element.tag('hr'), new Element.tag('img')], 1);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + Expect.isTrue(node.nodes[1] is ImageElement);
|
| + Expect.isTrue(node.nodes[2] is Comment);
|
| + });
|
| +
|
| + test('negative length', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.setRange(1, -1, [new Element.tag('hr')]),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end of dest', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(() {
|
| + node.nodes.setRange(2, 2, [
|
| + new Element.tag('hr'), new Element.tag('img')]);
|
| + }, (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning of dest', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.setRange(-1, 1, [new Element.tag('hr')]),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the end of source', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.setRange(1, 2, [new Element.tag('hr')]),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning of source', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.setRange(1, 1, [new Element.tag('hr')], -1),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + group('removeRange', () {
|
| + test('one node', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.removeRange(1, 1);
|
| + Expect.equals(2, node.nodes.length);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + Expect.isTrue(node.nodes[1] is Comment);
|
| + });
|
| +
|
| + test('two nodes', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.removeRange(1, 2);
|
| + Expect.equals(1, node.nodes.length);
|
| + Expect.isTrue(node.nodes[0] is Text);
|
| + });
|
| +
|
| + test('all nodes', () {
|
| + var node = makeNodeWithChildren();
|
| + node.nodes.removeRange(0, 3);
|
| + Expect.isTrue(node.nodes.isEmpty());
|
| + });
|
| +
|
| + test('negative length', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.removeRange(2, -1),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.removeRange(2, 3),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.throws(
|
| + () => node.nodes.removeRange(-1, 1),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + group('getRange', () {
|
| + test('one node', () {
|
| + var range = makeNodeWithChildren().nodes.getRange(2, 1);
|
| + Expect.equals(1, range.length);
|
| + Expect.isTrue(range[0] is Comment);
|
| + });
|
| +
|
| + test('two nodes', () {
|
| + var range = makeNodeWithChildren().nodes.getRange(1, 2);
|
| + Expect.equals(2, range.length);
|
| + Expect.isTrue(range[0] is BRElement);
|
| + Expect.isTrue(range[1] is Comment);
|
| + });
|
| +
|
| + test('negative length', () {
|
| + Expect.throws(
|
| + () => makeNodeWithChildren().nodes.getRange(2, -1),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end', () {
|
| + Expect.throws(
|
| + () => makeNodeWithChildren().nodes.getRange(2, 2),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning', () {
|
| + Expect.throws(
|
| + () => makeNodeWithChildren().nodes.getRange(-1, 2),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + test('indexOf', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.equals(0, node.nodes.indexOf(node.nodes[0]));
|
| + Expect.equals(1, node.nodes.indexOf(node.nodes[1]));
|
| + Expect.equals(2, node.nodes.indexOf(node.nodes[2]));
|
| + Expect.equals(-1, node.nodes.indexOf(new Element.tag('br')));
|
| + Expect.equals(1, node.nodes.indexOf(node.nodes[1], 1));
|
| + Expect.equals(-1, node.nodes.indexOf(node.nodes[1], 2));
|
| + });
|
| +
|
| + test('lastIndexOf', () {
|
| + var node = makeNodeWithChildren();
|
| + Expect.equals(0, node.nodes.lastIndexOf(node.nodes[0]));
|
| + Expect.equals(1, node.nodes.lastIndexOf(node.nodes[1]));
|
| + Expect.equals(2, node.nodes.lastIndexOf(node.nodes[2]));
|
| + Expect.equals(-1, node.nodes.lastIndexOf(new Element.tag('br')));
|
| + Expect.equals(1, node.nodes.lastIndexOf(node.nodes[1], 1));
|
| + Expect.equals(-1, node.nodes.lastIndexOf(node.nodes[1], 0));
|
| + });
|
| +
|
| test('clear', () {
|
| var node = makeNodeWithChildren();
|
| node.nodes.clear();
|
|
|