subParserHub_test.go 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package sub_parser_hub
  2. import (
  3. "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_parser/ass"
  4. "github.com/allanpk716/ChineseSubFinder/internal/logic/sub_parser/srt"
  5. "github.com/allanpk716/ChineseSubFinder/internal/pkg/my_util"
  6. "path/filepath"
  7. "testing"
  8. )
  9. func TestSubParserHub_IsSubHasChinese(t *testing.T) {
  10. testDataPath := "../../../TestData/sub_parser"
  11. testRootDir, err := my_util.CopyTestData(testDataPath)
  12. if err != nil {
  13. t.Fatal(err)
  14. }
  15. type args struct {
  16. filePath string
  17. }
  18. tests := []struct {
  19. name string
  20. args args
  21. want bool
  22. }{
  23. {name: "1", args: args{filePath: filepath.Join(testRootDir, "[xunlei]_0_C3A5CUsers5CAdministrator5CDesktop5CThe Boss Baby Family Business_S0E0.ass")}, want: true},
  24. {name: "2", args: args{filePath: filepath.Join(testRootDir, "Loki - S01E01 - Glorious Purpose WEBDL-1080p Proper.chs[subhd].ass")}, want: true},
  25. {name: "3", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.简体&英文.ass")}, want: true},
  26. {name: "4", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.繁体&英文.ass")}, want: true},
  27. {name: "5", args: args{filePath: filepath.Join(testRootDir, "oslo.2021.1080p.web.h264-naisu.繁体.ass")}, want: true},
  28. {name: "6", args: args{filePath: filepath.Join(testRootDir, "[zimuku]_5_Loki.S01E02.The.Variant.1080p.DSNP.WEB-DL.DDP5.1.Atmos.H.264-CM.chs&eng.srt")}, want: true},
  29. {name: "7", args: args{filePath: filepath.Join(testRootDir, "[zimuku]_5_Loki.S01E03.Lamentis.1080p.DSNP.WEB-DL.DDP5.1.H.264-TOMMY.chs&eng.srt")}, want: true},
  30. }
  31. subParserHub := NewSubParserHub(ass.NewParser(), srt.NewParser())
  32. for _, tt := range tests {
  33. t.Run(tt.name, func(t *testing.T) {
  34. if got := subParserHub.IsSubHasChinese(tt.args.filePath); got != tt.want {
  35. t.Errorf("IsSubHasChinese() = %v, want %v", got, tt.want)
  36. }
  37. })
  38. }
  39. }
  40. func TestIsEmbySubChineseLangStringWanted(t *testing.T) {
  41. type args struct {
  42. inLangString string
  43. }
  44. tests := []struct {
  45. name string
  46. args args
  47. want bool
  48. }{
  49. {name: "00", args: args{inLangString: "chinese(简英,subhd)"}, want: true},
  50. {name: "01", args: args{inLangString: "chinese(简英,xunlei)"}, want: true},
  51. {name: "02", args: args{inLangString: "chi"}, want: true},
  52. {name: "03", args: args{inLangString: "chs"}, want: true},
  53. {name: "04", args: args{inLangString: "cht"}, want: true},
  54. {name: "05", args: args{inLangString: "zh-hans"}, want: true},
  55. {name: "06", args: args{inLangString: "zh-hant"}, want: true},
  56. {name: "07", args: args{inLangString: "zh-CN"}, want: true},
  57. {name: "08", args: args{inLangString: "zh-TW"}, want: true},
  58. {name: "09", args: args{inLangString: "zh-sg"}, want: true},
  59. {name: "10", args: args{inLangString: "zh-my"}, want: true},
  60. {name: "11", args: args{inLangString: "zh-hk"}, want: true},
  61. {name: "12", args: args{inLangString: "zh-mo"}, want: true},
  62. {name: "13", args: args{inLangString: "zh"}, want: true},
  63. {name: "14", args: args{inLangString: "en"}, want: true},
  64. {name: "15", args: args{inLangString: "ko"}, want: true},
  65. {name: "16", args: args{inLangString: "ja"}, want: true},
  66. {name: "17", args: args{inLangString: "zho"}, want: true},
  67. {name: "18", args: args{inLangString: "eng"}, want: true},
  68. {name: "19", args: args{inLangString: "kor"}, want: true},
  69. {name: "20", args: args{inLangString: "jpn"}, want: true},
  70. {name: "21", args: args{inLangString: "chi"}, want: true},
  71. {name: "22", args: args{inLangString: "eng"}, want: true},
  72. {name: "23", args: args{inLangString: "kor"}, want: true},
  73. {name: "24", args: args{inLangString: "jpn"}, want: true},
  74. }
  75. for _, tt := range tests {
  76. t.Run(tt.name, func(t *testing.T) {
  77. if got := IsEmbySubChineseLangStringWanted(tt.args.inLangString); got != tt.want {
  78. t.Errorf("IsEmbySubChineseLangStringWanted() = %v, want %v", got, tt.want)
  79. }
  80. })
  81. }
  82. }