// 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:async'; import 'package:flutter/material.dart'; import 'package:flutter_driver/driver_extension.dart'; import 'package:macrobenchmarks/src/animated_image.dart'; /// This test is slightly different than most of the other tests in this /// application, in that it directly instantiates the page we care about and /// passes a callback. This way, we can make sure to consistently wait for a /// set number of image frames to render. Future<void> main() async { final Completer<void> waiter = Completer<void>(); enableFlutterDriverExtension(handler: (String? request) async { if (request != 'waitForAnimation') { throw UnsupportedError('Unrecognized request $request'); } await waiter.future; return 'done'; }); runApp(MaterialApp( home: AnimatedImagePage( onFrame: (int frameNumber) { if (frameNumber == 250) { waiter.complete(); } }, ), )); }