Skip to content

Commit

Permalink
Merge pull request #339 from rramkumar1/iap-cdn-e2e-test
Browse files Browse the repository at this point in the history
Testing improvements
  • Loading branch information
bowei committed Jun 15, 2018
2 parents ac80228 + 5d5df38 commit c94f45c
Show file tree
Hide file tree
Showing 7 changed files with 242 additions and 239 deletions.
10 changes: 6 additions & 4 deletions pkg/backendconfig/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,11 @@ func TestBackendConfigName(t *testing.T) {
}

for _, tc := range testCases {
result := BackendConfigName(tc.backendConfigs, tc.svcPort)
if result != tc.expected {
t.Errorf("%s: expected %s but got %s", tc.desc, tc.expected, result)
}
t.Run(tc.desc, func(t *testing.T) {
result := BackendConfigName(tc.backendConfigs, tc.svcPort)
if result != tc.expected {
t.Errorf("%s: expected %s but got %s", tc.desc, tc.expected, result)
}
})
}
}
152 changes: 29 additions & 123 deletions pkg/backends/features/cdn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ limitations under the License.
package features

import (
"reflect"
"testing"

backendconfigv1beta1 "k8s.io/ingress-gce/pkg/apis/backendconfig/v1beta1"
Expand All @@ -27,14 +26,14 @@ import (

func TestEnsureCDN(t *testing.T) {
testCases := []struct {
desc string
sp utils.ServicePort
be *composite.BackendService
expected bool
desc string
sp utils.ServicePort
be *composite.BackendService
updateExpected bool
}{
{
"settings are identical, no update needed",
utils.ServicePort{
desc: "settings are identical, no update needed",
sp: utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: &backendconfigv1beta1.CDNConfig{
Expand All @@ -46,161 +45,68 @@ func TestEnsureCDN(t *testing.T) {
},
},
},
&composite.BackendService{
be: &composite.BackendService{
EnableCDN: true,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: true,
},
},
},
false,
updateExpected: false,
},
{
"cache settings are different, update needed",
utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: &backendconfigv1beta1.CDNConfig{
Enabled: true,
CachePolicy: &backendconfigv1beta1.CacheKeyPolicy{
QueryStringWhitelist: []string{"foo"},
},
},
},
},
},
&composite.BackendService{
EnableCDN: true,
},
true,
},
{
"enabled setting is different, update needed",
utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: &backendconfigv1beta1.CDNConfig{
Enabled: true,
},
},
},
},
&composite.BackendService{
EnableCDN: false,
},
true,
},
}

for _, testCase := range testCases {
result := EnsureCDN(testCase.sp, testCase.be)
if result != testCase.expected {
t.Errorf("%v: expected %v but got %v", testCase.desc, testCase.expected, result)
}
}
}

func TestApplyCDNSettings(t *testing.T) {
testCases := []struct {
desc string
sp utils.ServicePort
be *composite.BackendService
expected composite.BackendService
}{
{
"apply settings on empty BackendService",
utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: &backendconfigv1beta1.CDNConfig{
Enabled: true,
CachePolicy: &backendconfigv1beta1.CacheKeyPolicy{
IncludeHost: true,
},
},
},
},
},
&composite.BackendService{},
composite.BackendService{
EnableCDN: true,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: true,
},
},
},
},
{
"overwrite some fields on existing settings",
utils.ServicePort{
desc: "cache settings are different, update needed",
sp: utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: &backendconfigv1beta1.CDNConfig{
Enabled: true,
CachePolicy: &backendconfigv1beta1.CacheKeyPolicy{
IncludeHost: true,
IncludeQueryString: false,
IncludeProtocol: false,
IncludeQueryString: true,
},
},
},
},
},
&composite.BackendService{
EnableCDN: false,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: false,
IncludeProtocol: true,
IncludeQueryString: true,
},
},
},
composite.BackendService{
be: &composite.BackendService{
EnableCDN: true,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: true,
IncludeProtocol: false,
IncludeHost: false,
IncludeQueryString: true,
IncludeProtocol: true,
},
},
},
updateExpected: true,
},
{
"no feature settings in spec",
utils.ServicePort{
desc: "enabled setting is different, update needed",
sp: utils.ServicePort{
BackendConfig: &backendconfigv1beta1.BackendConfig{
Spec: backendconfigv1beta1.BackendConfigSpec{
Cdn: nil,
},
},
},
&composite.BackendService{
EnableCDN: true,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: true,
Cdn: &backendconfigv1beta1.CDNConfig{
Enabled: true,
},
},
},
},
composite.BackendService{
be: &composite.BackendService{
EnableCDN: false,
CdnPolicy: &composite.BackendServiceCdnPolicy{
CacheKeyPolicy: &composite.CacheKeyPolicy{
IncludeHost: false,
},
},
},
updateExpected: true,
},
}

for _, testCase := range testCases {
applyCDNSettings(testCase.sp, testCase.be)
if !reflect.DeepEqual(testCase.expected, *testCase.be) {
t.Errorf("%v: expected %+v but got %+v", testCase.desc, testCase.expected, *testCase.be)
}
for _, tc := range testCases {
t.Run(tc.desc, func(t *testing.T) {
result := EnsureCDN(tc.sp, tc.be)
if result != tc.updateExpected {
t.Errorf("%v: expected %v but got %v", tc.desc, tc.updateExpected, result)
}
})
}
}
Loading

0 comments on commit c94f45c

Please sign in to comment.