commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bspeak...@apache.org
Subject svn commit: r588091 - in /commons/proper/validator/trunk/src/test: java/org/apache/commons/validator/ java/org/apache/commons/validator/routines/ resources/org/apache/commons/validator/routines/
Date Thu, 25 Oct 2007 00:17:43 GMT
Author: bspeakmon
Date: Wed Oct 24 17:17:42 2007
New Revision: 588091

URL: http://svn.apache.org/viewvc?rev=588091&view=rev
Log:
- VALIDATOR-203/VALIDATOR-242: copy tests and resources from old Email/URL validators to routines
package
- make ResultPair public so routines tests can use it

Added:
    commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
    commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
    commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/
    commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/EmailValidatorTest-config.xml
Modified:
    commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/ResultPair.java

Modified: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/ResultPair.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/ResultPair.java?rev=588091&r1=588090&r2=588091&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/ResultPair.java
(original)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/ResultPair.java
Wed Oct 24 17:17:42 2007
@@ -21,7 +21,7 @@
  *
  * @version $Revision$ $Date$
  */
- class ResultPair {
+ public class ResultPair {
       public String item;
       public boolean valid;
 

Added: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java?rev=588091&view=auto
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
(added)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/EmailValidatorTest.java
Wed Oct 24 17:17:42 2007
@@ -0,0 +1,439 @@
+/*
+ * 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.commons.validator.routines;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.commons.validator.*;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+
+/**
+ * Performs Validation Test for e-mail validations.
+ *
+ *
+ * @version $Revision: 493905 $ $Date: 2007-01-07 18:11:38 -0800 (Sun, 07 Jan 2007) $
+ */
+public class EmailValidatorTest extends AbstractCommonTest {
+
+    /**
+     * The key used to retrieve the set of validation
+     * rules from the xml file.
+     */
+    protected static String FORM_KEY = "emailForm";
+
+   /**
+    * The key used to retrieve the validator action.
+    */
+   protected static String ACTION = "email";
+
+
+   public EmailValidatorTest(String name) {
+       super(name);
+   }
+
+   /**
+    * Start the tests.
+    *
+    * @param theArgs the arguments. Not used
+    */
+   public static void main(String[] theArgs) {
+       junit.awtui.TestRunner.main(new String[] {EmailValidatorTest.class.getName()});
+   }
+
+   /**
+    * @return a test suite (<code>TestSuite</code>) that includes all methods
+    *         starting with "test"
+    */
+   public static Test suite() {
+       // All methods starting with "test" will be executed in the test suite.
+       return new TestSuite(EmailValidatorTest.class);
+   }
+
+   /**
+    * Load <code>ValidatorResources</code> from
+    * validator-regexp.xml.
+    */
+   protected void setUp() throws IOException, SAXException {
+      loadResources("EmailValidatorTest-config.xml");
+   }
+
+   protected void tearDown() {
+   }
+
+   /**
+    * Tests the e-mail validation.
+    */
+   public void testEmail() throws ValidatorException {
+      // Create bean to run test on.
+      ValueBean info = new ValueBean();
+
+      info.setValue("jsmith@apache.org");
+      valueTest(info, true);
+   }
+
+   /**
+    * Tests the email validation with numeric domains.
+    */
+    public void testEmailWithNumericAddress() throws ValidatorException {
+        ValueBean info = new ValueBean();
+        info.setValue("someone@[216.109.118.76]");
+        valueTest(info, true);
+        info.setValue("someone@yahoo.com");
+        valueTest(info, true);
+    }
+
+    /**
+     * Tests the e-mail validation.
+     */
+    public void testEmailExtension() throws ValidatorException {
+        // Create bean to run test on.
+        ValueBean info = new ValueBean();
+
+        info.setValue("jsmith@apache.org");
+        valueTest(info, true);
+
+        info.setValue("jsmith@apache.com");
+        valueTest(info, true);
+
+        info.setValue("jsmith@apache.net");
+        valueTest(info, true);
+
+        info.setValue("jsmith@apache.info");
+        valueTest(info, true);
+
+        info.setValue("jsmith@apache.");
+        valueTest(info, false);
+
+        info.setValue("jsmith@apache.c");
+        valueTest(info, false);
+
+        info.setValue("someone@yahoo.museum");
+        valueTest(info, true);
+
+        info.setValue("someone@yahoo.mu-seum");
+        valueTest(info, false);
+    }
+
+   /**
+    * <p>Tests the e-mail validation with a dash in
+    * the address.</p>
+    */
+   public void testEmailWithDash() throws ValidatorException {
+      // Create bean to run test on.
+      ValueBean info = new ValueBean();
+
+      info.setValue("andy.noble@data-workshop.com");
+      valueTest(info, true);
+
+      info.setValue("andy-noble@data-workshop.-com");
+       valueTest(info, false);
+       info.setValue("andy-noble@data-workshop.c-om");
+       valueTest(info,false);
+       info.setValue("andy-noble@data-workshop.co-m");
+       valueTest(info, false);
+
+
+   }
+
+   /**
+    * Tests the e-mail validation with a dot at the end of
+    * the address.
+    */
+   public void testEmailWithDotEnd() throws ValidatorException {
+      // Create bean to run test on.
+      ValueBean info = new ValueBean();
+
+      info.setValue("andy.noble@data-workshop.com.");
+      valueTest(info, false);
+
+   }
+
+    /**
+     * Tests the e-mail validation with an RCS-noncompliant character in
+     * the address.
+     */
+    public void testEmailWithBogusCharacter() throws ValidatorException {
+        // Create bean to run test on.
+        ValueBean info = new ValueBean();
+
+        info.setValue("andy.noble@\u008fdata-workshop.com");
+        valueTest(info, false);
+
+        // The ' character is valid in an email username.
+        info.setValue("andy.o'reilly@data-workshop.com");
+        valueTest(info, true);
+
+        // But not in the domain name.
+        info.setValue("andy@o'reilly.data-workshop.com");
+        valueTest(info, false);
+
+        info.setValue("foo+bar@i.am.not.in.us.example.com");
+        valueTest(info, true);
+    }
+
+   /**
+    * Tests the email validation with commas.
+    */
+    public void testEmailWithCommas() throws ValidatorException {
+        ValueBean info = new ValueBean();
+        info.setValue("joeblow@apa,che.org");
+        valueTest(info, false);
+        info.setValue("joeblow@apache.o,rg");
+        valueTest(info, false);
+        info.setValue("joeblow@apache,org");
+        valueTest(info, false);
+
+    }
+
+   /**
+    * Tests the email validation with spaces.
+    */
+    public void testEmailWithSpaces() throws ValidatorException {
+        ValueBean info = new ValueBean();
+        info.setValue("joeblow @apache.org");
+        valueTest(info, false);
+        info.setValue("joeblow@ apache.org");
+        valueTest(info, false);
+        info.setValue(" joeblow@apache.org");
+        valueTest(info, true);
+        info.setValue("joeblow@apache.org ");
+        valueTest(info, true);
+        info.setValue("joe blow@apache.org ");
+        valueTest(info, false);
+        info.setValue("joeblow@apa che.org ");
+        valueTest(info, false);
+
+    }
+
+   /**
+    * Tests the email validation with ascii control characters.
+    * (i.e. Ascii chars 0 - 31 and 127)
+    */
+    public void testEmailWithControlChars() throws ValidatorException {
+        EmailValidator validator = new EmailValidator();
+        for (char c = 0; c < 32; c++) {
+            assertFalse("Test control char " + ((int)c), validator.isValid("foo" + c + "bar@domain.com"));
+        }
+        assertFalse("Test control char 127", validator.isValid("foo" + ((char)127) + "bar@domain.com"));
+    }
+
+    /**
+     * Write this test according to parts of RFC, as opposed to the type of character
+     * that is being tested.
+     *
+     * <p><b>FIXME</b>: This test fails so disable it with a leading _
for 1.1.4 release.
+     * The real solution is to fix the email parsing.
+     *
+     * @throws ValidatorException
+     */
+    public void _testEmailUserName() throws ValidatorException {
+        ValueBean info = new ValueBean();
+        info.setValue("joe1blow@apache.org");
+        valueTest(info, true);
+        info.setValue("joe$blow@apache.org");
+        valueTest(info, true);
+        info.setValue("joe-@apache.org");
+        valueTest(info, true);
+        info.setValue("joe_@apache.org");
+        valueTest(info, true);
+
+        //UnQuoted Special characters are invalid
+
+        info.setValue("joe.@apache.org");
+        valueTest(info, false);
+        info.setValue("joe+@apache.org");
+        valueTest(info, false);
+        info.setValue("joe!@apache.org");
+        valueTest(info, false);
+        info.setValue("joe*@apache.org");
+        valueTest(info, false);
+        info.setValue("joe'@apache.org");
+        valueTest(info, false);
+        info.setValue("joe(@apache.org");
+        valueTest(info, false);
+        info.setValue("joe)@apache.org");
+        valueTest(info, false);
+        info.setValue("joe,@apache.org");
+        valueTest(info, false);
+        info.setValue("joe%45@apache.org");
+        valueTest(info, false);
+        info.setValue("joe;@apache.org");
+        valueTest(info, false);
+        info.setValue("joe?@apache.org");
+        valueTest(info, false);
+        info.setValue("joe&@apache.org");
+        valueTest(info, false);
+        info.setValue("joe=@apache.org");
+        valueTest(info, false);
+
+        //Quoted Special characters are valid
+        info.setValue("\"joe.\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe+\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe!\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe*\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe'\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe(\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe)\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe,\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe%45\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe;\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe?\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe&\"@apache.org");
+        valueTest(info, true);
+        info.setValue("\"joe=\"@apache.org");
+        valueTest(info, true);
+
+    }
+
+    /**
+     * These test values derive directly from RFC 822 &
+     * Mail::RFC822::Address & RFC::RFC822::Address perl test.pl
+     * For traceability don't combine these test values with other tests.
+     */
+    ResultPair[] testEmailFromPerl = {
+        new ResultPair("abigail@example.com", true),
+        new ResultPair("abigail@example.com ", true),
+        new ResultPair(" abigail@example.com", true),
+        new ResultPair("abigail @example.com ", true),
+        new ResultPair("*@example.net", true),
+        new ResultPair("\"\\\"\"@foo.bar", true),
+        new ResultPair("fred&barny@example.com", true),
+        new ResultPair("---@example.com", true),
+        new ResultPair("foo-bar@example.net", true),
+        new ResultPair("\"127.0.0.1\"@[127.0.0.1]", true),
+        new ResultPair("Abigail <abigail@example.com>", true),
+        new ResultPair("Abigail<abigail@example.com>", true),
+        new ResultPair("Abigail<@a,@b,@c:abigail@example.com>", true),
+        new ResultPair("\"This is a phrase\"<abigail@example.com>", true),
+        new ResultPair("\"Abigail \"<abigail@example.com>", true),
+        new ResultPair("\"Joe & J. Harvey\" <example @Org>", true),
+        new ResultPair("Abigail <abigail @ example.com>", true),
+        new ResultPair("Abigail made this <  abigail   @   example  .    com    >",
true),
+        new ResultPair("Abigail(the bitch)@example.com", true),
+        new ResultPair("Abigail <abigail @ example . (bar) com >", true),
+        new ResultPair("Abigail < (one)  abigail (two) @(three)example . (bar) com (quz)
>", true),
+        new ResultPair("Abigail (foo) (((baz)(nested) (comment)) ! ) < (one)  abigail
(two) @(three)example . (bar) com (quz) >", true),
+        new ResultPair("Abigail <abigail(fo\\(o)@example.com>", true),
+        new ResultPair("Abigail <abigail(fo\\)o)@example.com> ", true),
+        new ResultPair("(foo) abigail@example.com", true),
+        new ResultPair("abigail@example.com (foo)", true),
+        new ResultPair("\"Abi\\\"gail\" <abigail@example.com>", true),
+        new ResultPair("abigail@[example.com]", true),
+        new ResultPair("abigail@[exa\\[ple.com]", true),
+        new ResultPair("abigail@[exa\\]ple.com]", true),
+        new ResultPair("\":sysmail\"@  Some-Group. Some-Org", true),
+        new ResultPair("Muhammed.(I am  the greatest) Ali @(the)Vegas.WBA", true),
+        new ResultPair("mailbox.sub1.sub2@this-domain", true),
+        new ResultPair("sub-net.mailbox@sub-domain.domain", true),
+        new ResultPair("name:;", true),
+        new ResultPair("':;", true),
+        new ResultPair("name:   ;", true),
+        new ResultPair("Alfred Neuman <Neuman@BBN-TENEXA>", true),
+        new ResultPair("Neuman@BBN-TENEXA", true),
+        new ResultPair("\"George, Ted\" <Shared@Group.Arpanet>", true),
+        new ResultPair("Wilt . (the  Stilt) Chamberlain@NBA.US", true),
+        new ResultPair("Cruisers:  Port@Portugal, Jones@SEA;", true),
+        new ResultPair("$@[]", true),
+        new ResultPair("*()@[]", true),
+        new ResultPair("\"quoted ( brackets\" ( a comment )@example.com", true),
+        new ResultPair("\"Joe & J. Harvey\"\\x0D\\x0A     <ddd\\@ Org>", true),
+        new ResultPair("\"Joe &\\x0D\\x0A J. Harvey\" <ddd \\@ Org>", true),
+        new ResultPair("Gourmets:  Pompous Person <WhoZiWhatZit\\@Cordon-Bleu>,\\x0D\\x0A"
+
+            "        Childs\\@WGBH.Boston, \"Galloping Gourmet\"\\@\\x0D\\x0A" +
+            "        ANT.Down-Under (Australian National Television),\\x0D\\x0A" +
+            "        Cheapie\\@Discount-Liquors;", true),
+        new ResultPair("   Just a string", false),
+        new ResultPair("string", false),
+        new ResultPair("(comment)", false),
+        new ResultPair("()@example.com", false),
+        new ResultPair("fred(&)barny@example.com", false),
+        new ResultPair("fred\\ barny@example.com", false),
+        new ResultPair("Abigail <abi gail @ example.com>", false),
+        new ResultPair("Abigail <abigail(fo(o)@example.com>", false),
+        new ResultPair("Abigail <abigail(fo)o)@example.com>", false),
+        new ResultPair("\"Abi\"gail\" <abigail@example.com>", false),
+        new ResultPair("abigail@[exa]ple.com]", false),
+        new ResultPair("abigail@[exa[ple.com]", false),
+        new ResultPair("abigail@[exaple].com]", false),
+        new ResultPair("abigail@", false),
+        new ResultPair("@example.com", false),
+        new ResultPair("phrase: abigail@example.com abigail@example.com ;", false),
+        new ResultPair("invalid�char@example.com", false)
+    };
+
+    /**
+     * Write this test based on perl Mail::RFC822::Address
+     * which takes its example email address directly from RFC822
+     *
+     * @throws ValidatorException
+     *
+     * FIXME This test fails so disable it with a leading _ for 1.1.4 release.
+     * The real solution is to fix the email parsing.
+     */
+    public void _testEmailFromPerl() throws ValidatorException {
+        ValueBean info = new ValueBean();
+        for (int index = 0; index < testEmailFromPerl.length; index++) {
+            info.setValue(testEmailFromPerl[index].item);
+            valueTest(info, testEmailFromPerl[index].valid);
+        }
+    }
+
+   /**
+    * Utlity class to run a test on a value.
+    *
+    * @param info	Value to run test on.
+    * @param passed	Whether or not the test is expected to pass.
+    */
+   private void valueTest(ValueBean info, boolean passed) throws ValidatorException {
+      // Construct validator based on the loaded resources
+      // and the form key
+      Validator validator = new Validator(resources, FORM_KEY);
+      // add the name bean to the validator as a resource
+      // for the validations to be performed on.
+      validator.setParameter(Validator.BEAN_PARAM, info);
+
+      // Get results of the validation.
+      ValidatorResults results = null;
+
+      // throws ValidatorException,
+      // but we aren't catching for testing
+      // since no validation methods we use
+      // throw this
+      results = validator.validate();
+
+      assertNotNull("Results are null.", results);
+
+      ValidatorResult result = results.getValidatorResult("value");
+
+      assertNotNull(ACTION + " value ValidatorResult should not be null.", result);
+      assertTrue("Value "+info.getValue()+" ValidatorResult should contain the '" + ACTION
+"' action.", result.containsAction(ACTION));
+      assertTrue("Value "+info.getValue()+"ValidatorResult for the '" + ACTION +"' action
should have " + (passed ? "passed" : "failed") + ".", (passed ? result.isValid(ACTION) : !result.isValid(ACTION)));
+    }
+}

Added: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java?rev=588091&view=auto
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
(added)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
Wed Oct 24 17:17:42 2007
@@ -0,0 +1,292 @@
+/*
+ * 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.commons.validator.routines;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.commons.validator.ResultPair;
+
+/**
+ * Performs Validation Test for url validations.
+ *
+ * @version $Revision: 493905 $ $Date: 2007-01-07 18:11:38 -0800 (Sun, 07 Jan 2007) $
+ */
+public class UrlValidatorTest extends TestCase {
+
+   private boolean printStatus = false;
+   private boolean printIndex = false;//print index that indicates current scheme,host,port,path,
query test were using.
+
+   public UrlValidatorTest(String testName) {
+      super(testName);
+   }
+
+   public static Test suite() {
+      return new TestSuite(UrlValidatorTest.class);
+   }
+
+   protected void setUp() {
+      for (int index = 0; index < testPartsIndex.length - 1; index++) {
+         testPartsIndex[index] = 0;
+      }
+   }
+
+   protected void tearDown() {
+   }
+
+   public void testIsValid() {
+    	testIsValid(testUrlParts, UrlValidator.ALLOW_ALL_SCHEMES);
+    	setUp();
+    	int options =
+    		UrlValidator.ALLOW_2_SLASHES
+    			+ UrlValidator.ALLOW_ALL_SCHEMES
+    			+ UrlValidator.NO_FRAGMENTS;
+
+    	testIsValid(testUrlPartsOptions, options);
+   }
+
+   public void testIsValidScheme() {
+      if (printStatus) {
+         System.out.print("\n testIsValidScheme() ");
+      }
+      String[] schemes = {"http", "gopher"};
+      //UrlValidator urlVal = new UrlValidator(schemes,false,false,false);
+      UrlValidator urlVal = new UrlValidator(schemes, 0);
+      for (int sIndex = 0; sIndex < testScheme.length; sIndex++) {
+         ResultPair testPair = testScheme[sIndex];
+         boolean result = urlVal.isValidScheme(testPair.item);
+         assertEquals(testPair.item, testPair.valid, result);
+         if (printStatus) {
+            if (result == testPair.valid) {
+               System.out.print('.');
+            } else {
+               System.out.print('X');
+            }
+         }
+      }
+      if (printStatus) {
+         System.out.println();
+      }
+
+   }
+
+   /**
+    * Create set of tests by taking the testUrlXXX arrays and
+    * running through all possible permutations of their combinations.
+    *
+    * @param testObjects Used to create a url.
+    */
+   public void testIsValid(Object[] testObjects, int options) {
+      UrlValidator urlVal = new UrlValidator(null, options);
+      assertTrue(urlVal.isValid("http://www.google.com"));
+      assertTrue(urlVal.isValid("http://www.google.com/"));
+      int statusPerLine = 60;
+      int printed = 0;
+      if (printIndex)  {
+         statusPerLine = 6;
+      }
+      do {
+         StringBuffer testBuffer = new StringBuffer();
+         boolean expected = true;
+         for (int testPartsIndexIndex = 0; testPartsIndexIndex < testPartsIndex.length;
++testPartsIndexIndex) {
+            int index = testPartsIndex[testPartsIndexIndex];
+            ResultPair[] part = (ResultPair[]) testObjects[testPartsIndexIndex];
+            testBuffer.append(part[index].item);
+            expected &= part[index].valid;
+         }
+         String url = testBuffer.toString();
+         boolean result = urlVal.isValid(url);
+         assertEquals(url, expected, result);
+         if (printStatus) {
+            if (printIndex) {
+               System.out.print(testPartsIndextoString());
+            } else {
+               if (result == expected) {
+                  System.out.print('.');
+               } else {
+                  System.out.print('X');
+               }
+            }
+            printed++;
+            if (printed == statusPerLine) {
+               System.out.println();
+               printed = 0;
+            }
+         }
+      } while (incrementTestPartsIndex(testPartsIndex, testObjects));
+      if (printStatus) {
+         System.out.println();
+      }
+   }
+
+   public void testValidator202() {
+       String[] schemes = {"http","https"};
+       UrlValidator urlValidator = new UrlValidator(schemes, UrlValidator.NO_FRAGMENTS);
+       urlValidator.isValid("http://www.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.logoworks.comwww.log");
+   }
+
+   public void testValidator204() {
+       String[] schemes = {"http","https"};
+       UrlValidator urlValidator = new UrlValidator(schemes);
+       assertTrue(urlValidator.isValid("http://tech.yahoo.com/rc/desktops/102;_ylt=Ao8yevQHlZ4On0O3ZJGXLEQFLZA5"));
+   }
+
+   static boolean incrementTestPartsIndex(int[] testPartsIndex, Object[] testParts) {
+      boolean carry = true;  //add 1 to lowest order part.
+      boolean maxIndex = true;
+      for (int testPartsIndexIndex = testPartsIndex.length - 1; testPartsIndexIndex >=
0; --testPartsIndexIndex) {
+         int index = testPartsIndex[testPartsIndexIndex];
+         ResultPair[] part = (ResultPair[]) testParts[testPartsIndexIndex];
+         if (carry) {
+            if (index < part.length - 1) {
+               index++;
+               testPartsIndex[testPartsIndexIndex] = index;
+               carry = false;
+            } else {
+               testPartsIndex[testPartsIndexIndex] = 0;
+               carry = true;
+            }
+         }
+         maxIndex &= (index == (part.length - 1));
+      }
+
+
+      return (!maxIndex);
+   }
+
+   private String testPartsIndextoString() {
+      StringBuffer carryMsg = new StringBuffer("{");
+      for (int testPartsIndexIndex = 0; testPartsIndexIndex < testPartsIndex.length; ++testPartsIndexIndex)
{
+         carryMsg.append(testPartsIndex[testPartsIndexIndex]);
+         if (testPartsIndexIndex < testPartsIndex.length - 1) {
+            carryMsg.append(',');
+         } else {
+            carryMsg.append('}');
+         }
+      }
+      return carryMsg.toString();
+
+   }
+
+   public void testValidateUrl() {
+      assertTrue(true);
+   }
+
+   /**
+    * Only used to debug the unit tests.
+    * @param argv
+    */
+   public static void main(String[] argv) {
+
+      UrlValidatorTest fct = new UrlValidatorTest("url test");
+      fct.setUp();
+      fct.testIsValid();
+      fct.testIsValidScheme();
+   }
+   //-------------------- Test data for creating a composite URL
+   /**
+    * The data given below approximates the 4 parts of a URL
+    * <scheme>://<authority><path>?<query> except that the port number
+    * is broken out of authority to increase the number of permutations.
+    * A complete URL is composed of a scheme+authority+port+path+query,
+    * all of which must be individually valid for the entire URL to be considered
+    * valid.
+    */
+   ResultPair[] testUrlScheme = {new ResultPair("http://", true),
+                               new ResultPair("ftp://", true),
+                               new ResultPair("h3t://", true),
+                               new ResultPair("3ht://", false),
+                               new ResultPair("http:/", false),
+                               new ResultPair("http:", false),
+                               new ResultPair("http/", false),
+                               new ResultPair("://", false),
+                               new ResultPair("", true)};
+
+   ResultPair[] testUrlAuthority = {new ResultPair("www.google.com", true),
+                                  new ResultPair("go.com", true),
+                                  new ResultPair("go.au", true),
+                                  new ResultPair("0.0.0.0", true),
+                                  new ResultPair("255.255.255.255", true),
+                                  new ResultPair("256.256.256.256", false),
+                                  new ResultPair("255.com", true),
+                                  new ResultPair("1.2.3.4.5", false),
+                                  new ResultPair("1.2.3.4.", false),
+                                  new ResultPair("1.2.3", false),
+                                  new ResultPair(".1.2.3.4", false),
+                                  new ResultPair("go.a", false),
+                                  new ResultPair("go.a1a", true),
+                                  new ResultPair("go.1aa", false),
+                                  new ResultPair("aaa.", false),
+                                  new ResultPair(".aaa", false),
+                                  new ResultPair("aaa", false),
+                                  new ResultPair("", false)
+   };
+   ResultPair[] testUrlPort = {new ResultPair(":80", true),
+                             new ResultPair(":65535", true),
+                             new ResultPair(":0", true),
+                             new ResultPair("", true),
+                             new ResultPair(":-1", false),
+                             new ResultPair(":65636", true),
+                             new ResultPair(":65a", false)
+   };
+   ResultPair[] testPath = {new ResultPair("/test1", true),
+                          new ResultPair("/t123", true),
+                          new ResultPair("/$23", true),
+                          new ResultPair("/..", false),
+                          new ResultPair("/../", false),
+                          new ResultPair("/test1/", true),
+                          new ResultPair("", true),
+                          new ResultPair("/test1/file", true),
+                          new ResultPair("/..//file", false),
+                          new ResultPair("/test1//file", false)
+   };
+   //Test allow2slash, noFragment
+   ResultPair[] testUrlPathOptions = {new ResultPair("/test1", true),
+                                    new ResultPair("/t123", true),
+                                    new ResultPair("/$23", true),
+                                    new ResultPair("/..", false),
+                                    new ResultPair("/../", false),
+                                    new ResultPair("/test1/", true),
+                                    new ResultPair("/#", false),
+                                    new ResultPair("", true),
+                                    new ResultPair("/test1/file", true),
+                                    new ResultPair("/t123/file", true),
+                                    new ResultPair("/$23/file", true),
+                                    new ResultPair("/../file", false),
+                                    new ResultPair("/..//file", false),
+                                    new ResultPair("/test1//file", true),
+                                    new ResultPair("/#/file", false)
+   };
+
+   ResultPair[] testUrlQuery = {new ResultPair("?action=view", true),
+                              new ResultPair("?action=edit&mode=up", true),
+                              new ResultPair("", true)
+   };
+
+   Object[] testUrlParts = {testUrlScheme, testUrlAuthority, testUrlPort, testPath, testUrlQuery};
+   Object[] testUrlPartsOptions = {testUrlScheme, testUrlAuthority, testUrlPort, testUrlPathOptions,
testUrlQuery};
+   int[] testPartsIndex = {0, 0, 0, 0, 0};
+
+   //---------------- Test data for individual url parts ----------------
+   ResultPair[] testScheme = {new ResultPair("http", true),
+                            new ResultPair("ftp", false),
+                            new ResultPair("httpd", false),
+                            new ResultPair("telnet", false)};
+
+
+}

Added: commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/EmailValidatorTest-config.xml
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/EmailValidatorTest-config.xml?rev=588091&view=auto
==============================================================================
--- commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/EmailValidatorTest-config.xml
(added)
+++ commons/proper/validator/trunk/src/test/resources/org/apache/commons/validator/routines/EmailValidatorTest-config.xml
Wed Oct 24 17:17:42 2007
@@ -0,0 +1,34 @@
+<!--
+ 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.
+-->
+<!DOCTYPE form-validation PUBLIC
+     "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.4.0//EN"
+     "http://commons.apache.org/dtds/validator_1_4_0.dtd">
+     
+<form-validation>
+   <global>
+      <validator name="email"
+                 classname="org.apache.commons.validator.GenericValidatorImpl"
+                 method="validateEmail"
+                 methodParams="java.lang.Object,org.apache.commons.validator.Field"
+                 msg=""/>
+   </global>
+   <formset>
+      <form name="emailForm">
+         <field property="value" depends="email"/>
+      </form>
+   </formset>   
+</form-validation>



Mime
View raw message