mirror of
https://github.com/flutter/flutter.git
synced 2026-02-03 17:51:05 +08:00
* Future<void> main * Future<void>.delayed * prefer_void_to_Null * address review comments
50 lines
1016 B
Dart
50 lines
1016 B
Dart
// Copyright 2017 The Chromium 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:test/test.dart' hide TypeMatcher, isInstanceOf;
|
|
|
|
void main() {
|
|
test('Message loop flushes microtasks between iterations', () async {
|
|
final List<int> tasks = <int>[];
|
|
|
|
tasks.add(1);
|
|
|
|
// Flush 0 microtasks.
|
|
await Future<void>.delayed(Duration.zero);
|
|
|
|
scheduleMicrotask(() {
|
|
tasks.add(3);
|
|
});
|
|
scheduleMicrotask(() {
|
|
tasks.add(4);
|
|
});
|
|
|
|
tasks.add(2);
|
|
|
|
// Flush 2 microtasks.
|
|
await Future<void>.delayed(Duration.zero);
|
|
|
|
scheduleMicrotask(() {
|
|
tasks.add(6);
|
|
});
|
|
scheduleMicrotask(() {
|
|
tasks.add(7);
|
|
});
|
|
scheduleMicrotask(() {
|
|
tasks.add(8);
|
|
});
|
|
|
|
tasks.add(5);
|
|
|
|
// Flush 3 microtasks.
|
|
await Future<void>.delayed(Duration.zero);
|
|
|
|
tasks.add(9);
|
|
|
|
expect(tasks, <int>[1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
});
|
|
}
|