From 379ac8268844b176258a49c8d8cf93c58b3b1128 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 11 Jun 2013 13:28:10 -0600 Subject: [PATCH] Test argument parsing --- test/spec/ol/expression/parser.test.js | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/spec/ol/expression/parser.test.js b/test/spec/ol/expression/parser.test.js index 1ff0e8c9cd..dd0df0be11 100644 --- a/test/spec/ol/expression/parser.test.js +++ b/test/spec/ol/expression/parser.test.js @@ -9,6 +9,42 @@ describe('ol.expression.Parser', function() { }); }); + describe('#parseArguments_()', function() { + + function parse(source) { + var lexer = new ol.expression.Lexer(source); + var parser = new ol.expression.Parser(); + return parser.parseArguments_(lexer); + } + + it('parses comma separated expressions in parens', function() { + var args = parse('(1/3, "foo", true)'); + expect(args).length(3); + + expect(args[0]).to.be.a(ol.expression.Math); + expect(args[0].evaluate()).to.be(1 / 3); + + expect(args[1]).to.be.a(ol.expression.Literal); + expect(args[1].evaluate()).to.be('foo'); + + expect(args[2]).to.be.a(ol.expression.Literal); + expect(args[2].evaluate()).to.be(true); + }); + + it('throws on invalid arg expression', function() { + expect(function() { + parse('(6e)'); + }).throwException(); + }); + + it('throws on unterminated args', function() { + expect(function() { + parse('("foo", 42, )'); + }).throwException(); + }); + + }); + describe('#parseGroupExpression_()', function() { function parse(source) {