music-kraken/internal/data/source_test.go
2025-07-17 16:41:50 +02:00

41 lines
918 B
Go

package data
import (
"testing"
)
func TestYouTube(t *testing.T) {
validUrls := []string{
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"http://youtube.com/watch?v=dQw4w9WgXcQ",
"https://youtu.be/dQw4w9WgXcQ",
"www.youtube.com/watch?v=dQw4w9WgXcQ",
"youtube.com/watch?v=dQw4w9WgXcQ",
"youtu.be/dQw4w9WgXcQ",
"https://www.youtube.com/embed/dQw4w9WgXcQ",
"https://www.youtube.com/v/dQw4w9WgXcQ",
"https://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ",
"https://m.youtube.com/watch?v=dQw4w9WgXcQ",
}
invalidUrls := []string{
"invalid.url",
"https://example.com/notyoutube",
}
st := GetSourceType("Youtube")
for _, u := range validUrls {
_, err := st.NewSource(u)
if err != nil {
t.Errorf(`%q is a valid YouTube url`, u)
}
}
for _, u := range invalidUrls {
_, err := st.NewSource(u)
if err == nil {
t.Errorf(`%q is an invalid YouTube url`, u)
}
}
}