import junit.framework.*; import java.util.regex.Pattern; /** * * @author <a href="mailto:toby.h.ferguson@sun.com">Toby H Ferguson</a> * @version $Revision: 1.1 $ */ public class ContextPathTest extends TestCase { // private static final String pattern="([a-zA-Z0-9$-_.+!*'(),]|%[0-9A-Fa-f][0-9A-Fa-f]|;|:|&|=)*(/([a-zA-Z0-9$-_.+!*'(),]|%[0-9A-Fa-f][0-9A-Fa-f]|;|:|&|=)*)*"; private static final String pattern="([a-zA-Z0-9$\\-_.+!*'(),]|%[0-9A-Fa-f][0-9A-Fa-f]|;|:|&|=)*(/([a-zA-Z0-9$\\-_.+!*'(),]|%[0-9A-Fa-f][0-9A-Fa-f]|;|:|&|=)*)*"; public void testPrint(){ System.err.println("\""+pattern+"\""); } public void test() { assertTrue(Pattern.matches(pattern, "foo")); assertTrue(Pattern.matches(pattern, "")); assertTrue(Pattern.matches(pattern, "&")); assertTrue(Pattern.matches(pattern, "/")); assertTrue(Pattern.matches(pattern, "/foo-bar")); assertTrue(Pattern.matches(pattern, "/foo/bar!path&;x='y'")); assertTrue(Pattern.matches(pattern, "%aF/boo")); assertFalse(Pattern.matches(pattern, "invalid context path")); assertFalse(Pattern.matches(pattern, "invalid<context>path")); } public ContextPathTest(String name){ super(name); } protected void setUp() { } protected void tearDown() { } private void nyi(){ fail("Not Yet Implemented"); } public static void main(String args[]){ if (args.length == 0){ junit.textui.TestRunner.run(ContextPathTest.class); } else { junit.textui.TestRunner.run(makeSuite(args)); } } private static TestSuite makeSuite(String args[]){ final TestSuite ts = new TestSuite(); for (int i = 0; i < args.length; i++){ ts.addTest(new ContextPathTest(args[i])); } return ts; } }