-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathparser_test.go
138 lines (128 loc) · 5.65 KB
/
parser_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package parsetorrentname
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"path/filepath"
"reflect"
"testing"
)
var updateGoldenFiles = flag.Bool("update", false, "update golden files in testdata/")
var testData = []string{
"The Walking Dead S05E03 720p HDTV x264-ASAP[ettv]",
"Hercules (2014) 1080p BrRip H264 - YIFY",
"Dawn.of.the.Planet.of.the.Apes.2014.HDRip.XViD-EVO",
"The Big Bang Theory S08E06 HDTV XviD-LOL [eztv]",
"22 Jump Street (2014) 720p BrRip x264 - YIFY",
"Hercules.2014.EXTENDED.1080p.WEB-DL.DD5.1.H264-RARBG",
"Hercules.2014.Extended.Cut.HDRip.XViD-juggs[ETRG]",
"Hercules (2014) WEBDL DVDRip XviD-MAX",
"WWE Hell in a Cell 2014 PPV WEB-DL x264-WD -={SPARROW}=-",
"UFC.179.PPV.HDTV.x264-Ebi[rartv]",
"Marvels Agents of S H I E L D S02E05 HDTV x264-KILLERS [eztv]",
"X-Men.Days.of.Future.Past.2014.1080p.WEB-DL.DD5.1.H264-RARBG",
"Guardians Of The Galaxy 2014 R6 720p HDCAM x264-JYK",
"Marvel's.Agents.of.S.H.I.E.L.D.S02E01.Shadows.1080p.WEB-DL.DD5.1",
"Marvels Agents of S.H.I.E.L.D. S02E06 HDTV x264-KILLERS[ettv]",
"Guardians of the Galaxy (CamRip / 2014)",
"The.Walking.Dead.S05E03.1080p.WEB-DL.DD5.1.H.264-Cyphanix[rartv]",
"Brave.2012.R5.DVDRip.XViD.LiNE-UNiQUE",
"Lets.Be.Cops.2014.BRRip.XViD-juggs[ETRG]",
"These.Final.Hours.2013.WBBRip XViD",
"Downton Abbey 5x06 HDTV x264-FoV [eztv]",
"Annabelle.2014.HC.HDRip.XViD.AC3-juggs[ETRG]",
"Lucy.2014.HC.HDRip.XViD-juggs[ETRG]",
"The Flash 2014 S01E04 HDTV x264-FUM[ettv]",
"South Park S18E05 HDTV x264-KILLERS [eztv]",
"The Flash 2014 S01E03 HDTV x264-LOL[ettv]",
"The Flash 2014 S01E01 HDTV x264-LOL[ettv]",
"Lucy 2014 Dual-Audio WEBRip 1400Mb",
"Teenage Mutant Ninja Turtles (HdRip / 2014)",
"Teenage Mutant Ninja Turtles (unknown_release_type / 2014)",
"The Simpsons S26E05 HDTV x264 PROPER-LOL [eztv]",
"2047 - Sights of Death (2014) 720p BrRip x264 - YIFY",
"Two and a Half Men S12E01 HDTV x264 REPACK-LOL [eztv]",
"Dinosaur 13 2014 WEBrip XviD AC3 MiLLENiUM",
"Teenage.Mutant.Ninja.Turtles.2014.HDRip.XviD.MP3-RARBG",
"Dawn.Of.The.Planet.of.The.Apes.2014.1080p.WEB-DL.DD51.H264-RARBG",
"Teenage.Mutant.Ninja.Turtles.2014.720p.HDRip.x264.AC3.5.1-RARBG",
"Gotham.S01E05.Viper.WEB-DL.x264.AAC",
"Into.The.Storm.2014.1080p.WEB-DL.AAC2.0.H264-RARBG",
"Lucy 2014 Dual-Audio 720p WEBRip",
"Into The Storm 2014 1080p BRRip x264 DTS-JYK",
"Sin.City.A.Dame.to.Kill.For.2014.1080p.BluRay.x264-SPARKS",
"WWE Monday Night Raw 3rd Nov 2014 HDTV x264-Sir Paul",
"Jack.And.The.Cuckoo-Clock.Heart.2013.BRRip XViD",
"WWE Hell in a Cell 2014 HDTV x264 SNHD",
"Dracula.Untold.2014.TS.XViD.AC3.MrSeeN-SiMPLE",
"The Missing 1x01 Pilot HDTV x264-FoV [eztv]",
"Doctor.Who.2005.8x11.Dark.Water.720p.HDTV.x264-FoV[rartv]",
"Gotham.S01E07.Penguins.Umbrella.WEB-DL.x264.AAC",
"One Shot [2014] DVDRip XViD-ViCKY",
"The Shaukeens 2014 Hindi (1CD) DvDScr x264 AAC...Hon3y",
"The Shaukeens (2014) 1CD DvDScr Rip x264 [DDR]",
"Annabelle.2014.1080p.PROPER.HC.WEBRip.x264.AAC.2.0-RARBG",
"Interstellar (2014) CAM ENG x264 AAC-CPG",
"Guardians of the Galaxy (2014) Dual Audio DVDRip AVI",
"Eliza Graves (2014) Dual Audio WEB-DL 720p MKV x264",
"WWE Monday Night Raw 2014 11 10 WS PDTV x264-RKOFAN1990 -={SPARR",
"Sons.of.Anarchy.S01E03",
"doctor_who_2005.8x12.death_in_heaven.720p_hdtv_x264-fov",
"breaking.bad.s01e01.720p.bluray.x264-reward",
"Game of Thrones - 4x03 - Breaker of Chains",
"[720pMkv.Com]_sons.of.anarchy.s05e10.480p.BluRay.x264-GAnGSteR",
"[ www.Speed.cd ] -Sons.of.Anarchy.S07E07.720p.HDTV.X264-DIMENSION",
"Community.s02e20.rus.eng.720p.Kybik.v.Kybe",
"The.Jungle.Book.2016.3D.1080p.BRRip.SBS.x264.AAC-ETRG",
"Ant-Man.2015.3D.1080p.BRRip.Half-SBS.x264.AAC-m2g",
"Ice.Age.Collision.Course.2016.READNFO.720p.HDRIP.X264.AC3.TiTAN",
"Red.Sonja.Queen.Of.Plagues.2016.BDRip.x264-W4F[PRiME]",
"The Purge: Election Year (2016) HC - 720p HDRiP - 900MB - ShAaNi",
"War Dogs (2016) HDTS 600MB - NBY",
"The Hateful Eight (2015) 720p BluRay - x265 HEVC - 999MB - ShAaN",
"The.Boss.2016.UNRATED.720p.BRRip.x264.AAC-ETRG",
"Return.To.Snowy.River.1988.iNTERNAL.DVDRip.x264-W4F[PRiME]",
"Akira (2016) - UpScaled - 720p - DesiSCR-Rip - Hindi - x264 - AC3 - 5.1 - Mafiaking - M2Tv",
"Ben Hur 2016 TELESYNC x264 AC3 MAXPRO",
"The.Secret.Life.of.Pets.2016.HDRiP.AAC-LC.x264-LEGi0N",
"[HorribleSubs] Clockwork Planet - 10 [480p].mkv",
"[HorribleSubs] Detective Conan - 862 [1080p].mkv",
"thomas.and.friends.s19e09_s20e14.convert.hdtv.x264-w4f[eztv].mkv",
"Blade.Runner.2049.2017.1080p.WEB-DL.DD5.1.H264-FGT-[rarbg.to]",
"2012(2009).1080p.Dual Audio(Hindi+English) 5.1 Audios",
"2012 (2009) 1080p BrRip x264 - 1.7GB - YIFY",
"2012 2009 x264 720p Esub BluRay 6.0 Dual Audio English Hindi GOPISAHI",
}
func TestParser(t *testing.T) {
for i, fname := range testData {
t.Run(fmt.Sprintf("golden_file_%03d", i), func(t *testing.T) {
tor, err := Parse(fname)
if err != nil {
t.Fatalf("test %v: parser error:\n %v", i, err)
}
goldenFilename := filepath.Join("testdata", fmt.Sprintf("golden_file_%03d.json", i))
if *updateGoldenFiles {
buf, err := json.MarshalIndent(tor, "", " ")
if err != nil {
t.Fatalf("error marshaling result: %v", err)
}
if err = ioutil.WriteFile(goldenFilename, buf, 0644); err != nil {
t.Fatalf("unable to update golden file: %v", err)
}
}
buf, err := ioutil.ReadFile(goldenFilename)
if err != nil {
t.Fatalf("error loading golden file: %v", err)
}
var want TorrentInfo
err = json.Unmarshal(buf, &want)
if err != nil {
t.Fatalf("error unmarshalling golden file %v: %v", goldenFilename, err)
}
if !reflect.DeepEqual(*tor, want) {
t.Fatalf("test %v: wrong result for %q\nwant:\n %v\ngot:\n %v", i, fname, want, *tor)
}
})
}
}