[verified] Publish ReelBox source under GPLv3
This commit is contained in:
commit
db2b505ca3
445 files changed
+105274
No files matched your search
@@ -0,0 +1,52 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:reelbox/media/media_helpers.dart';
|
||||
|
||||
void main() {
|
||||
for (final disposeFirst in [true, false]) {
|
||||
test(
|
||||
'old player teardown cannot overwrite new owner (dispose first=$disposeFirst)',
|
||||
() async {
|
||||
final old = PlaybackLifecycle();
|
||||
final current = PlaybackLifecycle();
|
||||
final pending = Completer<void>();
|
||||
final writes = <String>[];
|
||||
final oldSetup = old.setup([
|
||||
() async {
|
||||
writes.add('old-active');
|
||||
await pending.future;
|
||||
},
|
||||
]);
|
||||
await Future<void>.delayed(Duration.zero);
|
||||
late Future<void> teardown;
|
||||
late Future<bool> newSetup;
|
||||
Future<void> restoreOld() async {
|
||||
writes.add('old-restore');
|
||||
}
|
||||
|
||||
Future<void> setupNew() async {
|
||||
writes.add('new-active');
|
||||
}
|
||||
|
||||
if (disposeFirst) {
|
||||
teardown = old.dispose(restoreOld);
|
||||
newSetup = current.setup([setupNew]);
|
||||
} else {
|
||||
newSetup = current.setup([setupNew]);
|
||||
teardown = old.dispose(restoreOld);
|
||||
}
|
||||
await Future<void>.delayed(Duration.zero);
|
||||
pending.complete();
|
||||
expect(await oldSetup, isFalse);
|
||||
expect(await newSetup, isTrue);
|
||||
await teardown;
|
||||
expect(writes.last, 'new-active');
|
||||
await current.dispose(() async {
|
||||
writes.add('new-restore');
|
||||
});
|
||||
expect(writes.last, 'new-restore');
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user