package sip import ( "testing" ) type escapeTest struct { name string in string out string p func([]byte) []byte } var escapeTests = []escapeTest{ escapeTest{ name: "Param Normal", in: "hello", out: "hello", p: escapeParam, }, escapeTest{ name: "User Normal", in: "hello", out: "hello", p: escapeUser, }, escapeTest{ name: "Param Spacing", in: "hello there", out: "hello%20there", p: escapeParam, }, escapeTest{ name: "User Spacing", in: "hello there", out: "hello%20there", p: escapeUser, }, } func TestEscape(t *testing.T) { for _, test := range escapeTests { out := string(test.p([]byte(test.in))) if test.out != out { t.Errorf("%s: %s != %s", test.name, test.out, out) } } } func BenchmarkEscapeParam(b *testing.B) { for i := 0; i < b.N; i++ { escapeParam([]byte("hello there")) } }