large_image_changer_test.dart 1.36 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// 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');

17
    Timeline? timeline;
18 19 20 21 22 23 24
    switch (targetPlatform) {
      case 'TargetPlatform.iOS':
        {
          timeline = await driver.traceAction(() async {
            await Future<void>.delayed(const Duration(seconds: 20));
          });
        }
25
      case 'TargetPlatform.android':
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
        {
          // Just run for 20 seconds to collect memory usage. The widget itself
          // animates during this time.
          await Future<void>.delayed(const Duration(seconds: 20));
        }
      default:
        throw UnsupportedError('Unsupported platform $targetPlatform');
    }

    if (timeline != null) {
      final TimelineSummary summary = TimelineSummary.summarize(timeline);
      await summary.writeTimelineToFile(fileName, pretty: true);
    }

    await driver.close();
41
  }, timeout: Timeout.none);
42
}