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  }