github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/util/wxver_test.go (about)

     1  package util
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestWXVersion(t *testing.T) {
     8  	userAgent := `Mozilla/5.0 (Linux; Android 4.4.4; Che1-CL10 Build/Che1-CL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043128 Safari/537.36 MicroMessenger/6.5.7.1041 NetType/WIFI Language/zh_CN`
     9  	x, y, z, w, err := WXVersion(userAgent)
    10  	if err != nil {
    11  		t.Error(err)
    12  		return
    13  	}
    14  	if x != 6 || y != 5 || z != 7 || w != 1041 {
    15  		t.Error("获取了错误的版本号")
    16  		return
    17  	}
    18  
    19  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.3`
    20  	x, y, z, w, err = WXVersion(userAgent)
    21  	if err != nil {
    22  		t.Error(err)
    23  		return
    24  	}
    25  	if x != 5 || y != 3 || z != 0 {
    26  		t.Error("获取了错误的版本号")
    27  		return
    28  	}
    29  
    30  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.3.1`
    31  	x, y, z, w, err = WXVersion(userAgent)
    32  	if err != nil {
    33  		t.Error(err)
    34  		return
    35  	}
    36  	if x != 5 || y != 3 || z != 1 {
    37  		t.Error("获取了错误的版本号")
    38  		return
    39  	}
    40  
    41  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.3.1.5`
    42  	x, y, z, w, err = WXVersion(userAgent)
    43  	if err != nil {
    44  		t.Error(err)
    45  		return
    46  	}
    47  	if x != 5 || y != 3 || z != 1 {
    48  		t.Error("获取了错误的版本号")
    49  		return
    50  	}
    51  
    52  	userAgent = `Mozilla5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit534.46(KHTML,like Geocko)Mobile9B206 MicroMessenger5.0`
    53  	_, _, _, _, err = WXVersion(userAgent)
    54  	if err == nil {
    55  		t.Errorf("从 %#q 获取版本号应该出错, 但是目前却没有错误!", userAgent)
    56  		return
    57  	}
    58  
    59  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/`
    60  	_, _, _, _, err = WXVersion(userAgent)
    61  	if err == nil {
    62  		t.Errorf("从 %#q 获取版本号应该出错, 但是目前却没有错误!", userAgent)
    63  		return
    64  	}
    65  
    66  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5x`
    67  	x, y, z, w, err = WXVersion(userAgent)
    68  	if err != nil {
    69  		t.Error(err)
    70  		return
    71  	}
    72  	if x != 5 || y != 0 || z != 0 || w != 0 {
    73  		t.Error("获取了错误的版本号")
    74  		return
    75  	}
    76  
    77  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.3x`
    78  	x, y, z, w, err = WXVersion(userAgent)
    79  	if err != nil {
    80  		t.Error(err)
    81  		return
    82  	}
    83  	if x != 5 || y != 3 || z != 0 || w != 0 {
    84  		t.Error("获取了错误的版本号")
    85  		return
    86  	}
    87  
    88  	userAgent = `Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.3.1x`
    89  	x, y, z, w, err = WXVersion(userAgent)
    90  	if err != nil {
    91  		t.Error(err)
    92  		return
    93  	}
    94  	if x != 5 || y != 3 || z != 1 || w != 0 {
    95  		t.Error("获取了错误的版本号")
    96  		return
    97  	}
    98  
    99  	userAgent = `Mozilla/5.0 (Linux; Android 8.0.0; MI 6 Build/OPR1.170623.027; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.84 Mobile Safari/537.36 MicroMessenger/6.6.2.1240(0x26060240) NetType/WIFI Language/zh_CN`
   100  	x, y, z, w, err = WXVersion(userAgent)
   101  	if err != nil {
   102  		t.Error(err)
   103  		return
   104  	}
   105  	if x != 6 || y != 6 || z != 2 || w != 1240 {
   106  		t.Error("获取了错误的版本号")
   107  		return
   108  	}
   109  }