github.com/status-im/status-go@v1.1.0/protocol/common/crypto_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 var tcs = []int{4, 16, 64, 256, 1024} 10 11 func runeInSlice(a rune, list []rune) bool { 12 for _, b := range list { 13 if b == a { 14 return true 15 } 16 } 17 return false 18 } 19 20 func validString(s string, runes []rune) bool { 21 for _, r := range s { 22 if !runeInSlice(r, runes) { 23 return false 24 } 25 } 26 return true 27 } 28 29 func TestRandomAlphabeticalString(t *testing.T) { 30 for _, n := range tcs { 31 s, err := RandomAlphabeticalString(n) 32 require.NoError(t, err) 33 require.Len(t, s, n) 34 35 require.True(t, validString(s, letterRunes)) 36 } 37 } 38 39 func TestRandomAlphanumericString(t *testing.T) { 40 for _, n := range tcs { 41 s, err := RandomAlphanumericString(n) 42 require.NoError(t, err) 43 require.Len(t, s, n) 44 45 require.True(t, validString(s, alphanumericRunes)) 46 } 47 }