Forked the emersion/go-imap v1 project.
This commit is contained in:
51
imapserver/list_test.go
Normal file
51
imapserver/list_test.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package imapserver_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/emersion/go-imap/v2/imapserver"
|
||||
)
|
||||
|
||||
var matchListTests = []struct {
|
||||
name, ref, pattern string
|
||||
result bool
|
||||
}{
|
||||
{name: "INBOX", pattern: "INBOX", result: true},
|
||||
{name: "INBOX", pattern: "Asuka", result: false},
|
||||
{name: "INBOX", pattern: "*", result: true},
|
||||
{name: "INBOX", pattern: "%", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "*", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "%", result: false},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neon Genesis Evangelion/*", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neon Genesis Evangelion/%", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neo* Evangelion/Misato", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neo% Evangelion/Misato", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "*Eva*/Misato", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "%Eva%/Misato", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "*X*/Misato", result: false},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "%X%/Misato", result: false},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neon Genesis Evangelion/Mi%o", result: true},
|
||||
{name: "Neon Genesis Evangelion/Misato", pattern: "Neon Genesis Evangelion/Mi%too", result: false},
|
||||
{name: "Misato/Misato", pattern: "Mis*to/Misato", result: true},
|
||||
{name: "Misato/Misato", pattern: "Mis*to", result: true},
|
||||
{name: "Misato/Misato/Misato", pattern: "Mis*to/Mis%to", result: true},
|
||||
{name: "Misato/Misato", pattern: "Mis**to/Misato", result: true},
|
||||
{name: "Misato/Misato", pattern: "Misat%/Misato", result: true},
|
||||
{name: "Misato/Misato", pattern: "Misat%Misato", result: false},
|
||||
{name: "Misato/Misato", ref: "Misato", pattern: "Misato", result: true},
|
||||
{name: "Misato/Misato", ref: "Misato/", pattern: "Misato", result: true},
|
||||
{name: "Misato/Misato", ref: "Shinji", pattern: "/Misato/*", result: true},
|
||||
{name: "Misato/Misato", ref: "Misato", pattern: "/Misato", result: false},
|
||||
{name: "Misato/Misato", ref: "Misato", pattern: "Shinji", result: false},
|
||||
{name: "Misato/Misato", ref: "Shinji", pattern: "Misato", result: false},
|
||||
}
|
||||
|
||||
func TestMatchList(t *testing.T) {
|
||||
delim := '/'
|
||||
for _, test := range matchListTests {
|
||||
result := imapserver.MatchList(test.name, delim, test.ref, test.pattern)
|
||||
if result != test.result {
|
||||
t.Errorf("matching name %q with pattern %q and reference %q returns %v, but expected %v", test.name, test.pattern, test.ref, result, test.result)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user