package client import ( "log" "os" "testing" "forge.redroom.link/yves/meowlib" "github.com/stretchr/testify/assert" ) func exists(filename string) bool { if _, err := os.Stat(filename); err == nil { return true } else { return false } } func createId() *Identity { config := GetConfig() config.IdentityFile = "test.id" config.memoryPassword = "generalPassword" // ! Extension to quickly open db : Debug only ! config.DbSuffix = ".sqlite" id := CreateIdentity("myname") err := id.Save() if err != nil { log.Fatal("Save failed") } var p Peer p.Name = "testName" p.MyEncryptionKp = meowlib.NewKeyPair() p.MyIdentity = meowlib.NewKeyPair() p.MyLookupKp = meowlib.NewKeyPair() p.Contact.Name = "foo" p.Contact.ContactPublicKey = p.MyLookupKp.Public p.Contact.EncryptionPublicKey = p.MyIdentity.Public p.Contact.LookupPublicKey = p.MyEncryptionKp.Public p.Contact.AddUrls([]string{"http:/127.0.0.1/meow", "tcp://localhost:1234"}) id.Peers = append(id.Peers, p) return id } func TestLoad(t *testing.T) { if exists("test.id") { os.Remove("test.id") } id, err := LoadIdentity("test.id", "toto") if err != nil { id := CreateIdentity("myname") id.Save() } else { log.Println(id.Nickname) } id, err = LoadIdentity("test.id", "toto") if err != nil { log.Println(err.Error()) } assert.Equal(t, err, nil, "2nd Load error") assert.Equal(t, id.Nickname, "myname", "The two words should be the same.") if exists("test.id") { os.Remove("test.id") } } func TestHidePeer(t *testing.T) { id := createId() name := id.Peers[0].Name assert.Equal(t, len(id.Peers), 1) h := len(id.HiddenPeers) id.HidePeer(0, "mypassword") assert.Equal(t, len(id.Peers), 0) assert.Equal(t, len(id.HiddenPeers), h+1) id.TryUnlockHidden("mypassword") assert.Equal(t, len(id.unlockedHiddenPeers), 1) assert.Equal(t, id.unlockedHiddenPeers[0].Name, name) if exists("test.id") { os.Remove("test.id") } }