[Templates-cvs] cvs commit: TT3/t/parser expr.t
cvs@template-toolkit.org
cvs@template-toolkit.org
Thu, 02 Dec 2004 17:03:22 +0000
cvs 04/12/02 17:03:22
Modified: t/parser expr.t
Log:
* added a couple more tests
Revision Changes Path
1.7 +146 -7 TT3/t/parser/expr.t
Index: expr.t
===================================================================
RCS file: /template-toolkit/TT3/t/parser/expr.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- expr.t 2004/11/26 12:33:34 1.6
+++ expr.t 2004/12/02 17:03:18 1.7
@@ -10,7 +10,7 @@
# This is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
-# $Id: expr.t,v 1.6 2004/11/26 12:33:34 abw Exp $
+# $Id: expr.t,v 1.7 2004/12/02 17:03:18 abw Exp $
#
#========================================================================
@@ -20,7 +20,7 @@
use lib qw( ./lib ../lib ../../lib );
use Template::Parser;
use Template::Generator::Debug;
-use Template::Test tests => 22, import => ':all';
+use Template::Test tests => 25, import => ':all';
our $DEBUG =
$Template::Parser::DEBUG =
@@ -47,6 +47,14 @@
my @lines = split(/\n/, $test->{ input });
my $result = '';
+ # -- block -- flag indicates one single test, otherwise we
+ # split the block into separate lines
+ if ($test->{ inflag }->{ block }) {
+ @lines = $test->{ input };
+ }
+ else {
+ @lines = split(/\n/, $test->{ input });
+ }
foreach my $line (@lines) {
my $out = eval {
@@ -123,6 +131,11 @@
# unary operators
#------------------------------------------------------------------------
+-- test unary no term error --
+-
+-- expect --
+<ERROR:unexpected end of statement after '-' where expression expected>
+
-- test unary minus --
-a
- b
@@ -341,8 +354,45 @@
>
--- test TODO: more tests for binary operators --
--- skip --
+-- test binary no term error --
+a -
+-- expect --
+<ERROR:unexpected end of statement after '-' where expression expected>
+
+-- test complex binary operators --
+10 + 20 < 30 ? 40 / 50 : 60 * (70 + 80)
+-- expect --
+<tertiary:
+ <expression:
+ <binary:
+ <number:10>
+ <op:+>
+ <number:20>
+ <op:<>
+ <number:30>
+ >
+ >
+ <true:
+ <binary:
+ <number:40>
+ <op:/>
+ <number:50>
+ >
+ >
+ <false:
+ <binary:
+ <number:60>
+ <op:*>
+ <parens:
+ <binary:
+ <number:70>
+ <op:+>
+ <number:80>
+ >
+ >
+ >
+ >
+>
#------------------------------------------------------------------------
@@ -469,10 +519,29 @@
>
>
+-- test parens with comments --
+-- block --
+( # this is a comment
+ 10 # so is this
+ + # I'm getting bored
+ 20 # of writing all these
+ * # comments
+ 30 # so I'll stop
+)
+-- expect --
+<parens:
+ <binary:
+ <number:10>
+ <op:+>
+ <number:20>
+ <op:*>
+ <number:30>
+ >
+>
#------------------------------------------------------------------------
-# tertiary operators
+# tertiary operator
#------------------------------------------------------------------------
-- test tertiary --
@@ -489,9 +558,79 @@
<number:30>
>
>
+
+
+-- test tertiary complex --
+-- block --
+1 + 2
+ ? 3 + 4
+ ? 5 + 6
+ : 7 + 8
+ ? 9 + 10
+ : 11 + 12
+ : 13 + 14
+
+-- expect --
+<tertiary:
+ <expression:
+ <binary:
+ <number:1>
+ <op:+>
+ <number:2>
+ >
+ >
+ <true:
+ <tertiary:
+ <expression:
+ <binary:
+ <number:3>
+ <op:+>
+ <number:4>
+ >
+ >
+ <true:
+ <binary:
+ <number:5>
+ <op:+>
+ <number:6>
+ >
+ >
+ <false:
+ <tertiary:
+ <expression:
+ <binary:
+ <number:7>
+ <op:+>
+ <number:8>
+ >
+ >
+ <true:
+ <binary:
+ <number:9>
+ <op:+>
+ <number:10>
+ >
+ >
+ <false:
+ <binary:
+ <number:11>
+ <op:+>
+ <number:12>
+ >
+ >
+ >
+ >
+ >
+ >
+ <false:
+ <binary:
+ <number:13>
+ <op:+>
+ <number:14>
+ >
+ >
+>
--- test TODO: more tests for tertiary operators --
--- skip --
__END__