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));
});
});