mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-10-31 02:01:44 +08:00
72 lines
2.2 KiB
Go
72 lines
2.2 KiB
Go
package enums
|
|
|
|
import "testing"
|
|
|
|
// 批量任务枚举白名单用例。这四个字段来自管理端提交,未知值以前会一路走到执行侧,
|
|
// 表现为"任务像成功一样什么都没做"或"走进远端拉取分支"。
|
|
|
|
func TestIsValidBatchType(t *testing.T) {
|
|
for _, v := range []string{BATCHTASK_IPALLOW, BATCHTASK_IPDENY, BATCHTASK_IPGROUP, BATCHTASK_SENSITIVE} {
|
|
if !IsValidBatchType(v) {
|
|
t.Fatalf("%q 应为合法任务类型", v)
|
|
}
|
|
}
|
|
for _, v := range []string{"", " ", "IPDENY", "ipdeny ", "rule", "../etc", "sensitive;drop"} {
|
|
if IsValidBatchType(v) {
|
|
t.Fatalf("%q 必须被拒", v)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsValidBatchSourceType(t *testing.T) {
|
|
// remote 是两个前端在用的值,url 是模型注释里的历史写法,都必须认
|
|
for _, v := range []string{BATCHTASK_SOURCETYPE_LOCAL, BATCHTASK_SOURCETYPE_REMOTE, BATCHTASK_SOURCETYPE_URL} {
|
|
if !IsValidBatchSourceType(v) {
|
|
t.Fatalf("%q 应为合法来源类型", v)
|
|
}
|
|
}
|
|
for _, v := range []string{"", "LOCAL", "file", "ftp", "local "} {
|
|
if IsValidBatchSourceType(v) {
|
|
t.Fatalf("%q 必须被拒", v)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsBatchLocalSource(t *testing.T) {
|
|
if !IsBatchLocalSource(BATCHTASK_SOURCETYPE_LOCAL) {
|
|
t.Fatal("local 应判定为本地来源")
|
|
}
|
|
// 非 local 一律按远端处理,与执行侧分支保持一致
|
|
for _, v := range []string{BATCHTASK_SOURCETYPE_REMOTE, BATCHTASK_SOURCETYPE_URL, "", "LOCAL"} {
|
|
if IsBatchLocalSource(v) {
|
|
t.Fatalf("%q 不应判定为本地来源", v)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsValidBatchTriggerType(t *testing.T) {
|
|
for _, v := range []string{BATCHTASK_TRIGGERTYPE_CRON, BATCHTASK_TRIGGERTYPE_MANUAL} {
|
|
if !IsValidBatchTriggerType(v) {
|
|
t.Fatalf("%q 应为合法触发类型", v)
|
|
}
|
|
}
|
|
for _, v := range []string{"", "CRON", "auto", "cron "} {
|
|
if IsValidBatchTriggerType(v) {
|
|
t.Fatalf("%q 必须被拒", v)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsValidBatchExecuteMethod(t *testing.T) {
|
|
for _, v := range []string{BATCHTASK_EXECUTEMETHODAPPEND, BATCHTASK_EXECUTEMETHODOVERWRITE} {
|
|
if !IsValidBatchExecuteMethod(v) {
|
|
t.Fatalf("%q 应为合法执行方式", v)
|
|
}
|
|
}
|
|
for _, v := range []string{"", "APPEND", "sync", "replace", "append "} {
|
|
if IsValidBatchExecuteMethod(v) {
|
|
t.Fatalf("%q 必须被拒", v)
|
|
}
|
|
}
|
|
}
|