diff options
Diffstat (limited to 'js_tests/gis/mapwidget.test.js')
| -rw-r--r-- | js_tests/gis/mapwidget.test.js | 266 |
1 files changed, 175 insertions, 91 deletions
diff --git a/js_tests/gis/mapwidget.test.js b/js_tests/gis/mapwidget.test.js index 4f2f3bb91c..838cf22219 100644 --- a/js_tests/gis/mapwidget.test.js +++ b/js_tests/gis/mapwidget.test.js @@ -1,157 +1,232 @@ /* global QUnit, MapWidget, ol */ -'use strict'; +"use strict"; -QUnit.module('gis.OLMapWidget'); +QUnit.module("gis.OLMapWidget"); -QUnit.test('MapWidget.featureAdded', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.featureAdded", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; const widget = new MapWidget(options); assert.equal(widget.featureCollection.getLength(), 1); widget.serializeFeatures(); assert.equal( - document.getElementById('id_point').value, + document.getElementById("id_point").value, '{"type":"Point","coordinates":[7.8177,47.397]}', - 'Point added to vector layer' + "Point added to vector layer", ); }); -QUnit.test('MapWidget.map_srid', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.map_srid", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; const widget = new MapWidget(options); - assert.equal(widget.map.getView().getProjection().getCode(), 'EPSG:3857', 'SRID 3857'); + assert.equal( + widget.map.getView().getProjection().getCode(), + "EPSG:3857", + "SRID 3857", + ); }); -QUnit.test('MapWidget.defaultCenter', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.defaultCenter", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; let widget = new MapWidget(options); - assert.equal(widget.defaultCenter().toString(), '0,0', 'Default center at 0, 0'); + assert.equal( + widget.defaultCenter().toString(), + "0,0", + "Default center at 0, 0", + ); options.default_lat = 47.08; options.default_lon = 6.81; widget = new MapWidget(options); assert.equal( widget.defaultCenter().toString(), - '6.81,47.08', - 'Default center at 6.81, 47.08' + "6.81,47.08", + "Default center at 6.81, 47.08", ); assert.equal(Math.round(widget.map.getView().getZoom()), 17); }); -QUnit.test('MapWidget.interactions', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.interactions", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; const widget = new MapWidget(options); assert.equal(Object.keys(widget.interactions).length, 2); - assert.equal(widget.interactions.draw.getActive(), false, "Draw is inactive with an existing point"); - assert.equal(widget.interactions.modify.getActive(), true, "Modify is active with an existing point"); + assert.equal( + widget.interactions.draw.getActive(), + false, + "Draw is inactive with an existing point", + ); + assert.equal( + widget.interactions.modify.getActive(), + true, + "Modify is active with an existing point", + ); }); -QUnit.test('MapWidget.clearFeatures', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.clearFeatures", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; const widget = new MapWidget(options); - const initial_value = document.getElementById('id_point').value; + const initial_value = document.getElementById("id_point").value; widget.clearFeatures(); - assert.equal(document.getElementById('id_point').value, ""); - document.getElementById('id_point').value = initial_value; + assert.equal(document.getElementById("id_point").value, ""); + document.getElementById("id_point").value = initial_value; }); -QUnit.test('MapWidget.multipolygon', function(assert) { - const options = {id: 'id_multipolygon', map_id: 'id_multipolygon_map', geom_name: 'MultiPolygon'}; +QUnit.test("MapWidget.multipolygon", function (assert) { + const options = { + id: "id_multipolygon", + map_id: "id_multipolygon_map", + geom_name: "MultiPolygon", + }; const widget = new MapWidget(options); assert.ok(widget.options.is_collection); - assert.equal(widget.interactions.draw.getActive(), true, "Draw is active with no existing content"); + assert.equal( + widget.interactions.draw.getActive(), + true, + "Draw is active with no existing content", + ); }); -QUnit.test('MapWidget.IsCollection', function(assert) { - const options = {id: 'id_point', map_id: 'id_point_map', geom_name: 'Point'}; +QUnit.test("MapWidget.IsCollection", function (assert) { + const options = { + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }; let widget = new MapWidget(options); assert.notOk(widget.options.is_collection); // Empty the default initial Point - document.getElementById('id_point').value = ""; + document.getElementById("id_point").value = ""; - options.geom_name = 'Polygon'; + options.geom_name = "Polygon"; widget = new MapWidget(options); assert.notOk(widget.options.is_collection); - options.geom_name = 'LineString'; + options.geom_name = "LineString"; widget = new MapWidget(options); assert.notOk(widget.options.is_collection); - options.geom_name = 'MultiPoint'; + options.geom_name = "MultiPoint"; widget = new MapWidget(options); assert.ok(widget.options.is_collection); - options.geom_name = 'MultiPolygon'; + options.geom_name = "MultiPolygon"; widget = new MapWidget(options); assert.ok(widget.options.is_collection); - options.geom_name = 'MultiLineString'; + options.geom_name = "MultiLineString"; widget = new MapWidget(options); assert.ok(widget.options.is_collection); - options.geom_name = 'GeometryCollection'; + options.geom_name = "GeometryCollection"; widget = new MapWidget(options); assert.ok(widget.options.is_collection); }); -QUnit.test('MapWidget.layerBuilder.osm returns OSM layer', function(assert) { +QUnit.test("MapWidget.layerBuilder.osm returns OSM layer", function (assert) { const layer = MapWidget.layerBuilder.osm(); - assert.ok(layer instanceof ol.layer.Tile, 'Layer is Tile'); - assert.ok(layer.getSource() instanceof ol.source.OSM, 'Source is OSM'); + assert.ok(layer instanceof ol.layer.Tile, "Layer is Tile"); + assert.ok(layer.getSource() instanceof ol.source.OSM, "Source is OSM"); }); -QUnit.test('MapWidget.layerBuilder.nasaWorldview returns XYZ layer', function(assert) { - const layer = MapWidget.layerBuilder.nasaWorldview(); - assert.ok(layer instanceof ol.layer.Tile, 'Layer is Tile'); - assert.ok(layer.getSource() instanceof ol.source.XYZ, 'Source is XYZ'); - assert.ok(layer.getSource().getUrls()[0].includes('earthdata.nasa.gov'), 'URL is NASA-hosted'); -}); +QUnit.test( + "MapWidget.layerBuilder.nasaWorldview returns XYZ layer", + function (assert) { + const layer = MapWidget.layerBuilder.nasaWorldview(); + assert.ok(layer instanceof ol.layer.Tile, "Layer is Tile"); + assert.ok(layer.getSource() instanceof ol.source.XYZ, "Source is XYZ"); + assert.ok( + layer.getSource().getUrls()[0].includes("earthdata.nasa.gov"), + "URL is NASA-hosted", + ); + }, +); -QUnit.test('MapWidget uses default OSM base layer when none specified', function(assert) { - const widget = new MapWidget({ - id: 'id_point', - map_id: 'id_point_map', - geom_name: 'Point' - }); - assert.ok(widget.baseLayer.getSource() instanceof ol.source.OSM, 'Default base layer is OSM'); -}); +QUnit.test( + "MapWidget uses default OSM base layer when none specified", + function (assert) { + const widget = new MapWidget({ + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + }); + assert.ok( + widget.baseLayer.getSource() instanceof ol.source.OSM, + "Default base layer is OSM", + ); + }, +); -QUnit.test('MapWidget uses named base layer from layerBuilder', function(assert) { - const widget = new MapWidget({ - id: 'id_point', - map_id: 'id_point_map', - geom_name: 'Point', - base_layer: 'nasaWorldview' - }); - assert.ok(widget.baseLayer.getSource() instanceof ol.source.XYZ, 'Uses named base layer from builder'); -}); +QUnit.test( + "MapWidget uses named base layer from layerBuilder", + function (assert) { + const widget = new MapWidget({ + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + base_layer: "nasaWorldview", + }); + assert.ok( + widget.baseLayer.getSource() instanceof ol.source.XYZ, + "Uses named base layer from builder", + ); + }, +); -QUnit.test('MapWidget uses passed-in base layer object directly', function(assert) { - const customLayer = new ol.layer.Tile({source: new ol.source.OSM()}); - const widget = new MapWidget({ - id: 'id_point', - map_id: 'id_point_map', - geom_name: 'Point', - base_layer: customLayer - }); - assert.strictEqual(widget.baseLayer, customLayer, 'Uses provided layer object'); -}); +QUnit.test( + "MapWidget uses passed-in base layer object directly", + function (assert) { + const customLayer = new ol.layer.Tile({ source: new ol.source.OSM() }); + const widget = new MapWidget({ + id: "id_point", + map_id: "id_point_map", + geom_name: "Point", + base_layer: customLayer, + }); + assert.strictEqual( + widget.baseLayer, + customLayer, + "Uses provided layer object", + ); + }, +); -QUnit.test('initMapWidgetInSection initializes widgets and skips __prefix__', function(assert) { - const wrapper1 = document.createElement('div'); - wrapper1.className = 'dj_map_wrapper'; - wrapper1.id = 'id_point_map_wrapper'; - wrapper1.innerHTML = ` +QUnit.test( + "initMapWidgetInSection initializes widgets and skips __prefix__", + function (assert) { + const wrapper1 = document.createElement("div"); + wrapper1.className = "dj_map_wrapper"; + wrapper1.id = "id_point_map_wrapper"; + wrapper1.innerHTML = ` <textarea id="id_point"></textarea> <div class="dj_map" id="id_point_map"></div> <script type="application/json" id="id_point_mapwidget_options"> { "geom_name": "Point" } </script> `; - document.body.appendChild(wrapper1); + document.body.appendChild(wrapper1); - const wrapper2 = document.createElement('div'); - wrapper2.className = 'dj_map_wrapper'; - wrapper2.id = 'form-__prefix__-map_wrapper'; - wrapper2.innerHTML = ` + const wrapper2 = document.createElement("div"); + wrapper2.className = "dj_map_wrapper"; + wrapper2.id = "form-__prefix__-map_wrapper"; + wrapper2.innerHTML = ` <textarea id="id_fake"></textarea> <div class="dj_map" id="id_fake_map"></div> <script type="application/json" id="id_fake_mapwidget_options"> @@ -159,16 +234,25 @@ QUnit.test('initMapWidgetInSection initializes widgets and skips __prefix__', fu </script> `; - document.body.appendChild(wrapper2); + document.body.appendChild(wrapper2); - const maps = window.initMapWidgetInSection(document); + const maps = window.initMapWidgetInSection(document); - assert.equal(maps.length, 1, 'Only one map widget is initialized'); - assert.ok(maps[0] instanceof MapWidget, 'Map is instance of MapWidget'); - assert.equal(maps[0].options.id, 'id_point', 'Correct widget was initialized'); - assert.equal(maps[0].options.map_id, 'id_point_map', 'Map ID is correct'); + assert.equal(maps.length, 1, "Only one map widget is initialized"); + assert.ok(maps[0] instanceof MapWidget, "Map is instance of MapWidget"); + assert.equal( + maps[0].options.id, + "id_point", + "Correct widget was initialized", + ); + assert.equal( + maps[0].options.map_id, + "id_point_map", + "Map ID is correct", + ); - // Clean up - wrapper1.remove(); - wrapper2.remove(); -}); + // Clean up + wrapper1.remove(); + wrapper2.remove(); + }, +); |
