mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 04:42:33 +02:00
106 lines
2.8 KiB
Go
106 lines
2.8 KiB
Go
package docker
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
E "github.com/yusing/go-proxy/internal/error"
|
|
. "github.com/yusing/go-proxy/internal/utils/testing"
|
|
)
|
|
|
|
func makeLabel(namespace string, alias string, field string) string {
|
|
return fmt.Sprintf("%s.%s.%s", namespace, alias, field)
|
|
}
|
|
|
|
func TestParseLabel(t *testing.T) {
|
|
alias := "foo"
|
|
field := "ip"
|
|
v := "bar"
|
|
pl, err := ParseLabel(makeLabel(NSHomePage, alias, field), v)
|
|
ExpectNoError(t, err.Error())
|
|
ExpectEqual(t, pl.Namespace, NSHomePage)
|
|
ExpectEqual(t, pl.Target, alias)
|
|
ExpectEqual(t, pl.Attribute, field)
|
|
ExpectEqual(t, pl.Value.(string), v)
|
|
}
|
|
|
|
func TestStringProxyLabel(t *testing.T) {
|
|
v := "bar"
|
|
pl, err := ParseLabel(makeLabel(NSProxy, "foo", "ip"), v)
|
|
ExpectNoError(t, err.Error())
|
|
ExpectEqual(t, pl.Value.(string), v)
|
|
}
|
|
|
|
func TestBoolProxyLabelValid(t *testing.T) {
|
|
tests := map[string]bool{
|
|
"true": true,
|
|
"TRUE": true,
|
|
"yes": true,
|
|
"1": true,
|
|
"false": false,
|
|
"FALSE": false,
|
|
"no": false,
|
|
"0": false,
|
|
}
|
|
|
|
for k, v := range tests {
|
|
pl, err := ParseLabel(makeLabel(NSProxy, "foo", ProxyAttributeNoTLSVerify), k)
|
|
ExpectNoError(t, err.Error())
|
|
ExpectEqual(t, pl.Value.(bool), v)
|
|
}
|
|
}
|
|
|
|
func TestBoolProxyLabelInvalid(t *testing.T) {
|
|
_, err := ParseLabel(makeLabel(NSProxy, "foo", ProxyAttributeNoTLSVerify), "invalid")
|
|
if !err.Is(E.ErrInvalid) {
|
|
t.Errorf("Expected err InvalidProxyLabel, got %s", err.Error())
|
|
}
|
|
}
|
|
|
|
// func TestSetHeaderProxyLabelValid(t *testing.T) {
|
|
// v := `
|
|
// X-Custom-Header1: foo, bar
|
|
// X-Custom-Header1: baz
|
|
// X-Custom-Header2: boo`
|
|
// v = strings.TrimPrefix(v, "\n")
|
|
// h := map[string]string{
|
|
// "X-Custom-Header1": "foo, bar, baz",
|
|
// "X-Custom-Header2": "boo",
|
|
// }
|
|
|
|
// pl, err := ParseLabel(makeLabel(NSProxy, "foo", ProxyAttributeSetHeaders), v)
|
|
// ExpectNoError(t, err.Error())
|
|
// hGot := ExpectType[map[string]string](t, pl.Value)
|
|
// ExpectFalse(t, hGot == nil)
|
|
// ExpectDeepEqual(t, h, hGot)
|
|
// }
|
|
|
|
// func TestSetHeaderProxyLabelInvalid(t *testing.T) {
|
|
// tests := []string{
|
|
// "X-Custom-Header1 = bar",
|
|
// "X-Custom-Header1",
|
|
// "- X-Custom-Header1",
|
|
// }
|
|
|
|
// for _, v := range tests {
|
|
// _, err := ParseLabel(makeLabel(NSProxy, "foo", ProxyAttributeSetHeaders), v)
|
|
// if !err.Is(E.ErrInvalid) {
|
|
// t.Errorf("Expected invalid err for %q, got %s", v, err.Error())
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func TestHideHeadersProxyLabel(t *testing.T) {
|
|
// v := `
|
|
// - X-Custom-Header1
|
|
// - X-Custom-Header2
|
|
// - X-Custom-Header3
|
|
// `
|
|
// v = strings.TrimPrefix(v, "\n")
|
|
// pl, err := ParseLabel(makeLabel(NSProxy, "foo", ProxyAttributeHideHeaders), v)
|
|
// ExpectNoError(t, err.Error())
|
|
// sGot := ExpectType[[]string](t, pl.Value)
|
|
// sWant := []string{"X-Custom-Header1", "X-Custom-Header2", "X-Custom-Header3"}
|
|
// ExpectFalse(t, sGot == nil)
|
|
// ExpectDeepEqual(t, sGot, sWant)
|
|
// }
|