mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-07 17:10:29 +00:00
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package hls
|
|
|
|
import (
|
|
_ "embed"
|
|
"net/url"
|
|
"testing"
|
|
)
|
|
|
|
//go:embed testdata/olemovienews.m3u8
|
|
var realWorldPlaylist string
|
|
|
|
// TestParseMediaRealWorld guards parsing against a real site playlist
|
|
// (olemovienews.com VOD, 138 TS segments).
|
|
func TestParseMediaRealWorld(t *testing.T) {
|
|
base, err := url.Parse("https://europe.olemovienews.com/ts2/20230125/afAxfjit/mp4/afAxfjit.mp4/index-v1-a1.m3u8")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
media, err := ParseMedia(realWorldPlaylist, base)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if media.Live {
|
|
t.Error("real VOD playlist should not be live")
|
|
}
|
|
if media.IsFMP4 {
|
|
t.Error("playlist should be detected as TS")
|
|
}
|
|
if len(media.Segments) != 138 {
|
|
t.Errorf("want 138 segments, got %d", len(media.Segments))
|
|
}
|
|
first := media.Segments[0]
|
|
if first.URI != "https://europe.olemovienews.com/ts2/20230125/afAxfjit/mp4/afAxfjit.mp4/seg-1-v1-a1.ts" {
|
|
t.Errorf("segment URI resolution wrong: %s", first.URI)
|
|
}
|
|
if media.Segments[0].Sequence != 1 {
|
|
t.Errorf("first sequence = %d, want 1", media.Segments[0].Sequence)
|
|
}
|
|
}
|