diff --git a/src/mapml/layers/MapMLLayer.js b/src/mapml/layers/MapMLLayer.js index 336e116f0..a46d1e4a1 100644 --- a/src/mapml/layers/MapMLLayer.js +++ b/src/mapml/layers/MapMLLayer.js @@ -345,6 +345,8 @@ export var MapMLLayer = L.LayerGroup.extend({ layer._titleIsReadOnly = true; } else if (layer._layerEl && layer._layerEl.hasAttribute('label')) { layer._title = layer._layerEl.getAttribute('label').trim(); + } else { + layer._title = M.options.locale.dfLayer; } } function parseLicenseAndLegend() { diff --git a/test/e2e/layers/layerLabel.html b/test/e2e/layers/layerLabel.html new file mode 100644 index 000000000..f4eb9e130 --- /dev/null +++ b/test/e2e/layers/layerLabel.html @@ -0,0 +1,79 @@ + + + + + + + Layer Control Tests + + + + + + + + + + + + + Layer with no label + + + -75.866089 45.463020 + + + + + + + + + \ No newline at end of file diff --git a/test/e2e/layers/layerLabel.test.js b/test/e2e/layers/layerLabel.test.js new file mode 100644 index 000000000..307525703 --- /dev/null +++ b/test/e2e/layers/layerLabel.test.js @@ -0,0 +1,32 @@ +import { test, expect, chromium } from '@playwright/test'; + +test.describe('Layer Label Tests', () => { + let page; + let context; + test.beforeAll(async function () { + context = await chromium.launchPersistentContext(''); + page = + context.pages().find((page) => page.url() === 'about:blank') || + (await context.newPage()); + await page.goto('layerLabel.html'); + }); + + test.afterAll(async function () { + await context.close(); + }); + + test('Name of unnamed layer is Layer', async () => { + await page.waitForTimeout(500); + const label = await page + .locator('body > mapml-viewer > layer-') + .evaluate((elem) => elem.label); + expect(label).toEqual('Layer'); + }); + + test('Unnamed layer shows up as Layer in layer control', async () => { + const text = await page + .locator('body > mapml-viewer >> css=div > label.mapml-layer-item-toggle') + .evaluate((text) => text.textContent); + expect(text).toEqual('Layer'); + }); +});