| Index: test/iron_list_mutations_test.dart
 | 
| diff --git a/test/iron_list_mutations_test.dart b/test/iron_list_mutations_test.dart
 | 
| index 9e74dd10b568a90afcc0d8912e4c1a9efd007cc7..b749c333f67c4c6b6eb748bb23190dcfc46dfb18 100644
 | 
| --- a/test/iron_list_mutations_test.dart
 | 
| +++ b/test/iron_list_mutations_test.dart
 | 
| @@ -6,6 +6,7 @@ library polymer_elements.test.iron_list_mutations_test;
 | 
|  
 | 
|  import 'dart:async';
 | 
|  import 'dart:js';
 | 
| +import 'dart:math';
 | 
|  import 'package:polymer_elements/iron_list.dart';
 | 
|  import 'package:polymer/polymer.dart';
 | 
|  import 'package:test/test.dart';
 | 
| @@ -14,6 +15,8 @@ import 'common.dart';
 | 
|  import 'iron_list_test_helpers.dart';
 | 
|  import 'fixtures/x_list.dart';
 | 
|  
 | 
| +var rand = new Random();
 | 
| +
 | 
|  main() async {
 | 
|    await initPolymer();
 | 
|  
 | 
| @@ -30,9 +33,7 @@ main() async {
 | 
|        var setSize = 100;
 | 
|        var phrase = 'It works!';
 | 
|        list.items = buildDataSet(setSize);
 | 
| -      // TODO(jakemac): Update once we resolve
 | 
| -      // https://github.com/dart-lang/polymer_interop/issues/6
 | 
| -      list.jsElement.callMethod('set', ['items.0.index', phrase]);
 | 
| +      list.set('items.0.index', phrase);
 | 
|        return new Future(() {}).then((_) {
 | 
|          expect(getFirstItemFromList(list).text, phrase);
 | 
|        });
 | 
| @@ -56,14 +57,10 @@ main() async {
 | 
|        new Future(() {}).then((_) {
 | 
|          var rowHeight = list.jsElement['_physicalItems'][0].offsetHeight;
 | 
|          // scroll down
 | 
| -        simulateScroll({
 | 
| -          'list': list,
 | 
| -          'contribution': 100,
 | 
| -          'target': setSize * rowHeight
 | 
| -        }, ([_]) {
 | 
| -          // TODO(jakemac): Update once we resolve
 | 
| -          // https://github.com/dart-lang/polymer_interop/issues/6
 | 
| -          list.jsElement.callMethod('set', ['items.0.index', phrase]);
 | 
| +        simulateScroll(
 | 
| +            {'list': list, 'contribution': 100, 'target': setSize * rowHeight},
 | 
| +            ([_]) {
 | 
| +          list.set('items.0.index', phrase);
 | 
|            new Future(() {}).then(scrollBackUp);
 | 
|          });
 | 
|        });
 | 
| @@ -76,9 +73,7 @@ main() async {
 | 
|        var setSize = 100;
 | 
|        list.items = buildDataSet(setSize);
 | 
|        setSize = list.items.length;
 | 
| -      // TODO(jakemac): Update once we resolve
 | 
| -      // https://github.com/dart-lang/polymer_interop/issues/6
 | 
| -      list.jsElement.callMethod('push', ['items', buildItem(setSize)]);
 | 
| +      list.add('items', buildItem(setSize));
 | 
|        expect(list.items.length, setSize + 1);
 | 
|        new Future(() {}).then((_) {
 | 
|          var rowHeight = list.jsElement['_physicalItems'][0].offsetHeight;
 | 
| @@ -113,7 +108,7 @@ main() async {
 | 
|            var itemsPerViewport = (viewportHeight / rowHeight).floor();
 | 
|            // TODO(jakemac): Update once we resolve
 | 
|            // https://github.com/dart-lang/polymer_interop/issues/6
 | 
| -          list.jsElement.callMethod('pop', ['items']);
 | 
| +          list.removeLast('items');
 | 
|            new Future(() {}).then((_) {
 | 
|              expect(list.items.length, setSize - 1);
 | 
|              expect(getFirstItemFromList(list).text, '${setSize - 3 - 1}');
 | 
| @@ -128,14 +123,27 @@ main() async {
 | 
|        var setSize = 45;
 | 
|        var phrase = 'It works!';
 | 
|        list.items = buildDataSet(setSize);
 | 
| -      // TODO(jakemac): Update once we resolve
 | 
| -      // https://github.com/dart-lang/polymer_interop/issues/6
 | 
| -      list.jsElement.callMethod(
 | 
| -          'splice', ['items', 0, setSize, buildItem(phrase)]);
 | 
| +      list.removeRange('items', 0, setSize);
 | 
| +      list.add('items', buildItem(phrase));
 | 
|        return new Future(() {}).then((_) {
 | 
|          expect(list.items.length, 1);
 | 
|          expect(getFirstItemFromList(list).text, phrase);
 | 
|        });
 | 
|      });
 | 
| +
 | 
| +    test('delete item and scroll to bottom', () {
 | 
| +      var setSize = 100, index;
 | 
| +
 | 
| +      list.items = buildDataSet(setSize);
 | 
| +
 | 
| +      while (list.items.length > 10) {
 | 
| +        index = (list.items.length * rand.nextDouble()).floor();
 | 
| +        list.removeItem('items', list.items[index]);
 | 
| +        list.scrollToIndex(list.items.length - 1);
 | 
| +        expect(
 | 
| +            new RegExp(r'^[0-9]*$').hasMatch(getFirstItemFromList(list).text),
 | 
| +            isTrue);
 | 
| +      }
 | 
| +    });
 | 
|    });
 | 
|  }
 | 
| 
 |