From bea9ac01f44282342443c27d2547d6eab30ce8aa Mon Sep 17 00:00:00 2001 From: gpestana Date: Wed, 4 Jul 2018 19:03:04 +0300 Subject: [PATCH] Improves test coverage of cwtch_peer.go [#53] --- peer/cwtch_peer_test.go | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/peer/cwtch_peer_test.go b/peer/cwtch_peer_test.go index e83b717..21d9578 100644 --- a/peer/cwtch_peer_test.go +++ b/peer/cwtch_peer_test.go @@ -23,3 +23,52 @@ func TestCwtchPeerGenerate(t *testing.T) { t.Logf("Imported Group: %v, err := %v %v", group, err, importedGroupID) } + +func TestTrustPeer(t *testing.T) { + groupName := "test.server" + alice := NewCwtchPeer("alice", "alicepass") + bob := NewCwtchPeer("bob", "bobpass") + + bobOnion := bob.GetProfile().Onion + aliceOnion := alice.GetProfile().Onion + + groupID, _, err := alice.StartGroup(groupName) + if err != nil { + t.Error(err) + } + + groupAlice := alice.GetGroup(groupID) + if groupAlice.GroupID != groupID { + t.Errorf("Alice should be part of group %v, got %v instead", groupID, groupAlice) + } + + exportedGroup, err := alice.ExportGroup(groupID) + if err != nil { + t.Error(err) + } + + err = alice.InviteOnionToGroup(bobOnion, groupID) + if err == nil { + t.Errorf("onion invitation should fail since alice does no trust bob") + } + + err = alice.TrustPeer(bobOnion) + if err == nil { + t.Errorf("trust peer should fail since alice does not know about bob") + } + + // bob adds alice contact by importing serialized group created by alice + _, err = bob.ImportGroup(exportedGroup) + if err != nil { + t.Error(err) + } + err = bob.TrustPeer(aliceOnion) + if err != nil { + t.Errorf("bob must be able to trust alice, got %v", err) + } + + err = bob.InviteOnionToGroup(aliceOnion, groupID) + if err == nil { + t.Errorf("bob trusts alice but peer connection is not ready yet. should not be able to invite her to group, instead got: %v", err) + } +}