mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-01 02:30:39 +08:00
Implements path.IsJustAKey().
License: MIT Signed-off-by: Stephen Whitmore <noffle@ipfs.io>
This commit is contained in:
@ -44,6 +44,12 @@ func (p Path) String() string {
|
||||
return string(p)
|
||||
}
|
||||
|
||||
// IsJustAKey returns true if the path is of the form <key> or /ipfs/<key>.
|
||||
func (p Path) IsJustAKey() bool {
|
||||
parts := p.Segments()
|
||||
return (len(parts) == 2 && parts[0] == "ipfs")
|
||||
}
|
||||
|
||||
func FromSegments(prefix string, seg ...string) (Path, error) {
|
||||
return ParsePath(prefix + strings.Join(seg, "/"))
|
||||
}
|
||||
|
@ -28,3 +28,23 @@ func TestPathParsing(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsJustAKey(t *testing.T) {
|
||||
cases := map[string]bool{
|
||||
"QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n": true,
|
||||
"/ipfs/QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n": true,
|
||||
"/ipfs/QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n/a": false,
|
||||
"/ipfs/QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n/a/b": false,
|
||||
}
|
||||
|
||||
for p, expected := range cases {
|
||||
path, err := ParsePath(p)
|
||||
if err != nil {
|
||||
t.Fatalf("ParsePath failed to parse \"%s\", but should have succeeded", p)
|
||||
}
|
||||
result := path.IsJustAKey()
|
||||
if result != expected {
|
||||
t.Fatalf("expected IsJustAKey(%s) to return %v, not %v", p, expected, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user