11package main
22
33import (
4- "fmt"
5- "github.com/hashicorp/go-hclog"
4+ "encoding/base64"
65 "os"
76 "testing"
87
8+ "github.com/hashicorp/go-hclog"
9+
910 "github.com/philips-software/go-hsdp-api/logging"
1011)
1112
@@ -25,9 +26,13 @@ func TestFilter_Filter(t *testing.T) {
2526 }
2627 config := []Config {
2728 {
28- Pattern : "[a-z0-9._%+\\ -]+@ [a-z0-9.\\ -]+\\ .[a-z]{2,4}" ,
29+ Pattern : "[a-z0-9._%+\\ -]+(@|%40) [a-z0-9.\\ -]+\\ .[a-z]{2,4}" ,
2930 Replace : "<email obfuscated>" ,
3031 },
32+ {
33+ Pattern : "identifier(%3D|=)[^&\\ s]*" ,
34+ Replace : "identifier=*****" ,
35+ },
3136 }
3237 tests := []struct {
3338 name string
@@ -41,21 +46,39 @@ func TestFilter_Filter(t *testing.T) {
4146 {
4247 "Modified" ,
4348 fields {filterList : parse (config )},
44- args {
msg :
"dumbmessage [email protected] foobarmessage [email protected] " },
45- fmt . Sprintf ( "dumbmessage %s foobarmessage %s" , " <email obfuscated>" , " <email obfuscated>") ,
49+ args {
msg :
base64 . StdEncoding . EncodeToString ([] byte ( "dumbmessage [email protected] somemessage russet.potatoes%40potato.com foobarmessage [email protected] " )) },
50+ "dumbmessage <email obfuscated> somemessage <email obfuscated> foobarmessage <email obfuscated>" ,
4651 false ,
4752 true ,
4853 nil ,
4954 },
5055 {
5156 "NotModified" ,
5257 fields {filterList : parse (config )},
53- args {msg : "dumbmessage foobarmessage" },
58+ args {msg : base64 . StdEncoding . EncodeToString ([] byte ( "dumbmessage foobarmessage" )) },
5459 "dumbmessage foobarmessage" ,
5560 false ,
5661 false ,
5762 nil ,
5863 },
64+ {
65+ "Modified" ,
66+ fields {filterList : parse (config )},
67+ args {msg : base64 .StdEncoding .EncodeToString ([]byte ("GET /logging?procedure.identifier=https://www.philips.com/identifiers/ProcedureIdentifier|ACC_20241120110729422 HTTP/1.1" ))},
68+ "GET /logging?procedure.identifier=***** HTTP/1.1" ,
69+ false ,
70+ true ,
71+ nil ,
72+ },
73+ {
74+ "Modified" ,
75+ fields {filterList : parse (config )},
76+ args {msg : base64 .StdEncoding .EncodeToString ([]byte ("GET /logging?procedure.identifier%3Dhttps://www.philips.com/identifiers/ProcedureIdentifier|ACC_20241120110729422 HTTP/1.1" ))},
77+ "GET /logging?procedure.identifier=***** HTTP/1.1" ,
78+ false ,
79+ true ,
80+ nil ,
81+ },
5982 }
6083 for _ , tt := range tests {
6184 t .Run (tt .name , func (t * testing.T ) {
@@ -65,12 +88,13 @@ func TestFilter_Filter(t *testing.T) {
6588 log := & logging.Resource {}
6689 log .LogData .Message = tt .args .msg
6790 msg , dropped , modified , err := f .Filter (* log )
91+ decodedMsg , _ := base64 .StdEncoding .DecodeString (msg .LogData .Message )
6892 if err != tt .wantErr {
6993 t .Errorf ("Filter() error = %v, wantErr %v" , err , tt .wantErr )
7094 return
7195 }
72- if msg . LogData . Message != tt .wantLogMessage {
73- t .Errorf ("FilterReplace.Filter() got = %v, want %v" , msg . LogData . Message , tt .wantLogMessage )
96+ if string ( decodedMsg ) != tt .wantLogMessage {
97+ t .Errorf ("FilterReplace.Filter() got = %v, want %v" , string ( decodedMsg ) , tt .wantLogMessage )
7498 }
7599 if dropped != tt .wantDropped {
76100 t .Errorf ("Filter() got1 = %v, want %v" , dropped , tt .wantDropped )
0 commit comments