seekia/internal/messaging/inbox/inbox_test.go

97 lines
3.3 KiB
Go
Raw Normal View History

package inbox_test
import "seekia/internal/messaging/inbox"
import "seekia/internal/identity"
import "seekia/internal/encoding"
import "bytes"
import "testing"
func TestPublicInboxDerivationFunctions(t *testing.T){
testIdentityHashString := "wgkxplfvju7yhpoadvxju4kmfdm"
testIdentityHash, _, err := identity.ReadIdentityHashString(testIdentityHashString)
if (err != nil){
t.Fatalf("Failed to read testIdentityHashString: " + err.Error())
}
expectedPublicInboxString := "7sjss2s73pbqnhhe"
expectedPublicInbox, err := inbox.ReadInboxString(expectedPublicInboxString)
if (err != nil){
t.Fatalf("Failed to decode expectedPublicInbox: " + err.Error())
}
publicInbox, err := inbox.GetPublicInboxFromIdentityHash(testIdentityHash)
if (err != nil){
t.Fatalf("Failed to get public inbox from identity hash: " + err.Error())
}
if (publicInbox != expectedPublicInbox){
publicInboxString := encoding.EncodeBytesToBase32String(publicInbox[:])
t.Fatalf("Failed to get public inbox from identity hash: Unexpected result: " + publicInboxString)
}
publicInboxSealerKey, err := inbox.GetPublicInboxSealerKeyFromIdentityHash(testIdentityHash)
if (err != nil){
t.Fatalf("GetPublicInboxSealerKeyFromIdentityHash failed: " + err.Error())
}
expectedPublicInboxSealerKey := "7d3fadbc59f692dead5ae794ddd0492cfef2990357f09301a7560966dd955d8b"
expectedPublicInboxSealerKeyBytes, err := encoding.DecodeHexStringToBytes(expectedPublicInboxSealerKey)
if (err != nil){
t.Fatalf("expectedPublicInboxSealerKey is not hex: " + err.Error())
}
areEqual := bytes.Equal(publicInboxSealerKey[:], expectedPublicInboxSealerKeyBytes)
if (areEqual == false){
resultHex := encoding.EncodeBytesToHexString(publicInboxSealerKey[:])
t.Fatalf("GetPublicInboxSealerKeyFromIdentityHash failed: Unexpected result: " + resultHex)
}
}
func TestSecretInboxDerivationFunction(t *testing.T){
testSecretInboxSeed := "f574640613cb21cbb92e549e6a0412a152cca1a19ad3"
testSecretInboxSeedBytes, err := encoding.DecodeHexStringToBytes(testSecretInboxSeed)
if (err != nil){
t.Fatalf("testSecretInboxSeed is not hex: " + err.Error())
}
if (len(testSecretInboxSeedBytes) != 22){
t.Fatalf("testSecretInboxSeed has an invalid length.")
}
testSecretInboxSeedArray := [22]byte(testSecretInboxSeedBytes)
secretInbox, secretInboxSealerKey, err := inbox.GetSecretInboxAndSealerKeyFromSecretInboxSeed(testSecretInboxSeedArray)
if (err != nil){
t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed failed: " + err.Error())
}
expectedSecretInboxString := "q7it4ziecjxigop6"
expectedSecretInbox, err := inbox.ReadInboxString(expectedSecretInboxString)
if (err != nil){
t.Fatalf("Failed to decode expectedSecretInbox: " + err.Error())
}
if (secretInbox != expectedSecretInbox){
t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed returning unexpected secretInbox.")
}
expectedSecretInboxSealerKey := "070a8c4a9c9d8a46951f02fafab3bbe94e958b3d5db21425ef842141c691d231"
expectedSecretInboxSealerKeyBytes, err := encoding.DecodeHexStringToBytes(expectedSecretInboxSealerKey)
if (err != nil){
t.Fatalf("expectedSecretInboxSealerKey is not hex: " + err.Error())
}
areEqual := bytes.Equal(secretInboxSealerKey[:], expectedSecretInboxSealerKeyBytes)
if (areEqual == false){
t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed returning unexpected secretInboxSealerKey")
}
}