From 183b51a1c021f9a105799ffd73c65c01636ae428 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Thu, 15 Aug 2013 14:32:47 -0400 Subject: [PATCH] Parse literal nodes in expressions in addition to text nodes --- src/ol/parser/ogc/filter_v1.js | 2 +- test/spec/ol/parser/ogc/filter_v1_0_0.test.js | 41 ++++++++++++------- 2 files changed, 27 insertions(+), 16 deletions(-) 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'); + }); + }); });