From 7c2550fefae43121b60703b4d6e6329c883be8fe Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 11 Jun 2013 16:11:06 -0600 Subject: [PATCH] Integration testing for multiplicative operators --- test/spec/ol/expression/expression.test.js | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/test/spec/ol/expression/expression.test.js b/test/spec/ol/expression/expression.test.js index 39c9ac5b43..5bfc6dc091 100644 --- a/test/spec/ol/expression/expression.test.js +++ b/test/spec/ol/expression/expression.test.js @@ -132,6 +132,46 @@ describe('ol.expression.parse', function() { }); + describe('multiplicitave operators', function() { + // http://www.ecma-international.org/ecma-262/5.1/#sec-11.5 + + it('parses * operator', function() { + var expr = ol.expression.parse('foo*bar'); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({foo: 10, bar: 20})).to.be(200); + }); + + it('consumes whitespace as expected with *', function() { + var expr = ol.expression.parse(' foo * bar '); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({foo: 15, bar: 2})).to.be(30); + }); + + it('parses / operator', function() { + var expr = ol.expression.parse('foo/12'); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({foo: 10})).to.be(10 / 12); + }); + + it('consumes whitespace as expected with /', function() { + var expr = ol.expression.parse(' 4 / bar '); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({bar: 3})).to.be(4 / 3); + }); + + it('parses % operator', function() { + var expr = ol.expression.parse('12%foo'); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({foo: 10})).to.be(2); + }); + + it('consumes whitespace as expected with %', function() { + var expr = ol.expression.parse(' 4 %bar '); + expect(expr).to.be.a(ol.expression.Math); + expect(expr.evaluate({bar: 3})).to.be(1); + }); + + }); }); @@ -139,4 +179,5 @@ goog.require('ol.expression'); goog.require('ol.expression.Expression'); goog.require('ol.expression.Identifier'); goog.require('ol.expression.Literal'); +goog.require('ol.expression.Math'); goog.require('ol.expression.Not');