music-kraken/internal/data/source_test.go
2025-10-06 15:21:55 +02:00

71 lines
1.7 KiB
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)
}
}
}
func TestMusify(t *testing.T) {
validUrls := []string{
"https://musify.club/artist/plohoyparen-645023",
"https://musify.club/track/plohoyparen-obgon-dve-sploshnie-poh-voobshe-9769231",
"https://musify.club/release/plohoyparen-hello-my-name-2018-1029885",
"https://musify.clUb/Release/plohoyParen-hello-my-name-2018-1029885",
}
invalidUrls := []string{
"https://musify.club/",
"https://musify.club/not-data-type",
"https://m.youtube.com/watch?v=dQw4w9WgXcQ",
}
st := GetSourceType("Musify")
for _, u := range validUrls {
_, err := st.NewSource(u)
if err != nil {
t.Errorf(`%q is a valid musify url`, u)
}
}
for _, u := range invalidUrls {
_, err := st.NewSource(u)
if err == nil {
t.Errorf(`%q is an invalid musify url`, u)
}
}
}