From cdb46752a9a84f4f2219cab74ba669ada53081f9 Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Tue, 30 Apr 2024 20:02:13 +0200 Subject: [PATCH] fix: ensure tilelayer attribution with smart text is displayed as HMTL --- umap/static/umap/js/umap.core.js | 2 +- umap/tests/integration/test_tilelayer.py | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/umap/static/umap/js/umap.core.js b/umap/static/umap/js/umap.core.js index aae48995..06313859 100644 --- a/umap/static/umap/js/umap.core.js +++ b/umap/static/umap/js/umap.core.js @@ -73,7 +73,7 @@ L.DomUtil.add = (tagName, className, container, content) => { if (content.nodeType && content.nodeType === 1) { el.appendChild(content) } else { - el.textContent = content + el.innerHTML = content } } return el diff --git a/umap/tests/integration/test_tilelayer.py b/umap/tests/integration/test_tilelayer.py index c6897935..2a2f35ae 100644 --- a/umap/tests/integration/test_tilelayer.py +++ b/umap/tests/integration/test_tilelayer.py @@ -101,9 +101,9 @@ def test_map_should_display_custom_tilelayer(map, live_server, tilelayers, page) url_pattern = re.compile( r"https://[abc]{1}.basemaps.cartocdn.com/rastertiles/voyager/\d+/\d+/\d+.png" ) - map.settings["properties"]["tilelayer"]["url_template"] = ( - "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png" - ) + map.settings["properties"]["tilelayer"][ + "url_template" + ] = "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png" map.settings["properties"]["tilelayersControl"] = True map.save() page.goto(f"{live_server.url}{map.get_absolute_url()}") @@ -112,3 +112,13 @@ def test_map_should_display_custom_tilelayer(map, live_server, tilelayers, page) iconTiles = page.locator(".leaflet-iconLayers .leaflet-iconLayers-layer") # The second of the list should be the current expect(iconTiles.nth(1)).to_have_css("background-image", url_pattern) + + +def test_can_have_smart_text_in_attribution(tilelayer, map, live_server, page): + map.settings["properties"]["tilelayer"][ + "attribution" + ] = "© [[http://www.openstreetmap.org/copyright|OpenStreetMap]] contributors" + map.save() + page.goto(f"{live_server.url}{map.get_absolute_url()}") + expect(page.get_by_text("© OpenStreetMap contributors")).to_be_visible() + expect(page.get_by_role("link", name="OpenStreetMap")).to_be_visible()