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 }