package sip
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
type escapeTest struct {
|
|
name string
|
|
in string
|
|
out string
|
|
p func(byte) bool
|
|
}
|
|
|
|
var escapeTests = []escapeTest{
|
|
|
|
escapeTest{
|
|
name: "Param Normal",
|
|
in: "hello",
|
|
out: "hello",
|
|
p: paramc,
|
|
},
|
|
|
|
escapeTest{
|
|
name: "User Normal",
|
|
in: "hello",
|
|
out: "hello",
|
|
p: userc,
|
|
},
|
|
|
|
escapeTest{
|
|
name: "Param Spacing",
|
|
in: "hello there",
|
|
out: "hello%20there",
|
|
p: paramc,
|
|
},
|
|
|
|
escapeTest{
|
|
name: "User Spacing",
|
|
in: "hello there",
|
|
out: "hello%20there",
|
|
p: userc,
|
|
},
|
|
}
|
|
|
|
func TestEscape(t *testing.T) {
|
|
for _, test := range escapeTests {
|
|
var b bytes.Buffer
|
|
appendEscaped(&b, []byte(test.in), test.p)
|
|
out := b.String()
|
|
if test.out != out {
|
|
t.Errorf("%s: %s != %s", test.name, test.out, out)
|
|
}
|
|
}
|
|
}
|