}
diff --git a/web/client/components/catalog/editor/AdvancedSettings/__tests__/RasterAdvancedSettings-test.js b/web/client/components/catalog/editor/AdvancedSettings/__tests__/RasterAdvancedSettings-test.js
index 344bd2ad93..48ab178a9b 100644
--- a/web/client/components/catalog/editor/AdvancedSettings/__tests__/RasterAdvancedSettings-test.js
+++ b/web/client/components/catalog/editor/AdvancedSettings/__tests__/RasterAdvancedSettings-test.js
@@ -33,7 +33,7 @@ describe('Test Raster advanced settings', () => {
const advancedSettingPanel = document.getElementsByClassName("mapstore-switch-panel");
expect(advancedSettingPanel).toBeTruthy();
const fields = document.querySelectorAll(".form-group");
- expect(fields.length).toBe(10);
+ expect(fields.length).toBe(11);
});
it('test csw advanced options', () => {
ReactDOM.render(, document.getElementById("container"));
@@ -41,7 +41,7 @@ describe('Test Raster advanced settings', () => {
expect(advancedSettingPanel).toBeTruthy();
const fields = document.querySelectorAll(".form-group");
const cswFilters = document.getElementsByClassName("catalog-csw-filters");
- expect(fields.length).toBe(8);
+ expect(fields.length).toBe(9);
expect(cswFilters).toBeTruthy();
});
it('test component onChangeServiceProperty autoload', () => {
@@ -217,11 +217,29 @@ describe('Test Raster advanced settings', () => {
const advancedSettingsPanel = document.getElementsByClassName("mapstore-switch-panel");
expect(advancedSettingsPanel).toBeTruthy();
const formGroup = document.querySelectorAll('.form-group')[3];
- expect(formGroup.textContent.trim()).toBe('catalog.singleTile.label');
+ expect(formGroup.textContent.trim()).toBe('layerProperties.singleTile');
const singleTileLayer = formGroup.querySelector('input[type="checkbox"]');
expect(singleTileLayer).toBeTruthy();
TestUtils.Simulate.change(singleTileLayer, { "target": { "checked": true }});
expect(spyOn).toHaveBeenCalled();
expect(spyOn.calls[0].arguments).toEqual([ 'layerOptions', { singleTile: true } ]);
});
+ it('test component onChangeServiceProperty serverType', () => {
+ const action = {
+ onChangeServiceProperty: () => {}
+ };
+ const spyOn = expect.spyOn(action, 'onChangeServiceProperty');
+ ReactDOM.render(, document.getElementById("container"));
+ const advancedSettingsPanel = document.getElementsByClassName("mapstore-switch-panel");
+ expect(advancedSettingsPanel).toBeTruthy();
+ const serverTypeOption = document.querySelectorAll('input[role="combobox"]')[2];
+ expect(serverTypeOption).toBeTruthy();
+ TestUtils.Simulate.change(serverTypeOption, { target: { value: "geoserver" }});
+ TestUtils.Simulate.keyDown(serverTypeOption, { keyCode: 9, key: 'Tab' });
+ expect(spyOn).toHaveBeenCalled();
+ expect(spyOn.calls[0].arguments).toEqual([ 'layerOptions', { serverType: "geoserver" } ]);
+ });
});
diff --git a/web/client/components/map/cesium/plugins/WMSLayer.js b/web/client/components/map/cesium/plugins/WMSLayer.js
index 5e3a78338a..4b8c52b2cc 100644
--- a/web/client/components/map/cesium/plugins/WMSLayer.js
+++ b/web/client/components/map/cesium/plugins/WMSLayer.js
@@ -12,7 +12,7 @@ import GeoServerBILTerrainProvider from '../../../../utils/cesium/GeoServerBILTe
import assign from 'object-assign';
import {isArray, isEqual} from 'lodash';
import WMSUtils from '../../../../utils/cesium/WMSUtils';
-import { getAuthenticationParam, getURLs } from '../../../../utils/LayersUtils';
+import { getAuthenticationParam, getURLs, getWMSVendorParams } from '../../../../utils/LayersUtils';
import { optionsToVendorParams } from '../../../../utils/VendorParamsUtils';
import { addAuthenticationToSLD, getAuthenticationHeaders } from '../../../../utils/SecurityUtils';
@@ -30,7 +30,7 @@ function wmsToCesiumOptionsSingleTile(options) {
format: isVectorFormat(options.format) && 'image/png' || options.format || 'image/png',
transparent: options.transparent !== undefined ? options.transparent : true,
opacity: opacity,
- tiled: options.tiled !== undefined ? options.tiled : true,
+ ...getWMSVendorParams(options),
layers: options.name,
width: options.size || 2000,
height: options.size || 2000,
diff --git a/web/client/components/map/leaflet/plugins/WMSLayer.js b/web/client/components/map/leaflet/plugins/WMSLayer.js
index 4ab4ed3acb..51192c1eec 100644
--- a/web/client/components/map/leaflet/plugins/WMSLayer.js
+++ b/web/client/components/map/leaflet/plugins/WMSLayer.js
@@ -15,7 +15,7 @@ import objectAssign from 'object-assign';
import {isArray, isNil} from 'lodash';
import {addAuthenticationToSLD, addAuthenticationParameter} from '../../../../utils/SecurityUtils';
import { loadTile, getElevation } from '../../../../utils/ElevationUtils';
-import { creditsToAttribution } from '../../../../utils/LayersUtils';
+import { creditsToAttribution, getWMSVendorParams } from '../../../../utils/LayersUtils';
import { isVectorFormat } from '../../../../utils/VectorTileUtils';
@@ -170,7 +170,7 @@ function wmsToLeafletOptions(options) {
styles: options.style || "",
format: isVectorFormat(options.format) && 'image/png' || options.format || 'image/png',
transparent: options.transparent !== undefined ? options.transparent : true,
- tiled: options.tiled !== undefined ? options.tiled : true,
+ ...getWMSVendorParams(options),
opacity: opacity,
zIndex: options.zIndex,
version: options.version || "1.3.0",
diff --git a/web/client/components/map/openlayers/plugins/WMSLayer.js b/web/client/components/map/openlayers/plugins/WMSLayer.js
index 8d06af0ff9..87ad6931ce 100644
--- a/web/client/components/map/openlayers/plugins/WMSLayer.js
+++ b/web/client/components/map/openlayers/plugins/WMSLayer.js
@@ -20,7 +20,7 @@ import { getConfigProp } from '../../../../utils/ConfigUtils';
import {optionsToVendorParams} from '../../../../utils/VendorParamsUtils';
import {addAuthenticationToSLD, addAuthenticationParameter, getAuthenticationHeaders} from '../../../../utils/SecurityUtils';
-import { creditsToAttribution } from '../../../../utils/LayersUtils';
+import { creditsToAttribution, getWMSVendorParams } from '../../../../utils/LayersUtils';
import MapUtils from '../../../../utils/MapUtils';
import {loadTile, getElevation as getElevationFunc} from '../../../../utils/ElevationUtils';
@@ -123,7 +123,7 @@ function wmsToOpenlayersOptions(options) {
TRANSPARENT: options.transparent !== undefined ? options.transparent : true,
SRS: CoordinatesUtils.normalizeSRS(options.srs || 'EPSG:3857', options.allowedSRS),
CRS: CoordinatesUtils.normalizeSRS(options.srs || 'EPSG:3857', options.allowedSRS),
- TILED: options.singleTile ? false : (!isNil(options.tiled) ? options.tiled : true),
+ ...getWMSVendorParams(options),
VERSION: options.version || "1.3.0"
}, assign(
{},
diff --git a/web/client/epics/catalog.js b/web/client/epics/catalog.js
index d2cf78ac4a..48fdf1876f 100644
--- a/web/client/epics/catalog.js
+++ b/web/client/epics/catalog.js
@@ -176,13 +176,13 @@ export default (API) => ({
API[format]
.textSearch(url, startPosition, maxRecords, text, { ...layerOptions, ...service, options: { service } })
.catch(() => ({ records: [] }))
- ).map(r => ({ ...r, format, url, text, layerOptions }));
+ ).map(r => ({ ...r, format, url, text, layerOptions, service }));
});
return Rx.Observable.forkJoin(actions)
.switchMap((results) => {
if (isArray(results) && results.length) {
return Rx.Observable.of(results.map(r => {
- const { format, url, text, layerOptions, ...result } = r;
+ const { format, url, text, layerOptions, service, ...result } = r;
const locales = currentMessagesSelector(state);
const records = API[format].getCatalogRecords(result, layerOptions, locales) || [];
const record = head(records.filter(rec => rec.identifier || rec.name === text)); // exact match of text and record identifier
@@ -198,6 +198,7 @@ export default (API) => ({
const layerBaseConfig = {}; // DO WE NEED TO FETCH IT FROM STATE???
const authkeyParamName = authkeyParamNameSelector(state);
const layer = API[format].getLayerFromRecord(record, {
+ service,
removeParams: authkeyParamName,
catalogURL: format === 'csw' && url
? url + "?request=GetRecordById&service=CSW&version=2.0.2&elementSetName=full&id=" + record.identifier
diff --git a/web/client/plugins/widgetbuilder/CatalogServiceEditor.jsx b/web/client/plugins/widgetbuilder/CatalogServiceEditor.jsx
index d8fe4c789e..6a206850c2 100644
--- a/web/client/plugins/widgetbuilder/CatalogServiceEditor.jsx
+++ b/web/client/plugins/widgetbuilder/CatalogServiceEditor.jsx
@@ -2,7 +2,6 @@ import React, { useState } from 'react';
import { isEmpty } from 'lodash';
import uuid from 'uuid';
-import {set} from "../../utils/ImmutableUtils";
import CatalogServiceEditorComponent from '../../components/catalog/CatalogServiceEditor';
import { DEFAULT_ALLOWED_PROVIDERS } from '../MetadataExplorer';
@@ -41,17 +40,8 @@ export default ({service: defaultService, catalogServices,
onAddService(newService, existingServices, isNew);
};
- const handleChangeServiceFormat = (property, value) => {
- let currentData = service;
- if (property === "provider") {
- currentData.provider = value;
- }
- if (currentData[property]) {
- currentData[property] = typeof value === 'boolean' ? !(currentData[property]) : value;
- } else {
- currentData = set(`${property}`, value, currentData);
- }
- setService(currentData);
+ const handleChangeServiceProperty = (property, value) => {
+ setService({ ...service, [property]: value });
};
return (
@@ -63,7 +53,7 @@ export default ({service: defaultService, catalogServices,
onChangeServiceFormat={(format) => setService({...service, format})}
onToggleAdvancedSettings={() => setService({...service, showAdvancedSettings: !service.showAdvancedSettings})}
onAddService={addNewService}
- onChangeServiceProperty={handleChangeServiceFormat}
+ onChangeServiceProperty={handleChangeServiceProperty}
onToggleTemplate={() => setService({...service, showTemplate: !service.showTemplate})}
onToggleThumbnail={() => setService({...service, hideThumbnail: !service.hideThumbnail})}
serviceTypes={[{ name: "csw", label: "CSW" }, { name: "wms", label: "WMS" },
diff --git a/web/client/plugins/widgetbuilder/enhancers/layerSelector.js b/web/client/plugins/widgetbuilder/enhancers/layerSelector.js
index 6e68720774..5dba1ae0f5 100644
--- a/web/client/plugins/widgetbuilder/enhancers/layerSelector.js
+++ b/web/client/plugins/widgetbuilder/enhancers/layerSelector.js
@@ -16,7 +16,7 @@ import API from '../../../api/catalog';
export const toLayer = (r, service) => ["tms", "wfs"].includes(service?.type) // for tms and wfs the layer is ready
? r
// the type wms is default (for csw and wms), wmts have to be passed. // TODO: improve and centralize more
- : API[service?.type || 'wms'].getLayerFromRecord(r);
+ : API[service?.type || 'wms'].getLayerFromRecord(r, { service });
// checks for tms wmts in order to addSearch() to skip addSearch
export const addSearchObservable = (selected, service) => ["tms", "wmts"].includes(service?.type) ? Rx.Observable.of(toLayer(selected, service)) : addSearch(toLayer(selected, service));
diff --git a/web/client/translations/data.de-DE.json b/web/client/translations/data.de-DE.json
index 59f857f731..84c2383379 100644
--- a/web/client/translations/data.de-DE.json
+++ b/web/client/translations/data.de-DE.json
@@ -113,6 +113,12 @@
"templateError": "Beim Anwenden der Vorlage auf die vom Server zurückgegebenen Informationen ist ein Fehler aufgetreten. Bitte überprüfen Sie die Vorlage",
"templatePreview": "Vorschau template",
"heightOffset": "Höhenversatz (m)",
+ "wmsLayerTileSize": "Kachelgröße (WMS)",
+ "serverType": "Servertyp",
+ "serverTypeOption": {
+ "noVendor": "No Vendor",
+ "geoserver": "GeoServer"
+ },
"visibilityLimits": {
"title": "Sichtbarkeitsgrenzen",
"serverValuesUpdateUndefined": "Der Server hat keine Skalierungssichtbarkeitsbeschränkungen für diese Ebene angegeben",
@@ -1540,7 +1546,6 @@
"tooltip": "Wendet automatisch die vom Server vorgeschlagenen Sichtbarkeitsgrenzen an"
},
"singleTile": {
- "label": "Single Tile",
"tooltip": "Die Ebene wird als einzelnes Kachelbild gerendert, wenn sie mit aktivierter Option zur Karte hinzugefügt wird."
},
"domainAliases": {
diff --git a/web/client/translations/data.en-US.json b/web/client/translations/data.en-US.json
index 3fdefd1769..1a51a538a4 100644
--- a/web/client/translations/data.en-US.json
+++ b/web/client/translations/data.en-US.json
@@ -113,6 +113,12 @@
"templateError": "There was an error applying the template to the information returned by the server, please check the template",
"templatePreview": "Template preview",
"heightOffset": "Height offset (m)",
+ "wmsLayerTileSize": "Tile size (WMS)",
+ "serverType": "Server Type",
+ "serverTypeOption": {
+ "noVendor": "No Vendor",
+ "geoserver": "GeoServer"
+ },
"visibilityLimits": {
"title": "Visibility limits",
"serverValuesUpdateUndefined": "The server did not provided scale visibility limits for this layer",
@@ -1502,7 +1508,6 @@
"tooltip": "Automatically applies the visibility limits suggested by the server"
},
"singleTile": {
- "label": "Single Tile",
"tooltip": "The layer is rendered as a single tile image when added to the map with this option enabled"
},
"allowUnsecureLayers": {
diff --git a/web/client/translations/data.es-ES.json b/web/client/translations/data.es-ES.json
index 40dfe85a2f..4c96e8f5c9 100644
--- a/web/client/translations/data.es-ES.json
+++ b/web/client/translations/data.es-ES.json
@@ -110,6 +110,12 @@
"templateFormatInfoAlert1": "Haga clic en el botón Editar para agregar una nueva plantilla.",
"templateFormatInfoAlert2": "Use ${ attribute } para ajustar las propiedades que necesita visualizar",
"heightOffset": "Desplazamiento de altura (m)",
+ "wmsLayerTileSize": "Tamaño del mosaico (WMS)",
+ "serverType": "Tipo de servidor",
+ "serverTypeOption": {
+ "noVendor": "No Vendor",
+ "geoserver": "GeoServer"
+ },
"visibilityLimits": {
"title": "Límites de visibilidad",
"serverValuesUpdateUndefined": "El servidor no proporcionó límites de visibilidad de escala para esta capa",
@@ -1502,7 +1508,6 @@
"tooltip": "Aplica automáticamente los límites de visibilidad sugeridos por el servidor"
},
"singleTile": {
- "label": "Single Tile",
"tooltip": "La capa se representa como una sola imagen de mosaico cuando se agrega al mapa con esta opción habilitada"
},
"domainAliases": {
diff --git a/web/client/translations/data.fr-FR.json b/web/client/translations/data.fr-FR.json
index d472425e0c..69ec5e1975 100644
--- a/web/client/translations/data.fr-FR.json
+++ b/web/client/translations/data.fr-FR.json
@@ -113,6 +113,12 @@
"templateError": "Une erreur s'est produite lors de l'application du modèle aux informations renvoyées par le serveur, veuillez vérifier le modèle",
"templatePreview": "Aperçu du modèle",
"heightOffset": "Décalage en hauteur (m)",
+ "wmsLayerTileSize": "Taille de la tuile (WMS)",
+ "serverType": "Type de serveur",
+ "serverTypeOption": {
+ "noVendor": "No Vendor",
+ "geoserver": "GeoServer"
+ },
"visibilityLimits": {
"title": "Limites de visibilité",
"serverValuesUpdateUndefined": "Le serveur n'a pas fourni de limites de visibilité d'échelle pour cette couche",
@@ -1503,7 +1509,6 @@
"tooltip": "Applique automatiquement les limites de visibilité suggérées par le serveur"
},
"singleTile": {
- "label": "Single Tile",
"tooltip": "Lorsque cette option est activée, la couche ajoutée à la carte est rendue sous la forme d'une seule image"
},
"domainAliases": {
diff --git a/web/client/translations/data.it-IT.json b/web/client/translations/data.it-IT.json
index 354988af37..7cf27b8fa5 100644
--- a/web/client/translations/data.it-IT.json
+++ b/web/client/translations/data.it-IT.json
@@ -113,6 +113,12 @@
"templateError": "Si è verificato un errore durante l'applicazione del template alle informazioni restituite dal server, controllare il template.",
"templatePreview": "Anteprima template",
"heightOffset": "Spostamento in altezza (m)",
+ "wmsLayerTileSize": "Dimensione tile (WMS)",
+ "serverType": "Tipo di Server",
+ "serverTypeOption": {
+ "noVendor": "No Vendor",
+ "geoserver": "GeoServer"
+ },
"visibilityLimits": {
"title": "Limiti di visibilità",
"serverValuesUpdateUndefined": "Il server non ha fornito limiti di visibilità di scala per questo livello",
@@ -1502,7 +1508,6 @@
"tooltip": "Applica automaticamente i limiti di visibilità suggeriti dal server"
},
"singleTile": {
- "label": "Single Tile",
"tooltip": "Il layer viene renderizzato come immagine a singola tile quando aggiunto alla mappa con questa opzione abilitata"
},
"domainAliases": {
diff --git a/web/client/utils/LayersUtils.js b/web/client/utils/LayersUtils.js
index 3ea5292dbd..00bbd754dc 100644
--- a/web/client/utils/LayersUtils.js
+++ b/web/client/utils/LayersUtils.js
@@ -628,6 +628,7 @@ export const saveLayer = (layer) => {
featureInfo: layer.featureInfo,
catalogURL: layer.catalogURL,
capabilitiesURL: layer.capabilitiesURL,
+ serverType: layer.serverType,
useForElevation: layer.useForElevation || false,
hidden: layer.hidden || false,
origin: layer.origin,
@@ -646,6 +647,16 @@ export const saveLayer = (layer) => {
layer.credits ? { credits: layer.credits } : {},
!isNil(layer.forceProxy) ? { forceProxy: layer.forceProxy } : {});
};
+
+/**
+ * constants to specify whether we can use some geoserver vendor extensions of if they
+ * should rather be avoided
+*/
+export const ServerTypes = {
+ GEOSERVER: 'geoserver',
+ NO_VENDOR: 'no-vendor'
+};
+
/**
* default initial constant regex rule for searching for a /geoserver/ string in a url
* useful for a reset to an initial state of the rule
@@ -837,6 +848,17 @@ export const removeWorkspace = (layer) => {
return layer;
};
+/**
+ * Returns vendor params that can be used when calling wms server for display requests
+ * @param {layer} the layer object
+ */
+export const getWMSVendorParams = (layer) => {
+ if (layer?.serverType === ServerTypes.NO_VENDOR) {
+ return {};
+ }
+ return { TILED: layer.singleTile ? false : (!isNil(layer.tiled) ? layer.tiled : true)};
+};
+
LayersUtils = {
getGroupByName,
getLayerId,
diff --git a/web/client/utils/PrintUtils.js b/web/client/utils/PrintUtils.js
index e2d835e9ed..d1c0a533d6 100644
--- a/web/client/utils/PrintUtils.js
+++ b/web/client/utils/PrintUtils.js
@@ -21,6 +21,7 @@ import { get as getProjection } from 'ol/proj';
import { isArray, filter, find, isEmpty, toNumber, castArray, reverse } from 'lodash';
import { getFeature } from '../api/WFS';
import { generateEnvString } from './LayerLocalizationUtils';
+import { ServerTypes } from './LayersUtils';
import url from 'url';
import { getStore } from "./StateUtils";
@@ -495,6 +496,17 @@ export function getResolutionMultiplier(printSize, screenSize, dpiRatio = DEFAUL
return printSize / screenSize * dpiRatio;
}
+/**
+ * Returns vendor params that can be used when calling wms server for print requests
+ * @param {layer} the layer object
+ */
+export const getPrintVendorParams = (layer) => {
+ if (layer?.serverType === ServerTypes.NO_VENDOR) {
+ return {};
+ }
+ return { "TILED": true };
+};
+
/**
* Generate the layers (or legend) specification for print.
* @param {array} layers the layers configurations
@@ -523,7 +535,7 @@ export const specCreators = {
],
"customParams": addAuthenticationParameter(PrintUtils.normalizeUrl(layer.url), assign({
"TRANSPARENT": true,
- "TILED": true,
+ ...getPrintVendorParams(layer),
"EXCEPTIONS": "application/vnd.ogc.se_inimage",
"scaleMethod": "accurate",
"ENV": generateEnvString(spec.env)
diff --git a/web/client/utils/__tests__/LayersUtils-test.js b/web/client/utils/__tests__/LayersUtils-test.js
index 6b75943114..24f1a1b0ee 100644
--- a/web/client/utils/__tests__/LayersUtils-test.js
+++ b/web/client/utils/__tests__/LayersUtils-test.js
@@ -32,6 +32,10 @@ const mapquestLayerWithoutApikey = {
const wmsLayer = {
type: 'wms'
};
+const noVendorWmsLayer = {
+ type: 'wms',
+ serverType: 'no-vendor'
+};
describe('LayersUtils', () => {
it('getLayerUrl supports single and multiple url layers', () => {
expect(['a', 'b']).toContain(LayersUtils.getLayerUrl({url: ['a', 'b']}));
@@ -1409,4 +1413,9 @@ describe('LayersUtils', () => {
expect(LayersUtils.removeWorkspace('workspace:layerName')).toBe('layerName');
expect(LayersUtils.removeWorkspace('layerName')).toBe('layerName');
});
+ it('getWMSVendorParams', () => {
+ const params = LayersUtils.getWMSVendorParams(wmsLayer);
+ expect(params.TILED).toBe(true);
+ expect(LayersUtils.getWMSVendorParams(noVendorWmsLayer)).toEqual({});
+ });
});
diff --git a/web/client/utils/__tests__/MapUtils-test.js b/web/client/utils/__tests__/MapUtils-test.js
index 07661d5ea7..ec8b6b68a9 100644
--- a/web/client/utils/__tests__/MapUtils-test.js
+++ b/web/client/utils/__tests__/MapUtils-test.js
@@ -326,6 +326,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -375,6 +376,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -424,6 +426,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -473,6 +476,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -695,6 +699,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -744,6 +749,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -793,6 +799,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -842,6 +849,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -891,6 +899,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -940,6 +949,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1129,6 +1139,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1178,6 +1189,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1227,6 +1239,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1431,6 +1444,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1485,6 +1499,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1533,6 +1548,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -1702,6 +1718,7 @@ describe('Test the MapUtils', () => {
thumbURL: undefined,
group: undefined,
search: {},
+ serverType: undefined,
source: undefined,
name: 'annotations',
opacity: undefined,
@@ -1873,6 +1890,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -2037,6 +2055,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -2241,6 +2260,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -2290,6 +2310,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -2339,6 +2360,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
@@ -2388,6 +2410,7 @@ describe('Test the MapUtils', () => {
params: {},
provider: undefined,
search: {},
+ serverType: undefined,
singleTile: false,
source: undefined,
style: undefined,
diff --git a/web/client/utils/__tests__/PrintUtils-test.js b/web/client/utils/__tests__/PrintUtils-test.js
index 9f68a0f447..0a352c8d6e 100644
--- a/web/client/utils/__tests__/PrintUtils-test.js
+++ b/web/client/utils/__tests__/PrintUtils-test.js
@@ -24,6 +24,7 @@ import {
getMapTransformerChain,
getSpecTransformerChain,
getValidatorsChain,
+ getPrintVendorParams,
resetDefaultPrintingService,
getDefaultPrintingService
} from '../PrintUtils';
@@ -41,6 +42,13 @@ const layer = {
params: { myparam: "myvalue" }
};
+const noVendorLayer = {
+ url: "http://mapproxy",
+ name: "some_layer",
+ type: "wms",
+ serverType: "no-vendor"
+};
+
const layerSottoPasso = {
id: 'DBT:SOTTOPASSO__6',
type: 'wms',
@@ -519,6 +527,17 @@ describe('PrintUtils', () => {
expect(rgb).toExist();
expect(rgb).toBe("rgb(255, 255, 255)");
});
+ it('getPrintVendorParams default', () => {
+ const params = getPrintVendorParams(layer);
+ expect(params).toExist();
+ expect(params.TILED).toBe(true);
+ });
+ it('getPrintVendorParams no-vendor', () => {
+ const params = getPrintVendorParams(noVendorLayer);
+ expect(params).toExist();
+ expect(params).toEqual({});
+ });
+
describe('specCreators', () => {
describe('opacity', () => {
const testBase = {