apply abstract method
Applies the policy. False when the app was still scheduling frames when the policy gave up — the step is captured either way.
True says that and only that: no frame was scheduled. It is not a claim
that the app has nothing left to do, because a pending timer is invisible
from here — as it is to pumpAndSettle.
record, when a run is recording, receives the frame after every pump —
and, where the policy chooses its own interval, dictates it.
land is awaited before every pump, so whatever it lands is drawn by
the frame that follows rather than by the frame after the loop. A scenario
passes one; a policy applied by hand gets none and keeps meaning exactly
what it says. See landRealWork for what it waits on and why the
difference is visible: fake time runs a 700ms transition out in a few real
milliseconds, so a decode that a device would have finished in the first
frame otherwise lands after the last one — the still comes out right and
every frame of the movie behind it is a hole.
Implementation
Future<bool> apply(
WidgetTester tester, {
ScenarioFrameSink? record,
Future<void> Function()? land,
});