summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/browser/webengine/webview.py11
-rw-r--r--tests/unit/browser/webengine/test_webview.py18
2 files changed, 24 insertions, 5 deletions
diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py
index 4fb48c060..61f64724d 100644
--- a/qutebrowser/browser/webengine/webview.py
+++ b/qutebrowser/browser/webengine/webview.py
@@ -276,7 +276,16 @@ class WebEnginePage(QWebEnginePage):
mimes = {entry for entry in upstream_mimetypes if "/" in entry}
python_suffixes = set()
for mime in mimes:
- python_suffixes.update(mimetypes.guess_all_extensions(mime))
+ if mime.endswith("/*"):
+ python_suffixes.update(
+ [
+ suffix
+ for suffix, mimetype in mimetypes.types_map.items()
+ if mimetype.startswith(mime[:-1])
+ ]
+ )
+ else:
+ python_suffixes.update(mimetypes.guess_all_extensions(mime))
return python_suffixes - suffixes
def chooseFiles(
diff --git a/tests/unit/browser/webengine/test_webview.py b/tests/unit/browser/webengine/test_webview.py
index b213713e2..2789dcc9f 100644
--- a/tests/unit/browser/webengine/test_webview.py
+++ b/tests/unit/browser/webengine/test_webview.py
@@ -65,14 +65,22 @@ def test_enum_mappings(enum_type, naming, mapping):
@pytest.fixture
def suffix_mocks(monkeypatch):
+ types_map = {
+ ".jpg": "image/jpeg",
+ ".jpe": "image/jpeg",
+ ".png": "image/png",
+ ".m4v": "video/mp4",
+ ".mpg4": "video/mp4",
+ }
+ mimetypes_map = {} # mimetype -> [suffixes] map
+ for suffix, mime in types_map.items():
+ mimetypes_map[mime] = mimetypes_map.get(mime, []) + [suffix]
+
def guess(mime):
- mimetypes_map = {
- "image/jpeg": [".jpg", ".jpe"],
- "video/mp4": [".m4v", ".mpg4"],
- }
return mimetypes_map.get(mime, [])
monkeypatch.setattr(mimetypes, "guess_all_extensions", guess)
+ monkeypatch.setattr(mimetypes, "types_map", types_map)
def version(string):
if string == "6.2.3":
@@ -95,6 +103,8 @@ EXTRA_SUFFIXES_PARAMS = [
set(),
), # not sure why black reformats this one and not the others
(["image/jpeg", "video/mp4"], {".jpg", ".jpe", ".m4v", ".mpg4"}),
+ (["image/*"], {".jpg", ".jpe", ".png"}),
+ (["image/*", ".jpg"], {".jpe", ".png"}),
]