fix: honour datalayersControl=expanded in querystring

fix #1525
This commit is contained in:
Yohan Boniface 2024-01-16 19:58:10 +01:00
parent 3e5927f65e
commit cf13d15753
2 changed files with 44 additions and 0 deletions

View file

@ -122,6 +122,11 @@ L.U.Map.include({
`${this.HIDDABLE_CONTROLS[i]}Control`
)
}
// Specific case for datalayersControl
// which accept "expanded" value, on top of true/false/null
if (L.Util.queryString('datalayersControl') === 'expanded') {
L.Util.setFromQueryString(this.options, 'datalayersControl')
}
this.datalayersOnLoad = L.Util.queryString('datalayers')
this.options.onLoadPanel = L.Util.queryString(
'onLoadPanel',

View file

@ -0,0 +1,39 @@
import pytest
from playwright.sync_api import expect
pytestmark = pytest.mark.django_db
def test_scale_control(map, live_server, datalayer, page):
control = page.locator(".leaflet-control-scale")
page.goto(f"{live_server.url}{map.get_absolute_url()}")
expect(control).to_be_visible()
page.goto(f"{live_server.url}{map.get_absolute_url()}?scaleControl=false")
expect(control).to_be_hidden()
def test_datalayers_control(map, live_server, datalayer, page):
control = page.locator(".umap-browse-toggle")
box = page.locator(".umap-browse-datalayers")
more = page.get_by_title("More controls")
page.goto(f"{live_server.url}{map.get_absolute_url()}")
expect(control).to_be_visible()
expect(box).to_be_hidden()
page.goto(f"{live_server.url}{map.get_absolute_url()}?datalayersControl=true")
expect(control).to_be_visible()
expect(box).to_be_hidden()
page.goto(f"{live_server.url}{map.get_absolute_url()}?datalayersControl=null")
expect(control).to_be_hidden()
expect(more).to_be_visible()
more.click()
expect(control).to_be_visible()
expect(box).to_be_hidden()
page.goto(f"{live_server.url}{map.get_absolute_url()}?datalayersControl=false")
expect(control).to_be_hidden()
expect(more).to_be_visible()
more.click()
expect(control).to_be_hidden()
expect(box).to_be_hidden()
page.goto(f"{live_server.url}{map.get_absolute_url()}?datalayersControl=expanded")
expect(control).to_be_hidden()
expect(box).to_be_visible()