youtube_explode/test/playlist_test.dart

83 lines
2.7 KiB
Dart

import 'package:test/test.dart';
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
void main() {
group('Playlist', () {
YoutubeExplode yt;
setUp(() {
yt = YoutubeExplode();
});
tearDown(() {
yt.close();
});
test('GetMetadataOfPlaylist', () async {
var playlistUrl =
'https://www.youtube.com/playlist?list=PLr-IftNTIujSF-8tlGbZBQyGIT6TCF6Yd';
var playlist = await yt.playlists.get(PlaylistId(playlistUrl));
expect(playlist.id.value, 'PLr-IftNTIujSF-8tlGbZBQyGIT6TCF6Yd');
expect(playlist.url, playlistUrl);
expect(playlist.title, 'osu! Highlights');
expect(playlist.author, 'Tyrrrz');
expect(playlist.description, 'My best osu! plays');
expect(playlist.engagement.viewCount, greaterThanOrEqualTo(133));
expect(playlist.engagement.likeCount, greaterThanOrEqualTo(0));
expect(playlist.engagement.dislikeCount, greaterThanOrEqualTo(0));
});
test('GetMetadataOfAnyPlaylist', () async {
var data = {
'PLI5YfMzCfRtZ8eV576YoY3vIYrHjyVm_e',
'RD1hu8-y6fKg0',
'RDMMU-ty-2B02VY',
'RDCLAK5uy_lf8okgl2ygD075nhnJVjlfhwp8NsUgEbs',
'OLAK5uy_lLeonUugocG5J0EUAEDmbskX4emejKwcM',
'PL601B2E69B03FAB9D'
};
for (var playlistId in data) {
var playlist = await yt.playlists.get(PlaylistId(playlistId));
expect(playlist.id.value, playlistId);
}
});
test('GetVideosInPlaylist', () async {
var videos = await yt.playlists
.getVideos(PlaylistId(
'https://www.youtube.com/playlist?list=PLr-IftNTIujSF-8tlGbZBQyGIT6TCF6Yd'))
.toList();
expect(videos.length, greaterThanOrEqualTo(20));
expect(
videos.map((e) => e.id.value).toList(),
containsAll([
'B6N8-_rBTh8',
'F1bvjgTckMc',
'kMBzljXOb9g',
'LsNPjFXIPT8',
'fXYPMPglYTs',
'AI7ULzgf8RU',
'VoGpvg3xXoE',
'Qzu-fTdjeFY'
]));
});
var data = const {
'PL601B2E69B03FAB9D',
'PLI5YfMzCfRtZ8eV576YoY3vIYrHjyVm_e',
'PLWwAypAcFRgKFlxtLbn_u14zddtDJj3mk',
'OLAK5uy_mtOdjCW76nDvf5yOzgcAVMYpJ5gcW5uKU',
'RD1hu8-y6fKg0',
'RDMMU-ty-2B02VY',
'RDCLAK5uy_lf8okgl2ygD075nhnJVjlfhwp8NsUgEbs',
'ULl6WWX-BgIiE',
'UUTMt7iMWa7jy0fNXIktwyLA',
'OLAK5uy_lLeonUugocG5J0EUAEDmbskX4emejKwcM',
'FLEnBXANsKmyj2r9xVyKoDiQ'
};
for (var playlistId in data) {
test('GetVideosInAnyPlaylist - $playlistId', () async {
var videos =
await yt.playlists.getVideos(PlaylistId(playlistId)).toList();
expect(videos, isNotEmpty);
});
}
});
}