github.com/glide-im/glide@v1.6.0/pkg/gate/client_test.go (about)

     1  package gate
     2  
     3  import (
     4  	"crypto/sha512"
     5  	"github.com/glide-im/glide/pkg/hash"
     6  	"github.com/stretchr/testify/assert"
     7  	"testing"
     8  	"time"
     9  )
    10  
    11  func TestNewID(t *testing.T) {
    12  	id := NewID("gate", "uid", "dev")
    13  	assert.Equal(t, "gate_uid_dev", string(id))
    14  }
    15  
    16  func TestID_SetGateway(t *testing.T) {
    17  	id := NewID2("empty-uid")
    18  	suc := id.SetGateway("gateway")
    19  
    20  	assert.True(t, suc)
    21  	assert.Equal(t, "gateway_empty-uid_", string(id))
    22  }
    23  
    24  func TestID_SetDevice(t *testing.T) {
    25  	id := NewID2("empty-uid")
    26  	suc := id.SetDevice("device")
    27  
    28  	assert.True(t, suc)
    29  	assert.Equal(t, "_empty-uid_device", string(id))
    30  }
    31  
    32  func TestID_IsTemp(t *testing.T) {
    33  	id := NewID2(tempIdPrefix + "temp-uid")
    34  	assert.True(t, id.IsTemp())
    35  
    36  	id = NewID2("uid")
    37  	assert.False(t, id.IsTemp())
    38  }
    39  
    40  func TestID_UID(t *testing.T) {
    41  	id := NewID2("uid")
    42  	assert.Equal(t, "uid", id.UID())
    43  }
    44  
    45  func TestID_Gateway(t *testing.T) {
    46  	id := NewID("gate", "uid", "dev")
    47  	assert.Equal(t, "gate", id.Gateway())
    48  
    49  	id = NewID2("uid")
    50  	assert.Equal(t, "", id.Gateway())
    51  }
    52  
    53  func TestAesCBC_Decrypt(t *testing.T) {
    54  
    55  	key := sha512.New().Sum([]byte("secret_key"))
    56  	cbcCrypto := NewAesCBCCrypto(key)
    57  
    58  	credentials := ClientAuthCredentials{
    59  		Type:       1,
    60  		UserID:     "",
    61  		DeviceID:   "1",
    62  		DeviceName: "iPhone 6s",
    63  		Secrets: &ClientSecrets{
    64  			MessageDeliverSecret: "secret",
    65  		},
    66  		ConnectionID: "1",
    67  		Timestamp:    time.Now().UnixMilli(),
    68  	}
    69  	encryptCredentials, err := cbcCrypto.EncryptCredentials(&credentials)
    70  	assert.NoError(t, err)
    71  
    72  	t.Log(string(encryptCredentials))
    73  	decryptCredentials, err := cbcCrypto.DecryptCredentials(encryptCredentials)
    74  	assert.NoError(t, err)
    75  
    76  	assert.Equal(t, decryptCredentials.UserID, credentials.UserID)
    77  }
    78  
    79  func TestGenerateTicket(t *testing.T) {
    80  
    81  	secret := "secret"
    82  	sum1 := hash.SHA1(secret + "to")
    83  	expectTicket := hash.SHA1(secret + "from" + sum1)
    84  
    85  	t.Log(expectTicket)
    86  }