You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jb...@apache.org on 2010/10/10 21:04:15 UTC
svn commit: r1006338 - in /tomcat/taglibs/standard/trunk/impl: ./
src/test/java/org/apache/taglibs/standard/lang/jstl/test/
src/test/resources/ src/test/resources/org/ src/test/resources/org/apache/
src/test/resources/org/apache/taglibs/ src/test/resou...
Author: jboynes
Date: Sun Oct 10 19:04:15 2010
New Revision: 1006338
URL: http://svn.apache.org/viewvc?rev=1006338&view=rev
Log:
make ParserTest pass, assuming EL functions should be allowed
Added:
tomcat/taglibs/standard/trunk/impl/src/test/resources/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt (contents, props changed)
- copied, changed from r1006238, tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt
tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt (contents, props changed)
- copied, changed from r1006238, tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt
Removed:
tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt
tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt
Modified:
tomcat/taglibs/standard/trunk/impl/pom.xml
tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/ParserTest.java
Modified: tomcat/taglibs/standard/trunk/impl/pom.xml
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1006338&r1=1006337&r2=1006338&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/pom.xml (original)
+++ tomcat/taglibs/standard/trunk/impl/pom.xml Sun Oct 10 19:04:15 2010
@@ -130,8 +130,6 @@
<!-- Old tests -->
<!-- Started failing for JSTL 1.2 -->
<exclude>org/apache/taglibs/standard/lang/jstl/test/EvaluationTest.java</exclude>
- <!-- May never have passed -->
- <exclude>org/apache/taglibs/standard/lang/jstl/test/ParserTest.java</exclude>
</excludes>
</configuration>
</plugin>
Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/ParserTest.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/ParserTest.java?rev=1006338&r1=1006337&r2=1006338&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/ParserTest.java (original)
+++ tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/ParserTest.java Sun Oct 10 19:04:15 2010
@@ -13,236 +13,126 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
+ */
package org.apache.taglibs.standard.lang.jstl.test;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.DataInput;
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.io.BufferedReader;
+import java.io.CharArrayReader;
+import java.io.CharArrayWriter;
import java.io.IOException;
-import java.io.PrintStream;
-
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.nio.charset.Charset;
import javax.servlet.jsp.JspException;
-import org.apache.taglibs.standard.lang.jstl.Evaluator;
-
import junit.framework.TestCase;
+import org.apache.taglibs.standard.lang.jstl.Evaluator;
+import org.junit.Assert;
+import org.junit.Test;
/**
- *
* <p>This runs a series of tests specifically for the parser. It
* parses various expressions and prints out the canonical
* representation of those parsed expressions.
- *
+ * <p/>
* <p>The expressions are stored in an input text file, with one line
* per expression. Blank lines and lines that start with # are
* ignored. The results are written to an output file (blank lines
* and # lines are included in the output file). The output file may
* be compared against an existing output file to do regression
* testing.
- *
+ *
* @author Nathan Abramson - Art Technology Group
* @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author$
- **/
+ */
public class ParserTest extends TestCase {
+ private final Charset UTF8 = Charset.forName("UTF-8");
- //-------------------------------------
- // Properties
- //-------------------------------------
-
- //-------------------------------------
- // Member variables
- //-------------------------------------
-
- //-------------------------------------
- /**
- *
- * Constructor
- **/
- public ParserTest ()
- {
- }
-
- //-------------------------------------
- /**
- *
- * Runs the tests, reading expressions from pIn and writing the
- * results to pOut.
- **/
- public static void runTests (DataInput pIn,
- PrintStream pOut)
- throws IOException
- {
- while (true) {
- String str = pIn.readLine ();
- if (str == null) break;
- if (str.startsWith ("#") ||
- "".equals (str.trim ())) {
- pOut.println (str);
- }
- else {
- // For testing non-ASCII values, the string @@non-ascii gets
- // converted internally to '\u1111'
- if ("@@non-ascii".equals (str)) {
- str = "\u1111";
- }
-
- pOut.println ("Attribute value: " + str);
- try {
- String result = Evaluator.parseAndRender (str);
- pOut.println ("Parses to: " + result);
- }
- catch (JspException exc) {
- pOut.println ("Causes an error: " + exc.getMessage ());
- }
- }
- }
-
- }
-
- //-------------------------------------
- /**
- *
- * Runs the tests, reading from the given input file and writing to
- * the given output file.
- **/
- public static void runTests (File pInputFile,
- File pOutputFile)
- throws IOException
- {
- FileInputStream fin = null;
- FileOutputStream fout = null;
- try {
- fin = new FileInputStream (pInputFile);
- BufferedInputStream bin = new BufferedInputStream (fin);
- DataInputStream din = new DataInputStream (bin);
-
- try {
- fout = new FileOutputStream (pOutputFile);
- BufferedOutputStream bout = new BufferedOutputStream (fout);
- PrintStream pout = new PrintStream (bout);
-
- runTests (din, pout);
-
- pout.flush ();
- }
- finally {
- if (fout != null) {
- fout.close ();
- }
- }
- }
- finally {
- if (fin != null) {
- fin.close ();
- }
+ @Test
+ public void testParser() throws IOException {
+ try {
+ System.setProperty("javax.servlet.jsp.functions.allowed", "true");
+ BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("parserTests.txt"), UTF8));
+ CharArrayWriter writer = new CharArrayWriter();
+ PrintWriter out = new PrintWriter(writer);
+
+ x(in, out);
+ out.close();
+ in.close();
+
+ LineNumberReader expected = new LineNumberReader(new InputStreamReader(getClass().getResourceAsStream("parserTestsOutput.txt"), UTF8));
+ LineNumberReader actual = new LineNumberReader(new CharArrayReader(writer.toCharArray()));
+
+ Assert.assertFalse(isDifferentStreams(actual, expected));
+ actual.close();
+ expected.close();
+ } finally {
+ System.clearProperty("javax.servlet.jsp.functions.allowed");
+ }
+ }
+
+ /**
+ * Runs the tests, reading expressions from pIn and writing the
+ * results to pOut.
+ */
+ public static void x(BufferedReader pIn, PrintWriter pOut)
+ throws IOException {
+ while (true) {
+ String str = pIn.readLine();
+ if (str == null) break;
+ if (str.startsWith("#") ||
+ "".equals(str.trim())) {
+ pOut.println(str);
+ } else {
+ // For testing non-ASCII values, the string @@non-ascii gets
+ // converted internally to '\u1111'
+ if ("@@non-ascii".equals(str)) {
+ str = "\u1111";
+ }
+
+ pOut.println("Attribute value: " + str);
+ try {
+ String result = Evaluator.parseAndRender(str);
+ pOut.println("Parses to: " + result);
+ }
+ catch (JspException exc) {
+ pOut.println("Causes an error: " + exc.getMessage());
+ }
+ }
+ }
+
+ }
+
+ /**
+ * Performs a line-by-line comparison of the two files, returning
+ * true if the files are different, false if not.
+ */
+ public static boolean isDifferentStreams(LineNumberReader actual,
+ LineNumberReader expected)
+ throws IOException {
+ while (true) {
+ String str1 = actual.readLine();
+ String str2 = expected.readLine();
+ if (str1 == null &&
+ str2 == null) {
+ return false;
+ } else if (str1 == null ||
+ str2 == null) {
+ return true;
+ } else {
+ if (!str1.equals(str2)) {
+ System.out.println("Files differ at line " + actual.getLineNumber());
+ return true;
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testUnicodeCharacter() throws JspException {
+ Assert.assertEquals("\u1111", Evaluator.parseAndRender("\u1111"));
}
- }
-
- //-------------------------------------
- /**
- *
- * Performs a line-by-line comparison of the two files, returning
- * true if the files are different, false if not.
- **/
- public static boolean isDifferentStreams (DataInput pIn1,
- DataInput pIn2)
- throws IOException
- {
- while (true) {
- String str1 = pIn1.readLine ();
- String str2 = pIn2.readLine ();
- if (str1 == null &&
- str2 == null) {
- return false;
- }
- else if (str1 == null ||
- str2 == null) {
- return true;
- }
- else {
- if (!str1.equals (str2)) {
- return true;
- }
- }
- }
- }
-
- //-------------------------------------
- /**
- *
- * Performs a line-by-line comparison of the two files, returning
- * true if the files are different, false if not.
- **/
- public static void assertDifferentFiles (File pFile1,
- File pFile2)
- throws IOException
- {
- FileInputStream fin1 = null;
- try {
- fin1 = new FileInputStream (pFile1);
- BufferedInputStream bin1 = new BufferedInputStream (fin1);
- DataInputStream din1 = new DataInputStream (bin1);
-
- FileInputStream fin2 = null;
- try {
- fin2 = new FileInputStream (pFile2);
- BufferedInputStream bin2 = new BufferedInputStream (fin2);
- DataInputStream din2 = new DataInputStream (bin2);
-
- if(isDifferentStreams (din1, din2)) {
- fail("Files are different");
- }
- }
- finally {
- if (fin2 != null) {
- fin2.close ();
- }
- }
- }
- finally {
- if (fin1 != null) {
- fin1.close ();
- }
- }
- }
-
- //-------------------------------------
- // Main method
- //-------------------------------------
- /**
- *
- * Runs the parser test
- **/
- public void testParser()
- throws IOException
- {
-
- String input = "test/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt";
- String output = "/tmp/parserTestsOutput.txt";
- String compareName = "test/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt";
-
- File in = new File (input);
- File out = new File (output);
-
- runTests (in, out);
-
- File compare = new File (compareName);
- assertDifferentFiles(out, compare);
- }
-
- //-------------------------------------
- static void usage ()
- {
- System.err.println ("usage: java org.apache.taglibs.standard.lang.jstl.test.ParserTest {input file} {output file} [{compare file}]");
- }
-
- //-------------------------------------
-
}
Copied: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt (from r1006238, tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt)
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt?p2=tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt&p1=tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt&r1=1006238&r2=1006338&rev=1006338&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt (original)
+++ tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt Sun Oct 10 19:04:15 2010
@@ -142,7 +142,3 @@ ${a:b(c,d,e)}
${a(b).c}
${a(b)[c]}
${a[b()]}
-
-# non-ascii input - the parser automatically translates the @@non-ascii
-# into a UNICODE string with value \u1111
-@@non-ascii
Propchange: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTests.txt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt (from r1006238, tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt)
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt?p2=tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt&p1=tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt&r1=1006238&r2=1006338&rev=1006338&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt (original)
+++ tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt Sun Oct 10 19:04:15 2010
@@ -253,8 +253,3 @@ Attribute value: ${a(b)[c]}
Parses to: ${a(b)[c]}
Attribute value: ${a[b()]}
Parses to: ${a[b()]}
-
-# non-ascii input - the parser automatically translates the @@non-ascii
-# into a UNICODE string with value \u1111
-Attribute value: ?
-Parses to: ?
Propchange: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tomcat/taglibs/standard/trunk/impl/src/test/resources/org/apache/taglibs/standard/lang/jstl/test/parserTestsOutput.txt
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org