github.com/newrelic/go-agent@v3.26.0+incompatible/internal/obfuscate_test.go (about) 1 // Copyright 2020 New Relic Corporation. All rights reserved. 2 // SPDX-License-Identifier: Apache-2.0 3 4 package internal 5 6 import ( 7 "testing" 8 ) 9 10 func TestDeobfuscate(t *testing.T) { 11 var out []byte 12 var err error 13 14 for _, in := range []string{"", "foo"} { 15 out, err = Deobfuscate(in, []byte("")) 16 if err == nil { 17 t.Error("error is nil for an empty key") 18 } 19 if out != nil { 20 t.Errorf("out is not nil; got: %s", out) 21 } 22 } 23 24 for _, in := range []string{"invalid_base64", "=moreinvalidbase64", "xx"} { 25 out, err = Deobfuscate(in, []byte("")) 26 if err == nil { 27 t.Error("error is nil for invalid base64") 28 } 29 if out != nil { 30 t.Errorf("out is not nil; got: %s", out) 31 } 32 } 33 34 for _, test := range []struct { 35 input string 36 key string 37 expected string 38 }{ 39 {"", "BLAHHHH", ""}, 40 {"NikyPBs8OisiJg==", "BLAHHHH", "testString"}, 41 } { 42 out, err = Deobfuscate(test.input, []byte(test.key)) 43 if err != nil { 44 t.Errorf("error expected to be nil; got: %v", err) 45 } 46 if string(out) != test.expected { 47 t.Errorf("output mismatch; expected: %s; got: %s", test.expected, out) 48 } 49 } 50 } 51 52 func TestObfuscate(t *testing.T) { 53 var out string 54 var err error 55 56 for _, in := range []string{"", "foo"} { 57 out, err = Obfuscate([]byte(in), []byte("")) 58 if err == nil { 59 t.Error("error is nil for an empty key") 60 } 61 if out != "" { 62 t.Errorf("out is not an empty string; got: %s", out) 63 } 64 } 65 66 for _, test := range []struct { 67 input string 68 key string 69 expected string 70 }{ 71 {"", "BLAHHHH", ""}, 72 {"testString", "BLAHHHH", "NikyPBs8OisiJg=="}, 73 } { 74 out, err = Obfuscate([]byte(test.input), []byte(test.key)) 75 if err != nil { 76 t.Errorf("error expected to be nil; got: %v", err) 77 } 78 if out != test.expected { 79 t.Errorf("output mismatch; expected: %s; got: %s", test.expected, out) 80 } 81 } 82 }