12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package amp
- import (
- "testing"
- )
- func TestDecodePath(t *testing.T) {
- for _, test := range []struct {
- path string
- expectedData string
- expectedErrStr string
- }{
- {"", "", "missing format indicator"},
- {"0", "", "missing data"},
- {"0foobar", "", "missing data"},
- {"/0/YWJj", "", "unknown format indicator '/'"},
- {"0/", "", ""},
- {"0foobar/", "", ""},
- {"0/YWJj", "abc", ""},
- {"0///YWJj", "abc", ""},
- {"0foobar/YWJj", "abc", ""},
- {"0/foobar/YWJj", "abc", ""},
- } {
- data, err := DecodePath(test.path)
- if test.expectedErrStr != "" {
- if err == nil || err.Error() != test.expectedErrStr {
- t.Errorf("%+q expected error %+q, got %+q",
- test.path, test.expectedErrStr, err)
- }
- } else if err != nil {
- t.Errorf("%+q expected no error, got %+q", test.path, err)
- } else if string(data) != test.expectedData {
- t.Errorf("%+q expected data %+q, got %+q",
- test.path, test.expectedData, data)
- }
- }
- }
- func TestPathRoundTrip(t *testing.T) {
- for _, data := range []string{
- "",
- "\x00",
- "/",
- "hello world",
- } {
- decoded, err := DecodePath(EncodePath([]byte(data)))
- if err != nil {
- t.Errorf("%+q roundtripped with error %v", data, err)
- } else if string(decoded) != data {
- t.Errorf("%+q roundtripped to %+q", data, decoded)
- }
- }
- }
|