diff options
-rw-r--r-- | qutebrowser/browser/navigate.py | 4 | ||||
-rw-r--r-- | tests/unit/browser/test_navigate.py | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/qutebrowser/browser/navigate.py b/qutebrowser/browser/navigate.py index b852ab29e..bace6fa6a 100644 --- a/qutebrowser/browser/navigate.py +++ b/qutebrowser/browser/navigate.py @@ -134,13 +134,13 @@ def path_up(url, count): """ urlutils.ensure_valid(url) url = url.adjusted(QUrl.RemoveFragment | QUrl.RemoveQuery) - path = url.path() + path = url.path(QUrl.FullyEncoded) if not path or path == '/': raise Error("Can't go up!") for _i in range(0, min(count, path.count('/'))): path = posixpath.join(path, posixpath.pardir) path = posixpath.normpath(path) - url.setPath(path) + url.setPath(path, QUrl.StrictMode) return url diff --git a/tests/unit/browser/test_navigate.py b/tests/unit/browser/test_navigate.py index 5fe0acbf6..5a93a517c 100644 --- a/tests/unit/browser/test_navigate.py +++ b/tests/unit/browser/test_navigate.py @@ -187,6 +187,8 @@ class TestUp: ('/one/two/three', 1, '/one/two'), ('/one/two/three?foo=bar', 1, '/one/two'), ('/one/two/three', 2, '/one'), + ('/one/two%2Fthree', 1, '/one'), + ('/one/two%2Fthree/four', 1, '/one/two%2Fthree'), ]) def test_up(self, url_suffix, count, expected_suffix): url_base = 'https://example.com' |