From 3debf75eb9229144a05701e03ba59408a75dd815 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Thu, 26 Dec 2019 15:26:23 -0800 Subject: 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 --- url/url_test.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'url/url_test.go') 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) + } + } +} -- cgit v1.2.3