-
Notifications
You must be signed in to change notification settings - Fork 4
/
aliSimple_test.go
74 lines (64 loc) · 2.44 KB
/
aliSimple_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package alidns
import (
"context"
"fmt"
"testing"
)
const AccessKeyID = "<Input your AccessKeyID here>"
const AccessKeySecret = "<Input your AccessKeySecret here>"
func Test_URLEncode(t *testing.T) {
s0 := urlEncode("AccessKeyId=testid&Action=DescribeDomainRecords")
if s0 != "AccessKeyId%3Dtestid%26Action%3DDescribeDomainRecords" {
t.Log(s0)
t.Fail()
}
t.Log(s0)
}
var cl0 = &aliClient{
APIHost: fmt.Sprintf(addrOfAPI, "https"),
reqMap: []vKey{
{key: "AccessKeyId", val: "testid"},
{key: "Format", val: "XML"},
{key: "Action", val: "DescribeDomainRecords"},
{key: "SignatureMethod", val: "HMAC-SHA1"},
{key: "DomainName", val: "example.com"},
{key: "SignatureVersion", val: "1.0"},
{key: "SignatureNonce", val: "f59ed6a9-83fc-473b-9cc6-99c95df3856e"},
{key: "Timestamp", val: "2016-03-24T16:41:54Z"},
{key: "Version", val: "2015-01-09"},
},
sigStr: "",
sigPwd: "testsecret",
}
func Test_AliClintReq(t *testing.T) {
str := cl0.reqMapToStr()
t.Log("map to str:" + str + "\n")
str = cl0.reqStrToSign(str, "GET")
// validate sign string from doc: https://help.aliyun.com/document_detail/29747.html#:~:text=%E9%82%A3%E4%B9%88-,stringtosign
if goVer() > 1.20 && str != "GET&%2F&AccessKeyId%3Dtestid&Action%3DDescribeDomainRecords&DomainName%3Dexample.com&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3Df59ed6a9-83fc-473b-9cc6-99c95df3856e&SignatureVersion%3D1.0&Timestamp%3D2016-03-24T16%253A41%253A54Z&Version%3D2015-01-09" {
t.Error("sign str error")
}
if goVer() < 1.20 && str != "GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeDomainRecords%26DomainName%3Dexample.com%26Format%3DXML%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3Df59ed6a9-83fc-473b-9cc6-99c95df3856e%26SignatureVersion%3D1.0%26Timestamp%3D2016-03-24T16%253A41%253A54Z%26Version%3D2015-01-09" {
t.Error("sign str error")
}
t.Log("sign str:" + str + "\n")
t.Log("signed base64:" + signStr(str, cl0.sigPwd) + "\n")
}
func Test_AppendDupReq(t *testing.T) {
err := cl0.addReqBody("Version", "100")
if err == nil {
t.Fail()
}
}
var p0 = Provider{
AccKeyID: AccessKeyID,
AccKeySecret: AccessKeySecret,
}
func Test_RequestUrl(t *testing.T) {
p0.getClient()
p0.client.aClient.addReqBody("Action", "DescribeDomainRecords")
p0.client.aClient.addReqBody("DomainName", "viscrop.top")
p0.client.aClient.setReqBody("Timestamp", "2020-10-16T20:10:54Z")
r, err := p0.client.applyReq(context.TODO(), "GET", nil)
t.Log("url:", r.URL.String(), "err:", err)
}