// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:sample_catalog/animated_list.dart' as animated_list_sample; void main() { testWidgets('animated_list sample app smoke test', (WidgetTester tester) async { animated_list_sample.main(); await tester.pump(); expect(find.text('Item 0'), findsOneWidget); expect(find.text('Item 1'), findsOneWidget); expect(find.text('Item 2'), findsOneWidget); final Finder insertButton = find.byTooltip('insert a new item'); final Finder removeButton = find.byTooltip('remove the selected item'); expect(insertButton, findsOneWidget); expect(removeButton, findsOneWidget); // Remove items 0, 1, 2. await tester.tap(find.text('Item 0')); await tester.tap(removeButton); await tester.pumpAndSettle(); await tester.tap(find.text('Item 1')); await tester.tap(removeButton); await tester.pumpAndSettle(); await tester.tap(find.text('Item 2')); await tester.tap(removeButton); await tester.pumpAndSettle(); // Append items 3, 4, 5, 6. await tester.tap(insertButton); await tester.tap(insertButton); await tester.tap(insertButton); await tester.tap(insertButton); await tester.pumpAndSettle(); expect(find.text('Item 0'), findsNothing); expect(find.text('Item 1'), findsNothing); expect(find.text('Item 2'), findsNothing); expect(find.text('Item 3'), findsOneWidget); expect(find.text('Item 4'), findsOneWidget); expect(find.text('Item 5'), findsOneWidget); expect(find.text('Item 6'), findsOneWidget); // Insert items 7, 8 at item 3's position (at the top) await tester.tap(find.text('Item 3')); await tester.tap(insertButton); await tester.tap(insertButton); await tester.pumpAndSettle(); expect(find.text('Item 7'), findsOneWidget); expect(find.text('Item 8'), findsOneWidget); // Scroll to the end. await tester.fling(find.text('Item 7'), const Offset(0.0, -200.0), 1000.0); await tester.pumpAndSettle(); expect(find.text('Item 6'), findsOneWidget); expect(find.text('Item 8'), findsNothing); }); }