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  }