1package gpg 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7) 8 9func TestKeyList(t *testing.T) { 10 kl := KeyList{ 11 genTestKey("John", "johnny", "Doe", "john.doe@example.org"), 12 genTestKey("Jane", "jane", "Doe", "jane.doe@example.org", "25FF1614B8F87B52FFFF99B962AF4031C82E0019"), 13 genTestKey("Jim", "jimmy", "Doe", "jim.doe@example.org", "25FF1614B8F87B52FFFF99B962AF4031C82E2019", "z", "none"), 14 } 15 kl[2].SubKeys = map[string]struct{}{ 16 "0xDEADBEEF": {}, 17 } 18 19 assert.Equal(t, []string{ 20 "0x62AF4031C82E0019", 21 "0x62AF4031C82E0039", 22 "0x62AF4031C82E2019", 23 }, kl.Recipients()) 24 assert.Equal(t, []string{ 25 "0x62AF4031C82E0019", 26 "0x62AF4031C82E0039", 27 }, kl.UseableKeys(false).Recipients()) 28 assert.Equal(t, []string{ 29 "0x62AF4031C82E2019", 30 }, kl.UnusableKeys(false).Recipients()) 31 32 // search by email 33 k, err := kl.FindKey("jim.doe@example.org") 34 assert.NoError(t, err) 35 assert.Equal(t, "0x62AF4031C82E2019", k.ID()) 36 37 // search by fp 38 k, err = kl.FindKey("25FF1614B8F87B52FFFF99B962AF4031C82E2019") 39 assert.NoError(t, err) 40 assert.Equal(t, "0x62AF4031C82E2019", k.ID()) 41 42 // search by id 43 k, err = kl.FindKey("0x62AF4031C82E2019") 44 assert.NoError(t, err) 45 assert.Equal(t, "0x62AF4031C82E2019", k.ID()) 46 47 // search for non existing key 48 k, err = kl.FindKey("0x62AF4091C82E2019") 49 assert.Error(t, err) 50 assert.Equal(t, "", k.ID()) 51 52 // search by full name 53 k, err = kl.FindKey("John Doe") 54 assert.NoError(t, err) 55 assert.Equal(t, "0x62AF4031C82E0039", k.ID()) 56 57 // search by subkey id 58 k, err = kl.FindKey("0xDEADBEEF") 59 assert.NoError(t, err) 60 assert.Equal(t, "0x62AF4031C82E2019", k.ID()) 61} 62