diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java deleted file mode 100644 index 09508274..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * 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.tools.ant.util.regexp; - -import java.io.IOException; -import java.util.Vector; - -import junit.framework.TestCase; - -/** - * Tests for all implementations of the RegexpMatcher interface. - * - */ -public abstract class RegexpMatcherTest extends TestCase { - - public final static String UNIX_LINE = "\n"; - - private RegexpMatcher reg; - - public abstract RegexpMatcher getImplementation(); - - protected final RegexpMatcher getReg() {return reg;} - - public RegexpMatcherTest(String name) { - super(name); - } - - public void setUp() { - reg = getImplementation(); - } - - public void testMatches() { - reg.setPattern("aaaa"); - assertTrue("aaaa should match itself", reg.matches("aaaa")); - assertTrue("aaaa should match xaaaa", reg.matches("xaaaa")); - assertTrue("aaaa shouldn\'t match xaaa", !reg.matches("xaaa")); - reg.setPattern("^aaaa"); - assertTrue("^aaaa shouldn\'t match xaaaa", !reg.matches("xaaaa")); - assertTrue("^aaaa should match aaaax", reg.matches("aaaax")); - reg.setPattern("aaaa$"); - assertTrue("aaaa$ shouldn\'t match aaaax", !reg.matches("aaaax")); - assertTrue("aaaa$ should match xaaaa", reg.matches("xaaaa")); - reg.setPattern("[0-9]+"); - assertTrue("[0-9]+ should match 123", reg.matches("123")); - assertTrue("[0-9]+ should match 1", reg.matches("1")); - assertTrue("[0-9]+ shouldn\'t match \'\'", !reg.matches("")); - assertTrue("[0-9]+ shouldn\'t match a", !reg.matches("a")); - reg.setPattern("[0-9]*"); - assertTrue("[0-9]* should match 123", reg.matches("123")); - assertTrue("[0-9]* should match 1", reg.matches("1")); - assertTrue("[0-9]* should match \'\'", reg.matches("")); - assertTrue("[0-9]* should match a", reg.matches("a")); - reg.setPattern("([0-9]+)=\\1"); - assertTrue("([0-9]+)=\\1 should match 1=1", reg.matches("1=1")); - assertTrue("([0-9]+)=\\1 shouldn\'t match 1=2", !reg.matches("1=2")); - } - - public void testGroups() { - reg.setPattern("aaaa"); - Vector v = reg.getGroups("xaaaa"); - assertEquals("No parens -> no extra groups", 1, v.size()); - assertEquals("Trivial match with no parens", "aaaa", - (String) v.elementAt(0)); - - reg.setPattern("(aaaa)"); - v = reg.getGroups("xaaaa"); - assertEquals("Trivial match with single paren", 2, v.size()); - assertEquals("Trivial match with single paren, full match", "aaaa", - (String) v.elementAt(0)); - assertEquals("Trivial match with single paren, matched paren", "aaaa", - (String) v.elementAt(0)); - - reg.setPattern("(a+)b(b+)"); - v = reg.getGroups("xaabb"); - assertEquals(3, v.size()); - assertEquals("aabb", (String) v.elementAt(0)); - assertEquals("aa", (String) v.elementAt(1)); - assertEquals("b", (String) v.elementAt(2)); - } - - public void testBugzillaReport14619() { - reg.setPattern("^(.*)/src/((.*/)*)([a-zA-Z0-9_\\.]+)\\.java$"); - Vector v = reg.getGroups("de/tom/src/Google.java"); - assertEquals(5, v.size()); - assertEquals("de/tom", v.elementAt(1)); - assertEquals("", v.elementAt(2)); - assertEquals("", v.elementAt(3)); - assertEquals("Google", v.elementAt(4)); - } - - public void testCaseInsensitiveMatch() { - reg.setPattern("aaaa"); - assertTrue("aaaa doesn't match AAaa", !reg.matches("AAaa")); - assertTrue("aaaa matches AAaa ignoring case", - reg.matches("AAaa", RegexpMatcher.MATCH_CASE_INSENSITIVE)); - } - - -// make sure there are no issues concerning line separator interpretation -// a line separator for regex (perl) is always a unix line (ie \n) - - public void testParagraphCharacter() throws IOException { - reg.setPattern("end of text$"); - assertTrue("paragraph character", !reg.matches("end of text\u2029")); - } - - public void testLineSeparatorCharacter() throws IOException { - reg.setPattern("end of text$"); - assertTrue("line-separator character", !reg.matches("end of text\u2028")); - } - - public void testNextLineCharacter() throws IOException { - reg.setPattern("end of text$"); - assertTrue("next-line character", !reg.matches("end of text\u0085")); - } - - public void testStandaloneCR() throws IOException { - reg.setPattern("end of text$"); - assertTrue("standalone CR", !reg.matches("end of text\r")); - } - - public void testWindowsLineSeparator() throws IOException { - reg.setPattern("end of text$"); - assertTrue("Windows line separator", !reg.matches("end of text\r\n")); - } - - public void testWindowsLineSeparator2() throws IOException { - reg.setPattern("end of text\r$"); - assertTrue("Windows line separator", reg.matches("end of text\r\n")); - } - - public void testUnixLineSeparator() throws IOException { - reg.setPattern("end of text$"); - assertTrue("Unix line separator", reg.matches("end of text\n")); - } - - - public void testMultiVersusSingleLine() throws IOException { - StringBuffer buf = new StringBuffer(); - buf.append("Line1").append(UNIX_LINE); - buf.append("starttest Line2").append(UNIX_LINE); - buf.append("Line3 endtest").append(UNIX_LINE); - buf.append("Line4").append(UNIX_LINE); - String text = buf.toString(); - - doStartTest1(text); - doStartTest2(text); - doEndTest1(text); - doEndTest2(text); - } - - protected void doStartTest1(String text) { - reg.setPattern("^starttest"); - assertTrue("^starttest in default mode", !reg.matches(text)); - assertTrue("^starttest in single line mode", - !reg.matches(text, RegexpMatcher.MATCH_SINGLELINE)); - assertTrue("^starttest in multi line mode", - reg.matches(text, RegexpMatcher.MATCH_MULTILINE)); - } - - protected void doStartTest2(String text) { - reg.setPattern("^Line1"); - assertTrue("^Line1 in default mode", reg.matches(text)); - assertTrue("^Line1 in single line mode", - reg.matches(text, RegexpMatcher.MATCH_SINGLELINE)); - assertTrue("^Line1 in multi line mode", - reg.matches(text, RegexpMatcher.MATCH_MULTILINE)); - } - - protected void doEndTest1(String text) { - reg.setPattern("endtest$"); - assertTrue("endtest$ in default mode", !reg.matches(text)); - assertTrue("endtest$ in single line mode", - !reg.matches(text, RegexpMatcher.MATCH_SINGLELINE)); - assertTrue("endtest$ in multi line mode", - reg.matches(text, RegexpMatcher.MATCH_MULTILINE)); - } - - protected void doEndTest2(String text) { - reg.setPattern("Line4$"); - assertTrue("Line4$ in default mode", reg.matches(text)); - assertTrue("Line4$ in single line mode", - reg.matches(text, RegexpMatcher.MATCH_SINGLELINE)); - assertTrue("Line4$ in multi line mode", - reg.matches(text, RegexpMatcher.MATCH_MULTILINE)); - } - -} |