add new api
This commit is contained in:
108
internal/shared/validator/authorization_url_test.go
Normal file
108
internal/shared/validator/authorization_url_test.go
Normal file
@@ -0,0 +1,108 @@
|
||||
package validator
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/go-playground/validator/v10"
|
||||
)
|
||||
|
||||
func TestValidateAuthorizationURL(t *testing.T) {
|
||||
validate := validator.New()
|
||||
RegisterCustomValidators(validate)
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
url string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "有效的PDF URL",
|
||||
url: "https://example.com/document.pdf",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "有效的JPG URL",
|
||||
url: "https://example.com/image.jpg",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "有效的JPEG URL",
|
||||
url: "https://example.com/image.jpeg",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "有效的PNG URL",
|
||||
url: "https://example.com/image.png",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "有效的BMP URL",
|
||||
url: "https://example.com/image.bmp",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "HTTP协议的PDF URL",
|
||||
url: "http://example.com/document.pdf",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "带查询参数的PDF URL",
|
||||
url: "https://example.com/document.pdf?version=1.0",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "带路径的PDF URL",
|
||||
url: "https://example.com/files/documents/contract.pdf",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "无效的URL格式",
|
||||
url: "not-a-url",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "不支持的文件类型",
|
||||
url: "https://example.com/document.doc",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "不支持的文件类型2",
|
||||
url: "https://example.com/document.txt",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "没有文件扩展名",
|
||||
url: "https://example.com/document",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "FTP协议(不支持)",
|
||||
url: "ftp://example.com/document.pdf",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "空字符串",
|
||||
url: "",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "大写扩展名",
|
||||
url: "https://example.com/document.PDF",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "混合大小写扩展名",
|
||||
url: "https://example.com/document.JpG",
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := validate.Var(tt.url, "authorization_url")
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("validateAuthorizationURL() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user