Cover-Farbe, Teilen aus YouTube, Android Auto, geschärfte Typografie
P3-Liste aus dem UX-Review: Player nimmt Cover-Farbe auf, "Teilen" aus YouTube trägt die Adresse in den Downloader ein, Android Auto blättert durch die Bibliothek, Laufweite der Typografie geschärft, Überschriften vereinheitlicht. 533 Tests grün, flutter analyze ohne Befund.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:melo/services/geteilte_adresse.dart';
|
||||
|
||||
/// Wer ein Video an Melo teilt, schickt selten nur die Adresse: die
|
||||
/// YouTube-App hängt Titel und Werbetext drumherum.
|
||||
void main() {
|
||||
group('adresseAus', () {
|
||||
test('nimmt eine nackte Adresse', () {
|
||||
expect(adresseAus('https://youtu.be/dQw4w9WgXcQ'),
|
||||
'https://youtu.be/dQw4w9WgXcQ');
|
||||
});
|
||||
|
||||
test('holt die Adresse aus dem Text der YouTube-App', () {
|
||||
const geteilt =
|
||||
'Schau dir das an: https://youtu.be/dQw4w9WgXcQ\n\nüber @YouTube';
|
||||
|
||||
expect(adresseAus(geteilt), 'https://youtu.be/dQw4w9WgXcQ');
|
||||
});
|
||||
|
||||
test('versteht die lange Form mit Parametern', () {
|
||||
const geteilt =
|
||||
'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=shared';
|
||||
|
||||
expect(adresseAus(geteilt),
|
||||
'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=shared');
|
||||
});
|
||||
|
||||
test('nimmt die erste Adresse, wenn mehrere drinstehen', () {
|
||||
const geteilt = 'https://youtu.be/eins und https://youtu.be/zwei';
|
||||
|
||||
expect(adresseAus(geteilt), 'https://youtu.be/eins');
|
||||
});
|
||||
|
||||
test('Satzzeichen am Ende gehören nicht zur Adresse', () {
|
||||
expect(adresseAus('Guck mal: https://youtu.be/abc.'),
|
||||
'https://youtu.be/abc');
|
||||
expect(adresseAus('(https://youtu.be/abc)'), 'https://youtu.be/abc');
|
||||
});
|
||||
|
||||
test('Text ohne Adresse ergibt nichts', () {
|
||||
expect(adresseAus('nur Text'), isNull);
|
||||
expect(adresseAus(''), isNull);
|
||||
expect(adresseAus(null), isNull);
|
||||
});
|
||||
|
||||
test('auch andere Adressen kommen durch — der Server entscheidet', () {
|
||||
// Der Downloader läuft über yt-dlp am Server und kann mehr als
|
||||
// YouTube. Hier auf youtube.com zu prüfen würde nur einschränken.
|
||||
expect(adresseAus('https://soundcloud.com/kuenstler/lied'),
|
||||
'https://soundcloud.com/kuenstler/lied');
|
||||
});
|
||||
|
||||
test('unverschlüsselte Adressen werden ebenfalls erkannt', () {
|
||||
expect(adresseAus('http://youtu.be/abc'), 'http://youtu.be/abc');
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user