// 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 'package:flutter_driver/flutter_driver.dart'; import 'package:test/test.dart' hide TypeMatcher, isInstanceOf; Future<void> main() async { const String fileName = 'large_image_changer'; test('Animate for 20 seconds', () async { final FlutterDriver driver = await FlutterDriver.connect(); await driver.forceGC(); final String targetPlatform = await driver.requestData('getTargetPlatform'); Timeline? timeline; switch (targetPlatform) { case 'TargetPlatform.iOS': { timeline = await driver.traceAction(() async { await Future<void>.delayed(const Duration(seconds: 20)); }); } break; case 'TargetPlatform.android': { // Just run for 20 seconds to collect memory usage. The widget itself // animates during this time. await Future<void>.delayed(const Duration(seconds: 20)); } break; default: throw UnsupportedError('Unsupported platform $targetPlatform'); } if (timeline != null) { final TimelineSummary summary = TimelineSummary.summarize(timeline); await summary.writeTimelineToFile(fileName, pretty: true); } await driver.close(); }, timeout: Timeout.none); }