GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Passed
Pull Request — master (#16)
by zuochao
08:47
created

utils.TestGetUUId   A

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
dl 0
loc 6
rs 10
c 0
b 0
f 0
nop 1
1
package utils
2
3
import (
4
	"crypto"
5
	"crypto/rsa"
6
	"errors"
7
	"io"
8
	"regexp"
9
	"testing"
10
11
	"github.com/stretchr/testify/assert"
12
)
13
14
func TestGetUUId(t *testing.T) {
15
	uuid := newUUId()
16
	assert.Equal(t, 16, len(uuid))
17
	assert.Equal(t, 36, len(uuid.String()))
18
	uuidString := GetUUId()
19
	assert.Equal(t, 32, len(uuidString))
20
}
21
22
func TestGetMD5Base64(t *testing.T) {
23
	assert.Equal(t, "ERIHLmRX2uZmssDdxQnnxQ==",
24
		GetMD5Base64([]byte("That's all folks!!")))
25
	assert.Equal(t, "GsJRdI3kAbAnHo/0+3wWJw==",
26
		GetMD5Base64([]byte("中文也没啥问题")))
27
}
28
29
func TestGetTimeInFormatISO8601(t *testing.T) {
30
	s := GetTimeInFormatISO8601()
31
	assert.Equal(t, 20, len(s))
32
	// 2006-01-02T15:04:05Z
33
	re := regexp.MustCompile(`^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$`)
34
	assert.True(t, re.MatchString(s))
35
}
36
37
func TestGetURLFormedMap(t *testing.T) {
38
	m := make(map[string]string)
39
	m["key"] = "value"
40
	s := GetURLFormedMap(m)
41
	assert.Equal(t, "key=value", s)
42
	m["key2"] = "http://domain/?key=value&key2=value2"
43
	s2 := GetURLFormedMap(m)
44
	assert.Equal(t, "key=value&key2=http%3A%2F%2Fdomain%2F%3Fkey%3Dvalue%26key2%3Dvalue2", s2)
45
}
46
47
func TestShaHmac1(t *testing.T) {
48
	result := ShaHmac1("source", "secret")
49
	assert.Equal(t, "Jv4yi8SobFhg5t1C7nWLbhBSFZQ=", result)
50
51
	assert.Equal(t, "CqCYIa39h9SSWuXnTz8F5hh9UPA=", ShaHmac1("中文", "secret"))
52
}
53
54
func TestSha256WithRsa(t *testing.T) {
55
	secret := `
56
MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAOJC+2WXtkXZ+6sa
57
3+qJp4mDOsiZb3BghHT9nVbjTeaw4hsZWHYxQ6l6XDmTg4twPB59LOGAlAjYrT31
58
3pdwEawnmdf6zyF93Zvxxpy7lO2HoxYKSjbtXO4I0pcq3WTnw2xlbhqHvrcuWwt+
59
FqH9akzcnwHjc03siZBzt/dwDL3vAgMBAAECgYEAzwgZPqFuUEYgaTVDFDl2ynYA
60
kNMMzBgUu3Pgx0Nf4amSitdLQYLcdbQXtTtMT4eYCxHgwkpDqkCRbLOQRKNwFo0I
61
oaCuhjZlxWcKil4z4Zb/zB7gkeuXPOVUjFSS3FogsRWMtnNAMgR/yJRlbcg/Puqk
62
Magt/yDk+7cJCe6H96ECQQDxMT4S+tVP9nOw//QT39Dk+kWe/YVEhnWnCMZmGlEq
63
1gnN6qpUi68ts6b3BVgrDPrPN6wm/Z9vpcKNeWpIvxXRAkEA8CcT2UEUwDGRKAUu
64
WVPJqdAJjpjc072eRF5g792NyO+TAF6thBlDKNslRvFQDB6ymLsjfy8JYCnGbbSb
65
WqbHvwJBAIs7KeI6+jiWxGJA3t06LpSABQCqyOut0u0Bm8YFGyXnOPGtrXXwzMdN
66
Fe0zIJp5e69zK+W2Mvt4bL7OgBROeoECQQDsE+4uLw0gFln0tosmovhmp60NcfX7
67
bLbtzL2MbwbXlbOztF7ssgzUWAHgKI6hK3g0LhsqBuo3jzmSVO43giZvAkEA08Nm
68
2TI9EvX6DfCVfPOiKZM+Pijh0xLN4Dn8qUgt3Tcew/vfj4WA2ZV6qiJqL01vMsHc
69
vftlY0Hs1vNXcaBgEA==`
70
	result := Sha256WithRsa("source", secret)
71
	assert.Equal(t, "UNyJPD27jjSNl70b02E/DUtgtNESdtAuxbNBZTlksk1t/GYjiQNRlFIubp/EGKcWsqs7p5SFKnNiSRqWG3A51VmJFBXXtyW1nwLC9xY/MbUj6JVWNYCuLkPWM942O+GAk7N+G8ZQZt7ib2MhruDAUmv1lLN26lDaCPBX2MJQJCo=", result)
72
73
	assert.Equal(t, "CKE0osxUnFFH+oYP3Q427saucBuignE+Mrni63G9w46yZFtVoXFOu5lNiNCnUtaPNpGmBf9X5oGCY+otqPf7bP93nB59rfdteQs0sS65PWH9yjH8RwYCWGCbuyRul/0qIv/nYYGzkLON1C1Vx9Z4Yep6llYuJang5RIXrAkQLmQ=", Sha256WithRsa("中文", secret))
74
}
75
76
func TestSha256WithRsa_DecodeString_Error(t *testing.T) {
77
	defer func() { // 进行异常捕捉
78
		err := recover()
79
		assert.NotNil(t, err)
80
		assert.Equal(t, "illegal base64 data at input byte 0", err.(error).Error())
81
	}()
82
	secret := `==`
83
	Sha256WithRsa("source", secret)
84
}
85
86
func TestSha256WithRsa_ParsePKCS8PrivateKey_Error(t *testing.T) {
87
	defer func() { // 进行异常捕捉
88
		err := recover()
89
		assert.NotNil(t, err)
90
		assert.Equal(t, "asn1: structure error: length too large", err.(error).Error())
91
	}()
92
	secret := `Jv4yi8SobFhg5t1C7nWLbhBSFZQ=`
93
	Sha256WithRsa("source", secret)
94
}
95
96
func TestHookRead(t *testing.T) {
97
	fn := func(p []byte) (n int, err error) {
98
		return 0, errors.New("hookRead")
99
	}
100
	result := hookRead(fn)
101
	n, err := result(nil)
102
	assert.Equal(t, 0, n)
103
	assert.Equal(t, "hookRead", err.Error())
104
105
	originHookRead := hookRead
106
	hookRead = func(old func(p []byte) (n int, err error)) func(p []byte) (n int, err error) {
107
		return fn
108
	}
109
	defer func() {
110
		err := recover()
111
		assert.Equal(t, "hookRead", err.(error).Error())
112
		hookRead = originHookRead
113
	}()
114
	safeRandom([]byte("credentialtest"))
115
}
116
117
func TestHookRSA(t *testing.T) {
118
	fn := func(rand io.Reader, priv *rsa.PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error) {
119
		return nil, errors.New("hookRSA")
120
	}
121
	result := hookRSA(fn)
122
	hash := crypto.Hash(10)
123
	byt, err := result(nil, nil, hash, nil)
124
	assert.Nil(t, byt)
125
	assert.Equal(t, "hookRSA", err.Error())
126
127
	originHookRSA := hookRSA
128
	hookRSA = func(old func(rand io.Reader, priv *rsa.PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error)) func(rand io.Reader, priv *rsa.PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error) {
129
		return fn
130
	}
131
	defer func() {
132
		err := recover()
133
		assert.Equal(t, "hookRSA", err.(error).Error())
134
		hookRSA = originHookRSA
135
	}()
136
	secret := `
137
MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAOJC+2WXtkXZ+6sa
138
3+qJp4mDOsiZb3BghHT9nVbjTeaw4hsZWHYxQ6l6XDmTg4twPB59LOGAlAjYrT31
139
3pdwEawnmdf6zyF93Zvxxpy7lO2HoxYKSjbtXO4I0pcq3WTnw2xlbhqHvrcuWwt+
140
FqH9akzcnwHjc03siZBzt/dwDL3vAgMBAAECgYEAzwgZPqFuUEYgaTVDFDl2ynYA
141
kNMMzBgUu3Pgx0Nf4amSitdLQYLcdbQXtTtMT4eYCxHgwkpDqkCRbLOQRKNwFo0I
142
oaCuhjZlxWcKil4z4Zb/zB7gkeuXPOVUjFSS3FogsRWMtnNAMgR/yJRlbcg/Puqk
143
Magt/yDk+7cJCe6H96ECQQDxMT4S+tVP9nOw//QT39Dk+kWe/YVEhnWnCMZmGlEq
144
1gnN6qpUi68ts6b3BVgrDPrPN6wm/Z9vpcKNeWpIvxXRAkEA8CcT2UEUwDGRKAUu
145
WVPJqdAJjpjc072eRF5g792NyO+TAF6thBlDKNslRvFQDB6ymLsjfy8JYCnGbbSb
146
WqbHvwJBAIs7KeI6+jiWxGJA3t06LpSABQCqyOut0u0Bm8YFGyXnOPGtrXXwzMdN
147
Fe0zIJp5e69zK+W2Mvt4bL7OgBROeoECQQDsE+4uLw0gFln0tosmovhmp60NcfX7
148
bLbtzL2MbwbXlbOztF7ssgzUWAHgKI6hK3g0LhsqBuo3jzmSVO43giZvAkEA08Nm
149
2TI9EvX6DfCVfPOiKZM+Pijh0xLN4Dn8qUgt3Tcew/vfj4WA2ZV6qiJqL01vMsHc
150
vftlY0Hs1vNXcaBgEA==`
151
	Sha256WithRsa("source", secret)
152
}
153