youtube_explode/test/video_id_test.dart

42 lines
1.3 KiB
Dart

import 'package:test/test.dart';
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
void main() {
group('VideoId', () {
test('ValidVideoId', () {
var data = const {
'9bZkp7q19f0',
'_kmeFXjjGfk',
'AI7ULzgf8RU',
};
// ignore: avoid_function_literals_in_foreach_calls
data.forEach((videoId) {
var video = VideoId(videoId);
expect(video.value, videoId);
});
});
test('ValidVideoUrl', () {
var data = const {
'youtube.com/watch?v=yIVRs6YSbOM': 'yIVRs6YSbOM',
'youtu.be/yIVRs6YSbOM': 'yIVRs6YSbOM',
'youtube.com/embed/yIVRs6YSbOM': 'yIVRs6YSbOM',
};
data.forEach((url, videoId) {
var video = VideoId(url);
expect(video.value, videoId);
});
});
test('InvalidVideoId', () {
expect(() => VideoId(''), throwsArgumentError);
expect(() => VideoId('pI2I2zqzeK'), throwsArgumentError);
expect(() => VideoId('pI2I2z zeKg'), throwsArgumentError);
});
test('InvalidVideoUrl', () {
expect(
() => VideoId('youtube.com/xxx?v=pI2I2zqzeKg'), throwsArgumentError);
expect(() => VideoId('youtu.be/watch?v=xxx'), throwsArgumentError);
expect(() => VideoId('youtube.com/embed/'), throwsArgumentError);
});
});
}