@@ -880,20 +880,25 @@ func TestCreateLocationsRootPath(t *testing.T) {
880
880
}
881
881
882
882
func TestCreateReturnValForRedirectFilter (t * testing.T ) {
883
- const listenerPort = 123
883
+ const listenerPortCustom = 123
884
+ const listenerPortHTTP = 80
885
+ const listenerPortHTTPS = 443
884
886
885
887
tests := []struct {
886
- filter * v1beta1.HTTPRequestRedirectFilter
887
- expected * http.Return
888
- msg string
888
+ filter * v1beta1.HTTPRequestRedirectFilter
889
+ expected * http.Return
890
+ msg string
891
+ listenerPort int32
889
892
}{
890
893
{
891
- filter : nil ,
892
- expected : nil ,
893
- msg : "filter is nil" ,
894
+ filter : nil ,
895
+ expected : nil ,
896
+ listenerPort : listenerPortCustom ,
897
+ msg : "filter is nil" ,
894
898
},
895
899
{
896
- filter : & v1beta1.HTTPRequestRedirectFilter {},
900
+ filter : & v1beta1.HTTPRequestRedirectFilter {},
901
+ listenerPort : listenerPortCustom ,
897
902
expected : & http.Return {
898
903
Code : http .StatusFound ,
899
904
Body : "$scheme://$host:123$request_uri" ,
@@ -902,21 +907,101 @@ func TestCreateReturnValForRedirectFilter(t *testing.T) {
902
907
},
903
908
{
904
909
filter : & v1beta1.HTTPRequestRedirectFilter {
905
- Scheme : helpers .GetStringPointer ("https" ),
906
- Hostname : ( * v1beta1 .PreciseHostname )( helpers . GetStringPointer ("foo.example.com" )),
910
+ Scheme : helpers .GetPointer ("https" ),
911
+ Hostname : helpers . GetPointer ( v1beta1 .PreciseHostname ("foo.example.com" )),
907
912
Port : (* v1beta1 .PortNumber )(helpers .GetInt32Pointer (2022 )),
908
- StatusCode : helpers .GetIntPointer ( 101 ),
913
+ StatusCode : helpers .GetPointer ( 301 ),
909
914
},
915
+ listenerPort : listenerPortCustom ,
910
916
expected : & http.Return {
911
- Code : 101 ,
917
+ Code : 301 ,
912
918
Body : "https://foo.example.com:2022$request_uri" ,
913
919
},
914
920
msg : "all fields are set" ,
915
921
},
922
+ {
923
+ filter : & v1beta1.HTTPRequestRedirectFilter {
924
+ Scheme : helpers .GetPointer ("https" ),
925
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
926
+ StatusCode : helpers .GetPointer (301 ),
927
+ },
928
+ listenerPort : listenerPortCustom ,
929
+ expected : & http.Return {
930
+ Code : 301 ,
931
+ Body : "https://foo.example.com$request_uri" ,
932
+ },
933
+ msg : "listenerPort is custom, scheme is set, no port" ,
934
+ },
935
+ {
936
+ filter : & v1beta1.HTTPRequestRedirectFilter {
937
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
938
+ StatusCode : helpers .GetPointer (301 ),
939
+ },
940
+ listenerPort : listenerPortHTTPS ,
941
+ expected : & http.Return {
942
+ Code : 301 ,
943
+ Body : "$scheme://foo.example.com:443$request_uri" ,
944
+ },
945
+ msg : "no scheme, listenerPort https, no port is set" ,
946
+ },
947
+ {
948
+ filter : & v1beta1.HTTPRequestRedirectFilter {
949
+ Scheme : helpers .GetPointer ("https" ),
950
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
951
+ StatusCode : helpers .GetPointer (301 ),
952
+ },
953
+ listenerPort : listenerPortHTTPS ,
954
+ expected : & http.Return {
955
+ Code : 301 ,
956
+ Body : "https://foo.example.com$request_uri" ,
957
+ },
958
+ msg : "scheme is https, listenerPort https, no port is set" ,
959
+ },
960
+ {
961
+ filter : & v1beta1.HTTPRequestRedirectFilter {
962
+ Scheme : helpers .GetPointer ("http" ),
963
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
964
+ StatusCode : helpers .GetPointer (301 ),
965
+ },
966
+ listenerPort : listenerPortHTTP ,
967
+ expected : & http.Return {
968
+ Code : 301 ,
969
+ Body : "http://foo.example.com$request_uri" ,
970
+ },
971
+ msg : "scheme is http, listenerPort http, no port is set" ,
972
+ },
973
+ {
974
+ filter : & v1beta1.HTTPRequestRedirectFilter {
975
+ Scheme : helpers .GetPointer ("http" ),
976
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
977
+ Port : (* v1beta1 .PortNumber )(helpers .GetInt32Pointer (80 )),
978
+ StatusCode : helpers .GetPointer (301 ),
979
+ },
980
+ listenerPort : listenerPortCustom ,
981
+ expected : & http.Return {
982
+ Code : 301 ,
983
+ Body : "http://foo.example.com$request_uri" ,
984
+ },
985
+ msg : "scheme is http, port http" ,
986
+ },
987
+ {
988
+ filter : & v1beta1.HTTPRequestRedirectFilter {
989
+ Scheme : helpers .GetPointer ("https" ),
990
+ Hostname : helpers .GetPointer (v1beta1 .PreciseHostname ("foo.example.com" )),
991
+ Port : (* v1beta1 .PortNumber )(helpers .GetInt32Pointer (443 )),
992
+ StatusCode : helpers .GetPointer (301 ),
993
+ },
994
+ listenerPort : listenerPortCustom ,
995
+ expected : & http.Return {
996
+ Code : 301 ,
997
+ Body : "https://foo.example.com$request_uri" ,
998
+ },
999
+ msg : "scheme is https, port https" ,
1000
+ },
916
1001
}
917
1002
918
1003
for _ , test := range tests {
919
- result := createReturnValForRedirectFilter (test .filter , listenerPort )
1004
+ result := createReturnValForRedirectFilter (test .filter , test . listenerPort )
920
1005
if diff := cmp .Diff (test .expected , result ); diff != "" {
921
1006
t .Errorf ("createReturnValForRedirectFilter() mismatch %q (-want +got):\n %s" , test .msg , diff )
922
1007
}
0 commit comments