| Index: test/iron_list_different_heights_test.dart
|
| diff --git a/test/iron_list_different_heights_test.dart b/test/iron_list_different_heights_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..33e509157ef2c4e6dca40d824b237207ebabaa79
|
| --- /dev/null
|
| +++ b/test/iron_list_different_heights_test.dart
|
| @@ -0,0 +1,117 @@
|
| +// Copyright (c) 2015, 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.
|
| +@TestOn('browser')
|
| +library polymer_elements.test.iron_list_different_heights_test;
|
| +
|
| +import 'dart:async';
|
| +import 'dart:js';
|
| +import 'package:polymer_elements/iron_list.dart';
|
| +import 'package:polymer/polymer.dart';
|
| +import 'package:test/test.dart';
|
| +import 'package:web_components/web_components.dart';
|
| +import 'common.dart';
|
| +import 'iron_list_test_helpers.dart';
|
| +import 'fixtures/x_list.dart';
|
| +
|
| +/// Uses [XList].
|
| +main() async {
|
| + await initPolymer();
|
| +
|
| + group('Different heights', () {
|
| + IronList list;
|
| + XList container;
|
| +
|
| + setUp(() {
|
| + container = fixture('trivialList');
|
| + list = container.list;
|
| + });
|
| +
|
| + test('render without gaps 1', () async {
|
| + list.items = [
|
| + {'index': 0, 'height': 791},
|
| + {'index': 1, 'height': 671}
|
| + ];
|
| +
|
| + await wait(1);
|
| + list.addAll('items', [
|
| + {'index': 2, 'height': 251},
|
| + {'index': 3, 'height': 191},
|
| + {'index': 4, 'height': 151},
|
| + {'index': 5, 'height': 191},
|
| + {'index': 6, 'height': 51},
|
| + {'index': 7, 'height': 51},
|
| + {'index': 8, 'height': 51},
|
| + ]);
|
| +
|
| + list.on['scroll'].first.then((_) {
|
| + expect(isFullOfItems(list), isTrue);
|
| + });
|
| +
|
| + var done = new Completer();
|
| + simulateScroll({'list': list, 'contribution': 15, 'target': 100000}, (_) {
|
| + done.complete();
|
| + });
|
| +
|
| + return done.future;
|
| + });
|
| +
|
| + test('render without gaps 2', () async {
|
| + var height = 2, items = [];
|
| +
|
| + while (items.length < 15) {
|
| + items.add({'height': height});
|
| + height *= 1.5;
|
| + }
|
| + list.items = items;
|
| +
|
| + await wait(1);
|
| + list.on['scroll'].first.then((_) {
|
| + expect(isFullOfItems(list), isTrue);
|
| + });
|
| +
|
| + var done = new Completer();
|
| + simulateScroll({'list': list, 'contribution': 20, 'target': 100000}, (_) {
|
| + done.complete();
|
| + });
|
| +
|
| + return done.future;
|
| + });
|
| +
|
| + test('render without gaps 3', () async {
|
| + var heights = [
|
| + 20,
|
| + 100,
|
| + 140,
|
| + 117,
|
| + 800,
|
| + 50,
|
| + 15,
|
| + 80,
|
| + 90,
|
| + 255,
|
| + 20,
|
| + 15,
|
| + 19,
|
| + 250,
|
| + 314
|
| + ];
|
| +
|
| + list.items = heights.map((height) {
|
| + return {'height': height};
|
| + }).toList();
|
| +
|
| + await wait(1);
|
| + list.on['scroll'].first.then((_) {
|
| + expect(isFullOfItems(list), isTrue);
|
| + });
|
| +
|
| + var done = new Completer();
|
| + simulateScroll({'list': list, 'contribution': 20, 'target': 100000}, (_) {
|
| + done.complete();
|
| + });
|
| +
|
| + return done.future;
|
| + });
|
| + });
|
| +}
|
|
|