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  }