From cf555b8aec33a3b39c3437a919c8b3fc8751fc98 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 9 Jan 2020 10:08:52 +0100
Subject: [PATCH] Fixed broken HTML manifest regex
---
api/funkwhale_api/common/middleware.py | 2 +-
api/tests/common/test_middleware.py | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/api/funkwhale_api/common/middleware.py b/api/funkwhale_api/common/middleware.py
index 69d34e2b08..9e2a59dca2 100644
--- a/api/funkwhale_api/common/middleware.py
+++ b/api/funkwhale_api/common/middleware.py
@@ -77,7 +77,7 @@ def serve_spa(request):
return http.HttpResponse(head + tail)
-MANIFEST_LINK_REGEX = re.compile(r"<link .*rel=(?:'|\")?manifest(?:'|\")?.*>")
+MANIFEST_LINK_REGEX = re.compile(r"<link [^>]*rel=(?:'|\")?manifest(?:'|\")?[^>]*>")
def replace_manifest_url(head, new_url):
diff --git a/api/tests/common/test_middleware.py b/api/tests/common/test_middleware.py
index c67982f860..d3908e3f9f 100644
--- a/api/tests/common/test_middleware.py
+++ b/api/tests/common/test_middleware.py
@@ -274,7 +274,9 @@ def test_throttle_status_middleware_returns_proper_response(mocker):
def test_rewrite_manifest_json_url(link, new_url, expected, mocker, settings):
settings.FUNKWHALE_SPA_REWRITE_MANIFEST = True
settings.FUNKWHALE_SPA_REWRITE_MANIFEST_URL = new_url
- spa_html = "<html><head>{}</head></html>".format(link)
+ spa_html = "<html><head><link rel=before>{}<link rel=after></head></html>".format(
+ link
+ )
request = mocker.Mock(path="/")
mocker.patch.object(middleware, "get_spa_html", return_value=spa_html)
mocker.patch.object(
@@ -283,7 +285,9 @@ def test_rewrite_manifest_json_url(link, new_url, expected, mocker, settings):
response = middleware.serve_spa(request)
assert response.status_code == 200
- expected_html = "<html><head>{}\n\n</head></html>".format(expected)
+ expected_html = "<html><head><link rel=before>{}<link rel=after>\n\n</head></html>".format(
+ expected
+ )
assert response.content == expected_html.encode()
--
GitLab