useragent_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright (c) [2022] [巴拉迪维 BaratSemet]
  2. // [ohUrlShortener] is licensed under Mulan PSL v2.
  3. // You can use this software according to the terms and conditions of the Mulan PSL v2.
  4. // You may obtain a copy of Mulan PSL v2 at:
  5. // http://license.coscl.org.cn/MulanPSL2
  6. // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
  7. // See the Mulan PSL v2 for more details.
  8. package utils
  9. import (
  10. "testing"
  11. )
  12. func TestIsWeChatUA(t *testing.T) {
  13. ua1 := "mozilla/5.0 (linux; u; android 4.1.2; zh-cn; mi-one plus build/jzo54k) applewebkit/534.30 (khtml, like gecko) version/4.0 mobile safari/534.30 micromessenger/5.0.1.352"
  14. ua2 := "mozilla/5.0 (iphone; cpu iphone os 5_1_1 like mac os x) applewebkit/534.46 (khtml, like gecko) mobile/9b206 micromessenger/5.0"
  15. ua3 := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
  16. type args struct {
  17. ua string
  18. }
  19. tests := []struct {
  20. name string
  21. args args
  22. want bool
  23. }{
  24. {name: "Test1", args: args{ua: ua1}, want: true},
  25. {name: "Test2", args: args{ua: ua2}, want: true},
  26. {name: "Test3", args: args{ua: ua3}, want: false},
  27. }
  28. for _, tt := range tests {
  29. t.Run(tt.name, func(t *testing.T) {
  30. if got := IsWeChatUA(tt.args.ua); got != tt.want {
  31. t.Errorf("IsWeChatUA() = %v, want %v", got, tt.want)
  32. }
  33. })
  34. }
  35. }
  36. func TestIsSafari(t *testing.T) {
  37. ua1 := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
  38. ua2 := "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Version/11 Safari/537.36"
  39. type args struct {
  40. ua string
  41. }
  42. tests := []struct {
  43. name string
  44. args args
  45. want bool
  46. }{
  47. {name: "Test1", args: args{ua: ua1}, want: false},
  48. {name: "Test2", args: args{ua: ua2}, want: true},
  49. }
  50. for _, tt := range tests {
  51. t.Run(tt.name, func(t *testing.T) {
  52. if got := IsSafari(tt.args.ua); got != tt.want {
  53. t.Errorf("IsSafari() = %v, want %v", got, tt.want)
  54. }
  55. })
  56. }
  57. }