mirror of
https://github.com/ergochat/ergo.git
synced 2025-06-24 23:57:28 +02:00

* metadata spec update: disallow colon entirely * refactor key validation * implement metadata before-connect * play the metadata in reg burst to all clients with the cap * bump irctest * remove all case normalization for keys From spec discussion, we will most likely either require keys to be lowercase, or else treat them as case-opaque, similar to message tag keys.
23 lines
453 B
Go
23 lines
453 B
Go
package irc
|
|
|
|
import "testing"
|
|
|
|
func TestKeyCheck(t *testing.T) {
|
|
cases := []struct {
|
|
input string
|
|
isEvil bool
|
|
}{
|
|
{"ImNormal", false},
|
|
{"", true},
|
|
{":imevil", true},
|
|
{"key£with$not%allowed^chars", true},
|
|
{"key.thats_completely/normal-and.fine", false},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
if metadataKeyIsEvil(c.input) != c.isEvil {
|
|
t.Errorf("%s should have returned %v. but it didn't. so that's not great", c.input, c.isEvil)
|
|
}
|
|
}
|
|
}
|