Die vier zuletzt zurückgestellten Punkte aus der UX-Simulation: - Abbrechen-Knopf für hängende YouTube-Downloads (Future.any gegen ein Abbruch-Signal, Anfrage läuft im Hintergrund aus statt die App zu blockieren) - Punkt am inaktiven Download-Unterreiter, wenn dort etwas im Hintergrund läuft (SubTabs bekommt einen optionalen badges-Parameter) - Versionsnummer unter "Über Melo" (neue Abhängigkeit: package_info_plus) - Mini-Player führt beim Wischen jetzt sichtbar mit und wertet zusätzlich zum Schwung auch die zurückgelegte Strecke aus — ein langsames, aber weites Wischen wurde vorher komplett ignoriert Dabei drei bestehende Widget-Tests korrigiert, die den Download-Tab ohne Provider<DownloadService> aufbauten (hauptmenue_test.dart, home_shell_test.dart, online_screen_test.dart) — lief bisher nur, weil niemand danach fragte; das neue Badge tut das jetzt app-weit. 550 Tests grün (vorher 539), flutter analyze ohne Befund.
96 lines
3.2 KiB
Dart
96 lines
3.2 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:melo/player/wischen.dart';
|
|
|
|
/// Der Mini-Player ließ sich nur antippen. Wischen ist die Geste, die jede
|
|
/// andere Musik-App dort anbietet — aber sie darf nicht bei jedem Wackeln
|
|
/// während des Tippens losgehen.
|
|
void main() {
|
|
group('titelWechsel', () {
|
|
test('kräftiges Wischen nach links geht zum nächsten Titel', () {
|
|
// Nach links wischen heißt: der nächste kommt von rechts herein.
|
|
expect(titelWechsel(-1200), Wechsel.naechster);
|
|
});
|
|
|
|
test('kräftiges Wischen nach rechts geht zum vorherigen', () {
|
|
expect(titelWechsel(1200), Wechsel.vorheriger);
|
|
});
|
|
|
|
test('ein Wackeln beim Tippen wechselt nichts', () {
|
|
expect(titelWechsel(80), isNull);
|
|
expect(titelWechsel(-80), isNull);
|
|
expect(titelWechsel(0), isNull);
|
|
});
|
|
|
|
test('genau auf der Schwelle wechselt es noch nicht', () {
|
|
expect(titelWechsel(wischSchwelle), isNull);
|
|
expect(titelWechsel(-wischSchwelle), isNull);
|
|
});
|
|
|
|
test('knapp über der Schwelle wechselt es', () {
|
|
expect(titelWechsel(wischSchwelle + 1), Wechsel.vorheriger);
|
|
expect(titelWechsel(-wischSchwelle - 1), Wechsel.naechster);
|
|
});
|
|
});
|
|
|
|
group('oeffnetVollbild', () {
|
|
test('nach oben wischen öffnet', () {
|
|
// Nach oben ist in Flutter negativ.
|
|
expect(oeffnetVollbild(-1200), isTrue);
|
|
});
|
|
|
|
test('nach unten wischen öffnet nicht', () {
|
|
// Unten ist für „wegschieben" reserviert und nicht belegt — es soll
|
|
// jedenfalls nicht dasselbe tun wie oben.
|
|
expect(oeffnetVollbild(1200), isFalse);
|
|
});
|
|
|
|
test('ein Wackeln öffnet nicht', () {
|
|
expect(oeffnetVollbild(-80), isFalse);
|
|
expect(oeffnetVollbild(0), isFalse);
|
|
});
|
|
});
|
|
|
|
group('titelWechselMitStrecke', () {
|
|
test('kräftiger Schwung reicht wie bisher, egal wie kurz die Strecke',
|
|
() {
|
|
expect(titelWechselMitStrecke(-5, -1200), Wechsel.naechster);
|
|
expect(titelWechselMitStrecke(5, 1200), Wechsel.vorheriger);
|
|
});
|
|
|
|
test('eine weite, aber langsame Bewegung wechselt trotzdem', () {
|
|
expect(titelWechselMitStrecke(-wischStreckeSchwelle - 1, 0),
|
|
Wechsel.naechster);
|
|
expect(titelWechselMitStrecke(wischStreckeSchwelle + 1, 0),
|
|
Wechsel.vorheriger);
|
|
});
|
|
|
|
test('kurz und langsam wechselt nichts', () {
|
|
expect(titelWechselMitStrecke(20, 80), isNull);
|
|
});
|
|
|
|
test('genau auf der Streckenschwelle wechselt es noch nicht', () {
|
|
expect(titelWechselMitStrecke(wischStreckeSchwelle, 0), isNull);
|
|
});
|
|
});
|
|
|
|
group('oeffnetVollbildMitStrecke', () {
|
|
test('kräftiger Schwung reicht wie bisher, egal wie kurz die Strecke',
|
|
() {
|
|
expect(oeffnetVollbildMitStrecke(-5, -1200), isTrue);
|
|
});
|
|
|
|
test('eine weite, aber langsame Bewegung nach oben öffnet trotzdem', () {
|
|
expect(oeffnetVollbildMitStrecke(-wischStreckeSchwelle - 1, 0), isTrue);
|
|
});
|
|
|
|
test('dieselbe Strecke nach unten öffnet nicht — nur oben ist belegt',
|
|
() {
|
|
expect(oeffnetVollbildMitStrecke(wischStreckeSchwelle + 1, 0), isFalse);
|
|
});
|
|
|
|
test('kurz und langsam öffnet nichts', () {
|
|
expect(oeffnetVollbildMitStrecke(-20, -80), isFalse);
|
|
});
|
|
});
|
|
}
|