diff options
author | Frédéric Guillot <fred@miniflux.net> | 2019-12-26 15:26:23 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2019-12-26 15:56:59 -0800 |
commit | 3debf75eb9229144a05701e03ba59408a75dd815 (patch) | |
tree | 9e9eb6569db3234b514f798d4278b20793b79833 /url/url_test.go | |
parent | 200b1c304b999191a29f36d4122e7aa05481125c (diff) |
Normalize URL query string before executing HTTP requests
- Make sure query strings parameters are encoded
- As opposed to the standard library, do not append equal sign
for query parameters with empty value
- Strip URL fragments like Web browsers
Diffstat (limited to 'url/url_test.go')
-rw-r--r-- | url/url_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/url/url_test.go b/url/url_test.go index 9a14b20..54868a9 100644 --- a/url/url_test.go +++ b/url/url_test.go @@ -71,3 +71,25 @@ func TestDomain(t *testing.T) { } } } + +func TestRequestURI(t *testing.T) { + scenarios := map[string]string{ + "https://www.example.org": "https://www.example.org", + "https://user:password@www.example.org": "https://user:password@www.example.org", + "https://www.example.org/path with spaces": "https://www.example.org/path%20with%20spaces", + "https://www.example.org/path#test": "https://www.example.org/path", + "https://www.example.org/path?abc#test": "https://www.example.org/path?abc", + "https://www.example.org/path?a=b&a=c": "https://www.example.org/path?a=b&a=c", + "https://www.example.org/path?a=b&a=c&d": "https://www.example.org/path?a=b&a=c&d", + "https://www.example.org/path?atom": "https://www.example.org/path?atom", + "https://www.example.org/path?测试=测试": "https://www.example.org/path?%E6%B5%8B%E8%AF%95=%E6%B5%8B%E8%AF%95", + "https://www.example.org/url=http%3A%2F%2Fwww.example.com%2Ffeed%2F&max=20": "https://www.example.org/url=http%3A%2F%2Fwww.example.com%2Ffeed%2F&max=20", + } + + for input, expected := range scenarios { + actual := RequestURI(input) + if actual != expected { + t.Errorf(`Unexpected result, got %q instead of %q`, actual, expected) + } + } +} |