1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-07-02 03:28:25 +08:00

test: add memkeystore test

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
This commit is contained in:
Jakub Sztandera
2016-12-07 09:02:23 +01:00
parent 84a9208bce
commit a3c38917e2

View File

@ -0,0 +1,82 @@
package keystore
import (
"sort"
"testing"
)
func TestMemKeyStoreBasics(t *testing.T) {
ks := NewMemKeystore()
l, err := ks.List()
if err != nil {
t.Fatal(err)
}
if len(l) != 0 {
t.Fatal("expected no keys")
}
k1 := privKeyOrFatal(t)
k2 := privKeyOrFatal(t)
k3 := privKeyOrFatal(t)
k4 := privKeyOrFatal(t)
err = ks.Put("foo", k1)
if err != nil {
t.Fatal(err)
}
err = ks.Put("bar", k2)
if err != nil {
t.Fatal(err)
}
l, err = ks.List()
if err != nil {
t.Fatal(err)
}
sort.Strings(l)
if l[0] != "bar" || l[1] != "foo" {
t.Fatal("wrong entries listed")
}
err = ks.Put("foo", k3)
if err == nil {
t.Fatal("should not be able to overwrite key")
}
if err := ks.Delete("bar"); err != nil {
t.Fatal(err)
}
if err := ks.Put("beep", k3); err != nil {
t.Fatal(err)
}
if err := ks.Put("boop", k4); err != nil {
t.Fatal(err)
}
if err := assertGetKey(ks, "foo", k1); err != nil {
t.Fatal(err)
}
if err := assertGetKey(ks, "beep", k3); err != nil {
t.Fatal(err)
}
if err := assertGetKey(ks, "boop", k4); err != nil {
t.Fatal(err)
}
if err := ks.Put("..///foo/", k1); err == nil {
t.Fatal("shouldnt be able to put a poorly named key")
}
if err := ks.Put("", k1); err == nil {
t.Fatal("shouldnt be able to put a key with no name")
}
if err := ks.Put(".foo", k1); err == nil {
t.Fatal("shouldnt be able to put a key with a 'hidden' name")
}
}