| Index: client/tests/client/html/ListsTests.dart
|
| diff --git a/client/tests/client/html/ListsTests.dart b/client/tests/client/html/ListsTests.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..711753061097be12f9e3b0d75a021a93030794f3
|
| --- /dev/null
|
| +++ b/client/tests/client/html/ListsTests.dart
|
| @@ -0,0 +1,159 @@
|
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +
|
| +void testLists() {
|
| + group('setRange', () {
|
| + test('one element', () {
|
| + var list = ["A", "B", "C"];
|
| + Lists.setRange(list, 1, 1, ["D"], 0);
|
| + Expect.listEquals(["A", "D", "C"], list);
|
| + });
|
| +
|
| + test('several elements', () {
|
| + var list = ["A", "B", "C"];
|
| + Lists.setRange(list, 1, 2, ["D", "E"], 0);
|
| + Expect.listEquals(["A", "D", "E"], list);
|
| + });
|
| +
|
| + test('fewer than all source elements', () {
|
| + var list = ["A", "B", "C"];
|
| + Lists.setRange(list, 1, 1, ["D", "E"], 0);
|
| + Expect.listEquals(["A", "D", "C"], list);
|
| + });
|
| +
|
| + test('startFrom', () {
|
| + var list = ["A", "B", "C"];
|
| + Lists.setRange(list, 1, 1, ["D", "E"], 1);
|
| + Expect.listEquals(["A", "E", "C"], list);
|
| + });
|
| +
|
| + test('negative length', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => Lists.setRange(list, 1, -1, ["D"], 0),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end of dest', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(() {
|
| + Lists.setRange(list, 2, 2, ["D", "E"], 0);
|
| + }, (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning of dest', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => Lists.setRange(list, -1, 1, ["D"], 0),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the end of source', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => Lists.setRange(list, 1, 2, ["D"], 0),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning of source', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => Lists.setRange(list, 1, 1, ["D"], -1),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + group('removeRange', () {
|
| + void removeRange(list, start, length) =>
|
| + Lists.removeRange(list, start, length, (i) => list.removeRange(i, 1));
|
| +
|
| + test('one element', () {
|
| + var list = ["A", "B", "C"];
|
| + removeRange(list, 1, 1);
|
| + Expect.listEquals(["A", "C"], list);
|
| + });
|
| +
|
| + test('two elements', () {
|
| + var list = ["A", "B", "C"];
|
| + removeRange(list, 1, 2);
|
| + Expect.listEquals(["A"], list);
|
| + });
|
| +
|
| + test('all elements', () {
|
| + var list = ["A", "B", "C"];
|
| + removeRange(list, 0, 3);
|
| + Expect.isTrue(list.isEmpty());
|
| + });
|
| +
|
| + test('negative length', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => removeRange(list, 2, -1),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => removeRange(list, 2, 3),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.throws(
|
| + () => removeRange(list, -1, 1),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + group('getRange', () {
|
| + test('one element', () {
|
| + Expect.listEquals(["C"], Lists.getRange(["A", "B", "C"], 2, 1));
|
| + });
|
| +
|
| + test('two elements', () {
|
| + Expect.listEquals(["B", "C"], Lists.getRange(["A", "B", "C"], 1, 2));
|
| + });
|
| +
|
| + test('negative length', () {
|
| + Expect.throws(
|
| + () => Lists.getRange(["A", "B", "C"], 2, -1),
|
| + (e) => e is IllegalArgumentException);
|
| + });
|
| +
|
| + test('off the end', () {
|
| + Expect.throws(
|
| + () => Lists.getRange(["A", "B", "C"], 2, 2),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| +
|
| + test('off the beginning', () {
|
| + Expect.throws(
|
| + () => Lists.getRange(["A", "B", "C"], -1, 2),
|
| + (e) => e is IndexOutOfRangeException);
|
| + });
|
| + });
|
| +
|
| + test('indexOf', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.equals(0, Lists.indexOf(list, "A", 0, list.length));
|
| + Expect.equals(1, Lists.indexOf(list, "B", 0, list.length));
|
| + Expect.equals(2, Lists.indexOf(list, "C", 0, list.length));
|
| + Expect.equals(-1, Lists.indexOf(list, "D", 0, list.length));
|
| + Expect.equals(1, Lists.indexOf(list, "B", 1, list.length));
|
| + Expect.equals(-1, Lists.indexOf(list, "B", 2, list.length));
|
| + });
|
| +
|
| + test('lastIndexOf', () {
|
| + var list = ["A", "B", "C"];
|
| + Expect.equals(0, Lists.lastIndexOf(list, "A", list.length - 1));
|
| + Expect.equals(1, Lists.lastIndexOf(list, "B", list.length - 1));
|
| + Expect.equals(2, Lists.lastIndexOf(list, "C", list.length - 1));
|
| + Expect.equals(-1, Lists.lastIndexOf(list, "D", list.length - 1));
|
| + Expect.equals(1, Lists.lastIndexOf(list, "B", 1));
|
| + Expect.equals(-1, Lists.lastIndexOf(list, "E", 0));
|
| + });
|
| +}
|
|
|