Files
Client/test/widget/downloads/download_tray_test.dart
T

120 lines
3.0 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:marianum_mobile/widget/downloads/download_tray.dart';
void main() {
group('shouldAutoOpenCompletion', () {
test('opens a lone foreground download on its origin screen', () {
expect(
shouldAutoOpenCompletion(
foreground: true,
suppressAutoOpen: false,
completedIsSoleVisibleJob: true,
onOriginScreen: true,
),
isTrue,
);
});
test('does not open while backgrounded', () {
expect(
shouldAutoOpenCompletion(
foreground: false,
suppressAutoOpen: false,
completedIsSoleVisibleJob: true,
onOriginScreen: true,
),
isFalse,
);
});
test('does not open when other downloads are still visible', () {
expect(
shouldAutoOpenCompletion(
foreground: true,
suppressAutoOpen: false,
completedIsSoleVisibleJob: false,
onOriginScreen: true,
),
isFalse,
);
});
test('does not open once parallelism was seen (suppressed), even if now sole', () {
// A burst of parallel downloads drains one by one; the last one left must
// not surprise the user by auto-opening.
expect(
shouldAutoOpenCompletion(
foreground: true,
suppressAutoOpen: true,
completedIsSoleVisibleJob: true,
onOriginScreen: true,
),
isFalse,
);
});
test('does not open if the user left the screen it was started on', () {
// The chip surfaces instead; nothing should pop open unexpectedly.
expect(
shouldAutoOpenCompletion(
foreground: true,
suppressAutoOpen: false,
completedIsSoleVisibleJob: true,
onOriginScreen: false,
),
isFalse,
);
});
});
group('shouldShowDownloadChip', () {
test('hidden while the overview sheet is open', () {
expect(
shouldShowDownloadChip(sheetOpen: true, jobCount: 3, anySurfaced: true),
isFalse,
);
});
test('hidden when there are no jobs', () {
expect(
shouldShowDownloadChip(
sheetOpen: false,
jobCount: 0,
anySurfaced: false,
),
isFalse,
);
});
test('hidden for a lone in-progress download on its own screen', () {
// Single job, not finished, screen not left → inline progress is enough.
expect(
shouldShowDownloadChip(
sheetOpen: false,
jobCount: 1,
anySurfaced: false,
),
isFalse,
);
});
test('shown for multiple downloads', () {
expect(
shouldShowDownloadChip(
sheetOpen: false,
jobCount: 2,
anySurfaced: false,
),
isTrue,
);
});
test('shown for a lone download once surfaced (finished or screen left)', () {
expect(
shouldShowDownloadChip(sheetOpen: false, jobCount: 1, anySurfaced: true),
isTrue,
);
});
});
}