diff --git a/src/ol/format/WFS.js b/src/ol/format/WFS.js index f30390fa21..7517a120ac 100644 --- a/src/ol/format/WFS.js +++ b/src/ol/format/WFS.js @@ -1323,12 +1323,13 @@ function writeTimeInstant(node, time) { * Encode filter as WFS `Filter` and return the Node. * * @param {import("./filter/Filter.js").default} filter Filter. - * @param {string} version Version. + * @param {string} opt_version WFS version. If not provided defaults to '1.1.0' * @return {Node} Result. * @api */ -export function writeFilter(filter, version) { - const child = createElementNS(OGCNS[version], 'Filter'); +export function writeFilter(filter, opt_version) { + const version = opt_version || '1.1.0'; + const child = createElementNS(getFilterNS(version), 'Filter'); const context = { node: child, }; diff --git a/test/spec/ol/format/wfs.test.js b/test/spec/ol/format/wfs.test.js index e2a22cf55e..a208a988f0 100644 --- a/test/spec/ol/format/wfs.test.js +++ b/test/spec/ol/format/wfs.test.js @@ -1457,20 +1457,33 @@ describe('ol.format.WFS', function () { }); describe('when writing out a WFS Filter', function () { - it('creates a filter', function () { - const text = - '' + - ' ' + - ' ' + - ' name' + - ' Mississippi*' + - ' ' + - ' ' + - ' waterway' + - ' riverbank' + - ' ' + - ' ' + - ''; + const wfs1Filter = + '' + + ' ' + + ' ' + + ' name' + + ' Mississippi*' + + ' ' + + ' ' + + ' waterway' + + ' riverbank' + + ' ' + + ' ' + + ''; + const wfs2Filter = + '' + + ' ' + + ' ' + + ' name' + + ' Mississippi*' + + ' ' + + ' ' + + ' waterway' + + ' riverbank' + + ' ' + + ' ' + + ''; + it('creates a WFS 1.x.x filter', function () { const serialized = writeFilter( andFilter( likeFilter('name', 'Mississippi*'), @@ -1478,7 +1491,26 @@ describe('ol.format.WFS', function () { ), '1.1.0' ); - expect(serialized).to.xmleql(parse(text)); + expect(serialized).to.xmleql(parse(wfs1Filter)); + }); + it('defaults to creating a WFS 1.x.x filter if no version specified', function () { + const serialized = writeFilter( + andFilter( + likeFilter('name', 'Mississippi*'), + equalToFilter('waterway', 'riverbank') + ) + ); + expect(serialized).to.xmleql(parse(wfs1Filter)); + }); + it('creates a WFS 2.x.x filter', function () { + const serialized = writeFilter( + andFilter( + likeFilter('name', 'Mississippi*'), + equalToFilter('waterway', 'riverbank') + ), + '2.0.0' + ); + expect(serialized).to.xmleql(parse(wfs2Filter)); }); });