diff --git a/src/ol/parser/ogc/filter_v1.js b/src/ol/parser/ogc/filter_v1.js
index 1deca301fa..43c13a82e4 100644
--- a/src/ol/parser/ogc/filter_v1.js
+++ b/src/ol/parser/ogc/filter_v1.js
@@ -39,7 +39,7 @@ ol.parser.ogc.Filter_v1 = function() {
if (obj.property) {
expressions.push(obj.property);
} else if (goog.isDef(obj.value)) {
- return obj.value;
+ expressions.push(obj.value);
}
break;
case 3: // text node
diff --git a/test/spec/ol/parser/ogc/filter_v1_0_0.test.js b/test/spec/ol/parser/ogc/filter_v1_0_0.test.js
index be7de99cee..941bc62bb6 100644
--- a/test/spec/ol/parser/ogc/filter_v1_0_0.test.js
+++ b/test/spec/ol/parser/ogc/filter_v1_0_0.test.js
@@ -235,21 +235,32 @@ describe('ol.parser.ogc.Filter_v1_0_0', function() {
});
describe('_expression reader', function() {
- it('handles combined propertyname and literal',
- function() {
- var xml = '10';
- var reader = parser.readers['http://www.opengis.net/ogc'][
- '_expression'];
- var expr = reader.call(parser, goog.dom.xml.loadXml(
- xml).documentElement);
- expect(expr).to.be.a(ol.expr.Literal);
- expect(expr.getValue()).to.equal(10);
- xml = '' +
- 'fooxbar';
- expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
- expect(expr.evaluate({x: 4})).to.eql('foo4bar');
- });
+ it('handles combined propertyname and text', function() {
+ var xml = '10';
+ var reader = parser.readers['http://www.opengis.net/ogc'][
+ '_expression'];
+ var expr = reader.call(parser, goog.dom.xml.loadXml(
+ xml).documentElement);
+ expect(expr).to.be.a(ol.expr.Literal);
+ expect(expr.getValue()).to.equal(10);
+ xml = '' +
+ 'fooxbar';
+ expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
+ expect(expr.evaluate({x: 4})).to.eql('foo4bar');
+ });
+
+ it('handles combined propertyname and literal', function() {
+ var reader = parser.readers['http://www.opengis.net/ogc'][
+ '_expression'];
+ var xml = '' +
+ 'bar' +
+ 'x' +
+ 'foo';
+ var expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
+ expect(expr.evaluate({x: 42})).to.eql('bar42foo');
+ });
+
});
});