| Index: tests/html/js_test.dart
|
| diff --git a/tests/html/js_test.dart b/tests/html/js_test.dart
|
| index ff6753d3690d04720c6db871d34689f8e88bcde0..fc057bc167ad21269ab55a363bfa475a33baf218 100644
|
| --- a/tests/html/js_test.dart
|
| +++ b/tests/html/js_test.dart
|
| @@ -4,7 +4,6 @@
|
|
|
| library jsTest;
|
|
|
| -import 'dart:async';
|
| import 'dart:html';
|
| import 'dart:js';
|
|
|
| @@ -66,6 +65,10 @@ function isArray(a) {
|
| return a instanceof Array;
|
| }
|
|
|
| +function checkArray(a, index, value) {
|
| + return a[index] == value;
|
| +}
|
| +
|
| function checkMap(m, key, value) {
|
| if (m.hasOwnProperty(key))
|
| return m[key] == value;
|
| @@ -313,6 +316,22 @@ main() {
|
| expect(container.toString(), equals("[object Object]"));
|
| });
|
|
|
| + test('use Iterable as parameters', () {
|
| + final set = new Set.from([1, 2, 3, 4, 5, 6, 7, 8]);
|
| + expect(context.callMethod('isArray', [set]), isTrue);
|
| + for (var i = 0; i < set.length ; i++) {
|
| + expect(context.callMethod('checkArray', [set, i, set.elementAt(i)]), isTrue);
|
| + }
|
| + });
|
| +
|
| + test('use Map as parameters', () {
|
| + var map = {'a': 1, 'b': 2, 'c': 3};
|
| + expect(!context.callMethod('isArray', [map]), isTrue);
|
| + for (final key in map.keys) {
|
| + expect(context.callMethod('checkMap', [map, key, map[key]]), isTrue);
|
| + }
|
| + });
|
| +
|
| test('allocate simple JS array', () {
|
| final list = [1, 2, 3, 4, 5, 6, 7, 8];
|
| var array = jsify(list);
|
| @@ -466,4 +485,206 @@ main() {
|
| context['color'] = red;
|
| expect(context['color'], equals(red._value));
|
| });
|
| +
|
| + group('JsArrayToListAdapter', () {
|
| + test('iterator', () {
|
| + final JsArray m = jsify(["e0", "e1", "e2"]);
|
| + final iterator = m.iterator;
|
| + iterator.moveNext();
|
| + expect(iterator.current, equals("e0"));
|
| + iterator.moveNext();
|
| + expect(iterator.current, equals("e1"));
|
| + iterator.moveNext();
|
| + expect(iterator.current, equals("e2"));
|
| + });
|
| + test('get length', () {
|
| + final JsArray m1 = jsify([]);
|
| + expect(m1.length, equals(0));
|
| + final JsArray m2 = jsify(["a", "b"]);
|
| + expect(m2.length, equals(2));
|
| + });
|
| + test('add', () {
|
| + final JsArray m = jsify([]);
|
| + expect(m.length, equals(0));
|
| + m.add("a");
|
| + expect(m.length, equals(1));
|
| + expect(m[0], equals("a"));
|
| + m.add("b");
|
| + expect(m.length, equals(2));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("b"));
|
| + });
|
| + test('addAll', () {
|
| + final JsArray m = jsify([]);
|
| + expect(m.length, equals(0));
|
| + m.addAll(["a", 'b']);
|
| + expect(m.length, equals(2));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("b"));
|
| + });
|
| + test('clear', () {
|
| + final JsArray m = jsify(["a", "b"]);
|
| + expect(m.length, equals(2));
|
| + m.clear();
|
| + expect(m.length, equals(0));
|
| + });
|
| + test('remove', () {
|
| + final JsArray m = jsify(["a", "b"]);
|
| + expect(m.length, equals(2));
|
| + m.remove("a");
|
| + expect(m.length, equals(1));
|
| + expect(m[0], equals("b"));
|
| + });
|
| + test('operator []', () {
|
| + final JsArray m = jsify(["a", "b"]);
|
| + expect(() => m[-1], throwsA(isRangeError));
|
| + expect(() => m[2], throwsA(isRangeError));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("b"));
|
| + });
|
| + test('operator []=', () {
|
| + final JsArray m = jsify(["a", "b"]);
|
| + expect(() => m[-1] = "c", throwsA(isRangeError));
|
| + expect(() => m[2] = "c", throwsA(isRangeError));
|
| + m[0] = "d";
|
| + m[1] = "e";
|
| + expect(m[0], equals("d"));
|
| + expect(m[1], equals("e"));
|
| + });
|
| + test('set length', () {
|
| + final JsArray m = jsify(["a", "b"]);
|
| + m.length = 10;
|
| + expect(m.length, equals(10));
|
| + expect(m[5], equals(null));
|
| + m.length = 1;
|
| + expect(m.length, equals(1));
|
| + expect(m[0], equals("a"));
|
| + });
|
| + test('sort', () {
|
| + final JsArray m = jsify(["c", "a", "b"]);
|
| + m.sort();
|
| + expect(m.length, equals(3));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("b"));
|
| + expect(m[2], equals("c"));
|
| + });
|
| + test('insert', () {
|
| + final JsArray m = jsify(["a", "b", "c"]);
|
| + m.insert(1, "d");
|
| + expect(m.length, equals(4));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("d"));
|
| + expect(m[2], equals("b"));
|
| + expect(m[3], equals("c"));
|
| + });
|
| + test('removeAt', () {
|
| + final JsArray m = jsify(["a", "b", "c"]);
|
| + expect(m.removeAt(1), equals("b"));
|
| + expect(m.length, equals(2));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], equals("c"));
|
| + expect(() => m.removeAt(2), throwsA(isRangeError));
|
| + });
|
| + test('removeLast', () {
|
| + final JsArray m = jsify(["a", "b", "c", null]);
|
| + expect(m.removeLast(), isNull);
|
| + expect(m.removeLast(), equals("c"));
|
| + expect(m.removeLast(), equals("b"));
|
| + expect(m.removeLast(), equals("a"));
|
| + expect(m.length, equals(0));
|
| + });
|
| + test('sublist', () {
|
| + final JsArray m = jsify(["a", "b", "c", null]);
|
| + final sl1 = m.sublist(2);
|
| + expect(sl1.length, equals(2));
|
| + expect(sl1[0], equals("c"));
|
| + expect(sl1[1], isNull);
|
| + final sl2 = m.sublist(1, 3);
|
| + expect(sl2.length, equals(2));
|
| + expect(sl2[0], equals("b"));
|
| + expect(sl2[1], equals("c"));
|
| + });
|
| + test('setRange', () {
|
| + final JsArray m = jsify(["a", "b", "c", null]);
|
| + m.setRange(1, 2, [null, null]);
|
| + expect(m.length, equals(4));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], isNull);
|
| + expect(m[2], isNull);
|
| + expect(m[3], isNull);
|
| + m.setRange(3, 1, [null, "c", null], 1);
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], isNull);
|
| + expect(m[2], isNull);
|
| + expect(m[3], equals("c"));
|
| + });
|
| + test('removeRange', () {
|
| + final JsArray m = jsify(["a", "b", "c", null]);
|
| + m.removeRange(1, 3);
|
| + expect(m.length, equals(2));
|
| + expect(m[0], equals("a"));
|
| + expect(m[1], isNull);
|
| + });
|
| + });
|
| + group('JsObject as Map<String, dynamic>', () {
|
| + test('operator []', () {
|
| + final m = jsify({"a": 1, "b": "c"}).asDartMap();
|
| + expect(m["a"], equals(1));
|
| + expect(m["b"], equals("c"));
|
| + });
|
| + test('operator []=', () {
|
| + final m = jsify({}).asDartMap();
|
| + m["a"] = 1;
|
| + expect(m["a"], equals(1));
|
| + expect(m.length, equals(1));
|
| + m["b"] = "c";
|
| + expect(m["b"], equals("c"));
|
| + expect(m.length, equals(2));
|
| + });
|
| + test('remove', () {
|
| + final m = jsify({"a": 1, "b": "c"}).asDartMap();
|
| + expect(m.remove("a"), equals(1));
|
| + expect(m["a"], isNull);
|
| + expect(m["b"], equals("c"));
|
| + expect(m.length, equals(1));
|
| + });
|
| + test('get keys', () {
|
| + final m = jsify({"a": 1, "b": 2}).asDartMap();
|
| + final keys = m.keys;
|
| + expect(keys.length, equals(2));
|
| + expect(keys, contains("a"));
|
| + expect(keys, contains("b"));
|
| + });
|
| + test('containsValue', () {
|
| + final m = jsify({"a": 1, "b": "c"}).asDartMap();
|
| + expect(m.containsValue(1), equals(true));
|
| + expect(m.containsValue("c"), equals(true));
|
| + expect(m.containsValue("a"), equals(false));
|
| + });
|
| + test('containsKey', () {
|
| + final m = jsify({"a": 1, "b": "c"}).asDartMap();
|
| + expect(m.containsKey("a"), equals(true));
|
| + expect(m.containsKey("d"), equals(false));
|
| + });
|
| + test('addAll', () {
|
| + final m = jsify({'a': 1, 'b': 'c'}).asDartMap();
|
| + m.addAll({'b': 2, 'c': 'd'});
|
| + expect(m['a'], equals(1));
|
| + expect(m['b'], equals(2));
|
| + expect(m['c'], equals('d'));
|
| + });
|
| + test('values', () {
|
| + final m = jsify({'a': 1, 'b': 'c'}).asDartMap();
|
| + final values = m.values;
|
| + expect(values.length, equals(2));
|
| + expect(values.contains(1), isTrue);
|
| + expect(values.contains('c'), isTrue);
|
| + });
|
| + test('length', () {
|
| + final m = jsify({'a': 1, 'b': 'c'}).asDartMap();
|
| + expect(m.length, equals(2));
|
| + m['c'] = 'd';
|
| + expect(m.length, equals(3));
|
| + });
|
| + });
|
| }
|
|
|