Parse literal nodes in expressions in addition to text nodes
This commit is contained in:
@@ -39,7 +39,7 @@ ol.parser.ogc.Filter_v1 = function() {
|
|||||||
if (obj.property) {
|
if (obj.property) {
|
||||||
expressions.push(obj.property);
|
expressions.push(obj.property);
|
||||||
} else if (goog.isDef(obj.value)) {
|
} else if (goog.isDef(obj.value)) {
|
||||||
return obj.value;
|
expressions.push(obj.value);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3: // text node
|
case 3: // text node
|
||||||
|
|||||||
@@ -235,8 +235,7 @@ describe('ol.parser.ogc.Filter_v1_0_0', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('_expression reader', function() {
|
describe('_expression reader', function() {
|
||||||
it('handles combined propertyname and literal',
|
it('handles combined propertyname and text', function() {
|
||||||
function() {
|
|
||||||
var xml = '<ogc:UpperBoundary xmlns:ogc="' +
|
var xml = '<ogc:UpperBoundary xmlns:ogc="' +
|
||||||
'http://www.opengis.net/ogc">10</ogc:UpperBoundary>';
|
'http://www.opengis.net/ogc">10</ogc:UpperBoundary>';
|
||||||
var reader = parser.readers['http://www.opengis.net/ogc'][
|
var reader = parser.readers['http://www.opengis.net/ogc'][
|
||||||
@@ -250,6 +249,18 @@ describe('ol.parser.ogc.Filter_v1_0_0', function() {
|
|||||||
expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
|
expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
|
||||||
expect(expr.evaluate({x: 4})).to.eql('foo4bar');
|
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 = '<ogc:UpperBoundary xmlns:ogc="http://www.opengis.net/ogc">' +
|
||||||
|
'<ogc:Literal>bar</ogc:Literal>' +
|
||||||
|
'<ogc:PropertyName>x</ogc:PropertyName>' +
|
||||||
|
'<ogc:Literal>foo</ogc:Literal></ogc:UpperBoundary>';
|
||||||
|
var expr = reader.call(parser, goog.dom.xml.loadXml(xml).documentElement);
|
||||||
|
expect(expr.evaluate({x: 42})).to.eql('bar42foo');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user