ass_test.go 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package ass
  2. import (
  3. "github.com/allanpk716/ChineseSubFinder/internal/pkg"
  4. "github.com/allanpk716/ChineseSubFinder/internal/types"
  5. "path"
  6. "testing"
  7. )
  8. func TestParser_DetermineFileTypeFromFile(t *testing.T) {
  9. testDataPath := "../../../../TestData/sub_parser"
  10. testRootDir, err := pkg.CopyTestData(testDataPath)
  11. if err != nil {
  12. t.Fatal(err)
  13. }
  14. type args struct {
  15. filePath string
  16. }
  17. tests := []struct {
  18. name string
  19. args args
  20. wantNil bool
  21. wantErr bool
  22. wantLang types.Language
  23. }{
  24. {name: "1", args: args{filePath: filepath.Join(testRootDir, "[xunlei]_0_C3A5CUsers5CAdministrator5CDesktop5CThe Boss Baby Family Business_S0E0.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  25. {name: "2", args: args{filePath: filepath.Join(testRootDir, "Loki - S01E01 - Glorious Purpose WEBDL-1080p Proper.chs[subhd].ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  26. {name: "3", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.简体&英文.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  27. {name: "4", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.繁体&英文.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseTraditionalEnglish},
  28. {name: "5", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.繁体.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseTraditional},
  29. // 特殊一点的字幕
  30. {name: "6", args: args{filePath: filepath.Join(testRootDir, "SP-Antebellum.1080p.WEB-DL.DD5.1.H.264-EVO.zh.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  31. {name: "7", args: args{filePath: filepath.Join(testRootDir, "SP-Gunpowder.Milkshake.2021.1080p.WEB.h264-RUMOUR[rarbg].chinese(简).ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  32. {name: "8", args: args{filePath: filepath.Join(testRootDir, "SP-One.Hundred.And.One.Dalmatians.1961.1080p.BluRay.x264.AAC5.1-[YTS.LT].zh-cn.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  33. {name: "9", args: args{filePath: filepath.Join(testRootDir, "SP-Pirates.of.the.Caribbean.The.Curse.of.the.Black.Pearl.2003.BluRay.1080p.x265.10bit.2Audio.MNHD-FRDS.zh-cn.ssa")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  34. {name: "10", args: args{filePath: filepath.Join(testRootDir, "SP-Schindlers.List.1993.BluRay.1080p.x265.10bit.2Audio.MNHD-FRDS.zh-cn.ass")}, wantNil: false, wantErr: false, wantLang: types.ChineseSimpleEnglish},
  35. }
  36. for _, tt := range tests {
  37. t.Run(tt.name, func(t *testing.T) {
  38. p := Parser{}
  39. bFind, got, err := p.DetermineFileTypeFromFile(tt.args.filePath)
  40. if (err != nil) != tt.wantErr {
  41. t.Errorf("DetermineFileTypeFromFile() error = %v, wantErr %v", err, tt.wantErr)
  42. t.Fatal(err)
  43. return
  44. }
  45. if bFind == false {
  46. t.Fatal("not support sub type")
  47. }
  48. if got == nil && tt.wantNil == true {
  49. } else if got != nil && tt.wantNil == false {
  50. if got.Lang != tt.wantLang {
  51. t.Fatal("not wanted lang")
  52. }
  53. } else {
  54. t.Fatal("DetermineFileTypeFromFile got:", got, "wantNil:", tt.wantNil)
  55. }
  56. println(got.Name, got.Ext, got.Lang)
  57. })
  58. }
  59. }