gengx
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRenderSMSTemplateParams(t *testing.T) {
|
||||
aliyun, err := renderSMSTemplateParams("aliyun", `{"code":"{{code}}","minutes":"{{minutes}}"}`, "086421", 301)
|
||||
if err != nil || aliyun != `{"code":"086421","minutes":"6"}` {
|
||||
t.Fatalf("unexpected aliyun template parameters: %q, %v", aliyun, err)
|
||||
}
|
||||
tencent, err := renderSMSTemplateParams("tencent", `["{{code}}","{{minutes}}"]`, "086421", 300)
|
||||
if err != nil || tencent != `["086421","5"]` {
|
||||
t.Fatalf("unexpected tencent template parameters: %q, %v", tencent, err)
|
||||
}
|
||||
if _, err = renderSMSTemplateParams("huawei", `{"code":"{{code}}"}`, "086421", 300); err == nil {
|
||||
t.Fatal("huawei parameters must reject a non-array JSON value")
|
||||
}
|
||||
}
|
||||
|
||||
func TestHuaweiWSSE(t *testing.T) {
|
||||
authorization, wsse := huaweiWSSE("app-key", "secret", "abc", "2026-08-25T10:00:00Z")
|
||||
if authorization != `WSSE realm="SDP",profile="UsernameToken",type="Appkey"` {
|
||||
t.Fatalf("unexpected authorization header: %s", authorization)
|
||||
}
|
||||
if !strings.Contains(wsse, `Username="app-key"`) || !strings.Contains(wsse, `PasswordDigest="imMh4+lxH6z6wYNFDE3+ycvpRGbC7S/R2Q7ehhnXEqU="`) {
|
||||
t.Fatalf("unexpected X-WSSE header: %s", wsse)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseSMSProviderEndpoint(t *testing.T) {
|
||||
tests := []struct {
|
||||
provider string
|
||||
endpoint string
|
||||
valid bool
|
||||
}{
|
||||
{provider: "aliyun", endpoint: "https://dysmsapi.aliyuncs.com", valid: true},
|
||||
{provider: "tencent", endpoint: "https://sms.tencentcloudapi.com/", valid: true},
|
||||
{provider: "huawei", endpoint: "https://smsapi.cn-north-4.myhuaweicloud.com:443/sms/batchSendSms/v1", valid: true},
|
||||
{provider: "aliyun", endpoint: "http://dysmsapi.aliyuncs.com", valid: false},
|
||||
{provider: "tencent", endpoint: "https://sms.tencentcloudapi.com/custom", valid: false},
|
||||
{provider: "huawei", endpoint: "https://user:pass@example.com/sms/batchSendSms/v1", valid: false},
|
||||
{provider: "huawei", endpoint: "https://example.com/sms/batchSendSms/v1?token=secret", valid: false},
|
||||
}
|
||||
for _, test := range tests {
|
||||
_, err := parseSMSProviderEndpoint(test.provider, test.endpoint)
|
||||
if (err == nil) != test.valid {
|
||||
t.Errorf("parseSMSProviderEndpoint(%q, %q) error = %v, valid = %v", test.provider, test.endpoint, err, test.valid)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user