github.com/10XDev/rclone@v1.52.3-0.20200626220027-16af9ab76b2a/fs/config/obscure/obscure_test.go (about)

     1  package obscure
     2  
     3  import (
     4  	"bytes"
     5  	"crypto/rand"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestObscure(t *testing.T) {
    12  	for _, test := range []struct {
    13  		in   string
    14  		want string
    15  		iv   string
    16  	}{
    17  		{"", "YWFhYWFhYWFhYWFhYWFhYQ", "aaaaaaaaaaaaaaaa"},
    18  		{"potato", "YWFhYWFhYWFhYWFhYWFhYXMaGgIlEQ", "aaaaaaaaaaaaaaaa"},
    19  		{"potato", "YmJiYmJiYmJiYmJiYmJiYp3gcEWbAw", "bbbbbbbbbbbbbbbb"},
    20  	} {
    21  		cryptRand = bytes.NewBufferString(test.iv)
    22  		got, err := Obscure(test.in)
    23  		cryptRand = rand.Reader
    24  		assert.NoError(t, err)
    25  		assert.Equal(t, test.want, got)
    26  		recoveredIn, err := Reveal(got)
    27  		assert.NoError(t, err)
    28  		assert.Equal(t, test.in, recoveredIn, "not bidirectional")
    29  		// Now the Must variants
    30  		cryptRand = bytes.NewBufferString(test.iv)
    31  		got = MustObscure(test.in)
    32  		cryptRand = rand.Reader
    33  		assert.Equal(t, test.want, got)
    34  		recoveredIn = MustReveal(got)
    35  		assert.Equal(t, test.in, recoveredIn, "not bidirectional")
    36  
    37  	}
    38  }
    39  
    40  func TestReveal(t *testing.T) {
    41  	for _, test := range []struct {
    42  		in   string
    43  		want string
    44  		iv   string
    45  	}{
    46  		{"YWFhYWFhYWFhYWFhYWFhYQ", "", "aaaaaaaaaaaaaaaa"},
    47  		{"YWFhYWFhYWFhYWFhYWFhYXMaGgIlEQ", "potato", "aaaaaaaaaaaaaaaa"},
    48  		{"YmJiYmJiYmJiYmJiYmJiYp3gcEWbAw", "potato", "bbbbbbbbbbbbbbbb"},
    49  	} {
    50  		cryptRand = bytes.NewBufferString(test.iv)
    51  		got, err := Reveal(test.in)
    52  		assert.NoError(t, err)
    53  		assert.Equal(t, test.want, got)
    54  		// Now the Must variants
    55  		cryptRand = bytes.NewBufferString(test.iv)
    56  		got = MustReveal(test.in)
    57  		assert.Equal(t, test.want, got)
    58  
    59  	}
    60  }