diff options
author | Andrey Zelenkov <zelenkov@nginx.com> | 2019-10-23 16:59:53 +0300 |
---|---|---|
committer | Andrey Zelenkov <zelenkov@nginx.com> | 2019-10-23 16:59:53 +0300 |
commit | d58fe3db98dfbd2616eb0d9483b4758d08467255 (patch) | |
tree | c9da5483bc8fd09d6ee76ac72ee946c74d142fe1 /test/test_routing.py | |
parent | 38cfe4cf3d9fd2a4ed0f3949586126a7b8144e8e (diff) | |
download | unit-d58fe3db98dfbd2616eb0d9483b4758d08467255.tar.gz unit-d58fe3db98dfbd2616eb0d9483b4758d08467255.tar.bz2 |
Tests: more URI normalization tests.
Diffstat (limited to 'test/test_routing.py')
-rw-r--r-- | test/test_routing.py | 60 |
1 files changed, 52 insertions, 8 deletions
diff --git a/test/test_routing.py b/test/test_routing.py index f3106b56..2960f978 100644 --- a/test/test_routing.py +++ b/test/test_routing.py @@ -901,31 +901,75 @@ class TestRouting(TestApplicationProto): 'success', self.route( { - "match": {"uri": "/"}, + "match": {"uri": ["/blah", "/slash/"]}, "action": {"pass": "applications/empty"}, } ), 'match uri positive configure', ) - self.assertEqual(self.get()['status'], 200, 'match uri positive') + self.assertEqual(self.get()['status'], 404, 'match uri positive') self.assertEqual( - self.get(url='/blah')['status'], 404, 'match uri positive blah' + self.get(url='/blah')['status'], 200, 'match uri positive blah' ) self.assertEqual( - self.get(url='/#blah')['status'], 200, 'match uri positive #blah' + self.get(url='/blah#foo')['status'], + 200, + 'match uri positive #foo', + ) + self.assertEqual( + self.get(url='/blah?var')['status'], 200, 'match uri args' + ) + self.assertEqual( + self.get(url='//blah')['status'], 200, 'match uri adjacent slashes' + ) + self.assertEqual( + self.get(url='/slash/foo/../')['status'], + 200, + 'match uri relative path', + ) + self.assertEqual( + self.get(url='/slash/./')['status'], + 200, + 'match uri relative path 2', + ) + self.assertEqual( + self.get(url='/slash//.//')['status'], + 200, + 'match uri adjacent slashes 2', ) self.assertEqual( - self.get(url='/?var')['status'], 200, 'match uri params' + self.get(url='/%')['status'], 400, 'match uri percent' ) self.assertEqual( - self.get(url='//')['status'], 200, 'match uri adjacent slashes' + self.get(url='/%1')['status'], 400, 'match uri percent digit' ) self.assertEqual( - self.get(url='/blah/../')['status'], 200, 'match uri relative path' + self.get(url='/%A')['status'], 400, 'match uri percent letter' ) self.assertEqual( - self.get(url='/./')['status'], 200, 'match uri relative path' + self.get(url='/slash/.?args')['status'], 200, 'match uri dot args' + ) + self.assertEqual( + self.get(url='/slash/.#frag')['status'], 200, 'match uri dot frag' + ) + self.assertEqual( + self.get(url='/slash/foo/..?args')['status'], + 200, + 'match uri dot dot args', + ) + self.assertEqual( + self.get(url='/slash/foo/..#frag')['status'], + 200, + 'match uri dot dot frag', + ) + self.assertEqual( + self.get(url='/slash/.')['status'], 200, 'match uri trailing dot' + ) + self.assertEqual( + self.get(url='/slash/foo/..')['status'], + 200, + 'match uri trailing dot dot', ) def test_routes_match_uri_case_sensitive(self): |