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); }); }); }