diff --git a/api/funkwhale_api/common/middleware.py b/api/funkwhale_api/common/middleware.py index 69d34e2b08d0eb27f932f8eeddfa7e911beebbe1..9e2a59dca25d289953dff7b32de0ddba8a0745ef 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 c67982f860acfdb0d401c31dc427ea81ff4f55a7..d3908e3f9f45d3417f634cfd94fb3138807a4df5 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()