github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/logging/obfuscation/HeaderObfuscator_test.go (about) 1 package obfuscation 2 3 import ( 4 "testing" 5 ) 6 7 func CheckObfuscateHeaderWithMatch(t *testing.T, name, originalValue, expectedObfuscatedValue string) { 8 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, DefaultHeaderObfuscator(), name, originalValue, expectedObfuscatedValue) 9 } 10 11 func CheckObfuscateHeaderWithMatchWithCustomObfuscator(t *testing.T, headerObfuscator HeaderObfuscator, name, originalValue, expectedObfuscatedValue string) { 12 obfuscatedValue := headerObfuscator.ObfuscateHeader(name, originalValue) 13 14 if obfuscatedValue != expectedObfuscatedValue { 15 t.Fatalf("CheckObfuscateHeaderWithMatch : expected '%s' got '%s'", expectedObfuscatedValue, obfuscatedValue) 16 } 17 } 18 19 func CheckObfuscateHeaderWithNoMatch(t *testing.T, name, originalValue string) { 20 headerObfuscator := DefaultHeaderObfuscator() 21 obfuscatedValue := headerObfuscator.ObfuscateHeader(name, originalValue) 22 23 if obfuscatedValue != originalValue { 24 t.Fatalf("CheckObfuscateHeaderWithNoMatch : expected '%s' got '%s'", originalValue, obfuscatedValue) 25 } 26 } 27 28 func TestObfuscateHeader(t *testing.T) { 29 CheckObfuscateHeaderWithMatch(t, "Authorization", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 30 CheckObfuscateHeaderWithMatch(t, "authorization", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 31 CheckObfuscateHeaderWithMatch(t, "AUTHORIZATION", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 32 33 CheckObfuscateHeaderWithMatch(t, "X-GCS-Authentication-Token", "foobar", "********") 34 CheckObfuscateHeaderWithMatch(t, "x-gcs-authentication-token", "foobar", "********") 35 CheckObfuscateHeaderWithMatch(t, "X-GCS-AUTHENTICATION-TOKEN", "foobar", "********") 36 37 CheckObfuscateHeaderWithMatch(t, "X-GCS-CallerPassword", "foobar", "********") 38 CheckObfuscateHeaderWithMatch(t, "x-gcs-callerpassword", "foobar", "********") 39 CheckObfuscateHeaderWithMatch(t, "X-GCS-CALLERPASSWORD", "foobar", "********") 40 41 CheckObfuscateHeaderWithNoMatch(t, "Content-Type", "application/json") 42 CheckObfuscateHeaderWithNoMatch(t, "content-type", "application/json") 43 CheckObfuscateHeaderWithNoMatch(t, "CONTENT-TYPE", "application/json") 44 } 45 46 func TestObfuscateCustomHeader(t *testing.T) { 47 headerObfuscator := NewHeaderObfuscator(map[string]Rule{ 48 "content-type": All(), 49 }) 50 51 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "Authorization", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 52 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "authorization", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 53 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "AUTHORIZATION", "Basic QWxhZGRpbjpPcGVuU2VzYW1l", "********") 54 55 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "X-GCS-Authentication-Token", "foobar", "********") 56 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "x-gcs-authentication-token", "foobar", "********") 57 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "X-GCS-AUTHENTICATION-TOKEN", "foobar", "********") 58 59 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "X-GCS-CallerPassword", "foobar", "********") 60 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "x-gcs-callerpassword", "foobar", "********") 61 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "X-GCS-CALLERPASSWORD", "foobar", "********") 62 63 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "Content-Type", "application/json", "****************") 64 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "content-type", "application/json", "****************") 65 CheckObfuscateHeaderWithMatchWithCustomObfuscator(t, headerObfuscator, "CONTENT-TYPE", "application/json", "****************") 66 }