package handler import ( "testing" "github.com/stretchr/testify/require" ) func TestPathEncoder(t *testing.T) { for _, tc := range []struct { key string expected string }{ {key: "simple", expected: "simple"}, {key: "foo/bar", expected: "foo/bar"}, {key: "foo+1/bar", expected: "foo%2B1/bar"}, {key: "foo ab/bar", expected: "foo%20ab/bar"}, {key: "p-%", expected: "p-%25"}, {key: "p/", expected: "p/"}, {key: "p/", expected: "p/"}, {key: "~user", expected: "%7Euser"}, {key: "*user", expected: "*user"}, {key: "user+password", expected: "user%2Bpassword"}, {key: "_user", expected: "_user"}, {key: "firstname.lastname", expected: "firstname.lastname"}, } { actual := s3PathEncode(tc.key, urlEncodingType) require.Equal(t, tc.expected, actual) } } func TestQueryEncoder(t *testing.T) { for _, tc := range []struct { key string expected string }{ {key: "simple", expected: "simple"}, {key: "foo/bar", expected: "foo/bar"}, {key: "foo+1/bar", expected: "foo%2B1/bar"}, {key: "foo ab/bar", expected: "foo+ab/bar"}, {key: "p-%", expected: "p-%25"}, {key: "p/", expected: "p/"}, {key: "p/", expected: "p/"}, {key: "~user", expected: "%7Euser"}, {key: "*user", expected: "*user"}, {key: "user+password", expected: "user%2Bpassword"}, {key: "_user", expected: "_user"}, {key: "firstname.lastname", expected: "firstname.lastname"}, } { actual := s3QueryEncode(tc.key, urlEncodingType) require.Equal(t, tc.expected, actual) } }