// Copyright 2014 The Flutter 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 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_api_samples/material/flexible_space_bar/flexible_space_bar.0.dart' as example; import 'package:flutter_test/flutter_test.dart'; void main() { // The app being tested loads images via HTTP which the test // framework defeats by default. setUpAll(() { HttpOverrides.global = null; }); testWidgets( 'The app bar stretches when over-scrolled', (WidgetTester tester) async { await tester.pumpWidget(const example.FlexibleSpaceBarExampleApp()); expect(find.text('Flight Report'), findsOne); expect(find.widgetWithText(ListTile, 'Sunday'), findsOne); expect(find.widgetWithText(ListTile, 'Monday'), findsOne); expect(find.text('sunny, h: 80, l: 65'), findsExactly(2)); expect(find.byIcon(Icons.wb_sunny), findsExactly(2)); final Finder appBarContainer = find.byType(Image); final Size sizeBeforeScroll = tester.getSize(appBarContainer); final Offset target = tester.getCenter(find.byType(ListTile).first); final TestGesture gesture = await tester.startGesture(target); await gesture.moveBy(const Offset(0.0, 100.0)); await tester.pump(const Duration(milliseconds: 10)); await gesture.up(); final Size sizeAfterScroll = tester.getSize(appBarContainer); expect(sizeBeforeScroll.height, lessThan(sizeAfterScroll.height)); // Verifies ScrollBehavior.dragDevices is correctly set. }, variant: TargetPlatformVariant.all(), ); }