mirror of
https://github.com/spotiflacapp/SpotiFLAC-Mobile.git
synced 2026-06-01 03:15:17 +07:00
46 lines
998 B
Go
46 lines
998 B
Go
package gobackend
|
|
|
|
import "testing"
|
|
|
|
func TestExtractAmazonASIN(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
url string
|
|
want string
|
|
}{
|
|
{
|
|
name: "prefers trackAsin over albumAsin",
|
|
url: "https://music.amazon.com/albums/B0ALBUM123?trackAsin=B0TRACK456&musicTerritory=US",
|
|
want: "B0TRACK456",
|
|
},
|
|
{
|
|
name: "extract from tracks path",
|
|
url: "https://music.amazon.com/tracks/B0CYQHGWZJ?musicTerritory=US",
|
|
want: "B0CYQHGWZJ",
|
|
},
|
|
{
|
|
name: "extract from plain query asin",
|
|
url: "https://example.com/?asin=B0CYQHGWZJ",
|
|
want: "B0CYQHGWZJ",
|
|
},
|
|
{
|
|
name: "fallback regex",
|
|
url: "https://example.com/path/B0CYQHGWZJ",
|
|
want: "B0CYQHGWZJ",
|
|
},
|
|
{
|
|
name: "invalid url",
|
|
url: "https://music.amazon.com/tracks/not-valid",
|
|
want: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := extractAmazonASIN(tt.url)
|
|
if got != tt.want {
|
|
t.Fatalf("extractAmazonASIN() = %q, want %q", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|