package xforwardedprefix import ( "testing" api "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/ingress-nginx/internal/ingress/annotations/parser" "k8s.io/ingress-nginx/internal/ingress/resolver" ) func TestParse(t *testing.T) { annotation := parser.GetAnnotationWithPrefix("x-forwarded-prefix") ap := NewParser(&resolver.Mock{}) if ap == nil { t.Fatalf("expected a parser.IngressAnnotation but returned nil") } testCases := []struct { annotations map[string]string expected bool }{ {map[string]string{annotation: "true"}, true}, {map[string]string{annotation: "1"}, true}, {map[string]string{annotation: ""}, false}, {map[string]string{}, false}, {nil, false}, } ing := &extensions.Ingress{ ObjectMeta: meta_v1.ObjectMeta{ Name: "foo", Namespace: api.NamespaceDefault, }, Spec: extensions.IngressSpec{}, } for _, testCase := range testCases { ing.SetAnnotations(testCase.annotations) result, _ := ap.Parse(ing) if result != testCase.expected { t.Errorf("expected %v but returned %v, annotations: %s", testCase.expected, result, testCase.annotations) } } }