You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by jm...@apache.org on 2003/03/01 07:00:13 UTC

cvs commit: jakarta-struts/web/test/test/org/apache/struts/taglib/html TestErrorsTag1.jsp TestErrorsTag2.jsp TestFileTag1.jsp TestFileTag2.jsp

jmitchell    2003/02/28 22:00:13

  Added:       src/test/org/apache/struts/taglib/html TestErrorsTag1.java
                        TestErrorsTag2.java TestFileTag1.java
                        TestFileTag2.java
               web/test/test/org/apache/struts/taglib/html
                        TestErrorsTag1.jsp TestErrorsTag2.jsp
                        TestFileTag1.jsp TestFileTag2.jsp
  Log:
  New tests
  
  Revision  Changes    Path
  1.1                  jakarta-struts/src/test/org/apache/struts/taglib/html/TestErrorsTag1.java
  
  Index: TestErrorsTag1.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Struts", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.struts.taglib.html;
  
  import java.util.Locale;
  
  import javax.servlet.jsp.PageContext;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.apache.cactus.JspTestCase;
  import org.apache.struts.Globals;
  import org.apache.struts.action.ActionError;
  import org.apache.struts.action.ActionErrors;
  
  /**
   * Suite of unit tests for the
   * <code>org.apache.struts.taglib.bean.ErrorsTag</code> class.
   *
   * @author James Mitchell
   */
  public class TestErrorsTag1 extends JspTestCase {
  
      /**
       * Defines the testcase name for JUnit.
       *
       * @param theName the testcase's name.
       */
      public TestErrorsTag1(String theName) {
          super(theName);
      }
  
      /**
       * Start the tests.
       *
       * @param theArgs the arguments. Not used
       */
      public static void main(String[] theArgs) {
          junit.awtui.TestRunner.main(new String[] {TestErrorsTag1.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(TestErrorsTag1.class);
      }
  
      private void runMyTest(String whichTest, String locale){
  		request.setAttribute("runTest", whichTest);
      	pageContext.setAttribute(Globals.LOCALE_KEY, new Locale(locale, locale), PageContext.SESSION_SCOPE);
          try {
  			pageContext.forward("/test/org/apache/struts/taglib/html/TestErrorsTag1.jsp");
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			fail("There is a problem that is preventing the tests to continue!");
  		}
      }
      
  	private void formatAndTest(String compare, String output) {
  		//fix for introduced carriage return / line feeds
  		output = output.replaceAll("\r","");
  		output = output.replaceAll("\n","");
  		output = output.trim();
  	    assertEquals(compare, output);
  	}
  
      /*
       * Testing ErrorsTag.
       */
      public void testErrorsDefaultBundle0Errors(){ 
      	runMyTest("testErrorsDefaultBundle0Errors", "");
  	}
      public void testErrorsDefaultBundle2Errors(){ 
      	runMyTest("testErrorsDefaultBundle2Errors", "");
  	}
  
      public void testErrorsAlternateBundle0Errors(){ 
      	runMyTest("testErrorsAlternateBundle0Errors", "");
  	}
      public void testErrorsAlternateBundle2Errors(){ 
      	runMyTest("testErrorsAlternateBundle2Errors", "");
  	}
  
      public void testErrorsDefaultBundle0Errors_fr(){ 
      	runMyTest("testErrorsDefaultBundle0Errors_fr", "fr");
  	}
      public void testErrorsDefaultBundle2Errors_fr(){ 
      	runMyTest("testErrorsDefaultBundle2Errors_fr", "fr");
  	}
  
      public void testErrorsAlternateBundle0Errors_fr(){ 
      	runMyTest("testErrorsAlternateBundle0Errors_fr", "fr");
  	}
      public void testErrorsAlternateBundle2Errors_fr(){ 
      	runMyTest("testErrorsAlternateBundle2Errors_fr", "fr");
  	}
  
  
  
      public void testErrorsDefaultBundle0ErrorsLocale(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocale", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocale(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocale", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocale(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocale", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocale(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocale", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsLocale_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocale_fr", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocale_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocale_fr", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocale_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocale_fr", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocale_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocale_fr", "");
  	}
  
  
  
  
  
  
  
      public void testErrorsDefaultBundle0ErrorsName(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsName", "");
  	}
      public void testErrorsDefaultBundle2ErrorsName(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsName", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsName(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsName", "");
  	}
      public void testErrorsAlternateBundle2ErrorsName(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsName", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsName_fr(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsName_fr", "fr");
  	}
      public void testErrorsDefaultBundle2ErrorsName_fr(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsName_fr", "fr");
  	}
  
      public void testErrorsAlternateBundle0ErrorsName_fr(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsName_fr", "fr");
  	}
      public void testErrorsAlternateBundle2ErrorsName_fr(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsName_fr", "fr");
  	}
  
  
  
      public void testErrorsDefaultBundle0ErrorsLocaleName(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleName", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleName(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleName", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleName(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleName", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleName(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleName", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsLocaleName_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleName_fr", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleName_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleName_fr", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleName_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleName_fr", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleName_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleName_fr", "");
  	}
  
  
  }
  
  
  
  1.1                  jakarta-struts/src/test/org/apache/struts/taglib/html/TestErrorsTag2.java
  
  Index: TestErrorsTag2.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Struts", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.struts.taglib.html;
  
  import java.util.Locale;
  
  import javax.servlet.jsp.PageContext;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.apache.cactus.JspTestCase;
  import org.apache.struts.Globals;
  import org.apache.struts.action.ActionError;
  import org.apache.struts.action.ActionErrors;
  
  /**
   * Suite of unit tests for the
   * <code>org.apache.struts.taglib.bean.ErrorsTag</code> class.
   *
   * @author James Mitchell
   */
  public class TestErrorsTag2 extends JspTestCase {
  
      /**
       * Defines the testcase name for JUnit.
       *
       * @param theName the testcase's name.
       */
      public TestErrorsTag2(String theName) {
          super(theName);
      }
  
      /**
       * Start the tests.
       *
       * @param theArgs the arguments. Not used
       */
      public static void main(String[] theArgs) {
          junit.awtui.TestRunner.main(new String[] {TestErrorsTag2.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(TestErrorsTag2.class);
      }
  
      private void runMyTest(String whichTest, String locale){
  		request.setAttribute("runTest", whichTest);
      	pageContext.setAttribute(Globals.LOCALE_KEY, new Locale(locale, locale), PageContext.SESSION_SCOPE);
          try {
  			pageContext.forward("/test/org/apache/struts/taglib/html/TestErrorsTag2.jsp");
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			fail("There is a problem that is preventing the tests to continue!");
  		}
      }
      
  	private void formatAndTest(String compare, String output) {
  		//fix for introduced carriage return / line feeds
  		output = output.replaceAll("\r","");
  		output = output.replaceAll("\n","");
  		output = output.trim();
  	    assertEquals(compare, output);
  	}
  
      /*
       * Testing ErrorsTag.
       */
  
      public void testErrorsDefaultBundle0ErrorsProperty(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsProperty", "");
  	}
      public void testErrorsDefaultBundle2ErrorsProperty(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsProperty", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsProperty(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsProperty", "");
  	}
      public void testErrorsAlternateBundle2ErrorsProperty(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsProperty", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsProperty_fr(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsProperty_fr", "fr");
  	}
      public void testErrorsDefaultBundle2ErrorsProperty_fr(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsProperty_fr", "fr");
  	}
  
      public void testErrorsAlternateBundle0ErrorsProperty_fr(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsProperty_fr", "fr");
  	}
      public void testErrorsAlternateBundle2ErrorsProperty_fr(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsProperty_fr", "fr");
  	}
  
  
  
      public void testErrorsDefaultBundle0ErrorsLocaleProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleProperty", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleProperty", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleProperty", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleProperty", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsLocaleProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleProperty_fr", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleProperty_fr", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleProperty_fr", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleProperty_fr", "");
  	}
  
  
  
  
  
  
  
      public void testErrorsDefaultBundle0ErrorsNameProperty(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsNameProperty", "");
  	}
      public void testErrorsDefaultBundle2ErrorsNameProperty(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsNameProperty", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsNameProperty(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsNameProperty", "");
  	}
      public void testErrorsAlternateBundle2ErrorsNameProperty(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsNameProperty", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsNameProperty_fr(){ 
      	runMyTest("testErrorsDefaultBundle0ErrorsNameProperty_fr", "fr");
  	}
      public void testErrorsDefaultBundle2ErrorsNameProperty_fr(){ 
      	runMyTest("testErrorsDefaultBundle2ErrorsNameProperty_fr", "fr");
  	}
  
      public void testErrorsAlternateBundle0ErrorsNameProperty_fr(){ 
      	runMyTest("testErrorsAlternateBundle0ErrorsNameProperty_fr", "fr");
  	}
      public void testErrorsAlternateBundle2ErrorsNameProperty_fr(){ 
      	runMyTest("testErrorsAlternateBundle2ErrorsNameProperty_fr", "fr");
  	}
  
  
  
      public void testErrorsDefaultBundle0ErrorsLocaleNameProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleNameProperty", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleNameProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleNameProperty", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleNameProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleNameProperty", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleNameProperty(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleNameProperty", "");
  	}
  
      public void testErrorsDefaultBundle0ErrorsLocaleNameProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle0ErrorsLocaleNameProperty_fr", "");
  	}
      public void testErrorsDefaultBundle2ErrorsLocaleNameProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsDefaultBundle2ErrorsLocaleNameProperty_fr", "");
  	}
  
      public void testErrorsAlternateBundle0ErrorsLocaleNameProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle0ErrorsLocaleNameProperty_fr", "");
  	}
      public void testErrorsAlternateBundle2ErrorsLocaleNameProperty_fr(){ 
      	pageContext.setAttribute("MY_LOCALE_KEY", new Locale("fr", "fr"), PageContext.SESSION_SCOPE);
      	runMyTest("testErrorsAlternateBundle2ErrorsLocaleNameProperty_fr", "");
  	}
  
  
  
  }
  
  
  
  1.1                  jakarta-struts/src/test/org/apache/struts/taglib/html/TestFileTag1.java
  
  Index: TestFileTag1.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Struts", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.struts.taglib.html;
  
  import java.util.Locale;
  
  import javax.servlet.jsp.PageContext;
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.apache.cactus.JspTestCase;
  import org.apache.struts.Globals;
  import org.apache.struts.taglib.SimpleBeanForTesting;
  
  /**
   * Suite of unit tests for the
   * <code>org.apache.struts.taglib.bean.FileTag</code> class.
   *
   * @author James Mitchell
   */
  public class TestFileTag1 extends JspTestCase {
  
      /**
       * Defines the testcase name for JUnit.
       *
       * @param theName the testcase's name.
       */
      public TestFileTag1(String theName) {
          super(theName);
      }
  
      /**
       * Start the tests.
       *
       * @param theArgs the arguments. Not used
       */
      public static void main(String[] theArgs) {
          junit.awtui.TestRunner.main(new String[] {TestFileTag1.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(TestFileTag1.class);
      }
  
      private void runMyTest(String whichTest, String locale){
      	pageContext.setAttribute(Globals.LOCALE_KEY, new Locale(locale, locale), PageContext.SESSION_SCOPE);
      	pageContext.setAttribute(Constants.BEAN_KEY, new SimpleBeanForTesting("Test Value"), PageContext.REQUEST_SCOPE);
  		request.setAttribute("runTest", whichTest);
          try {
  			pageContext.forward("/test/org/apache/struts/taglib/html/TestFileTag1.jsp");
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			fail("There is a problem that is preventing the tests to continue!");
  		}
      }
  
      /*
       * Testing FileTag.
       */
      public void testFileProperty(){ 
      	runMyTest("testFileProperty", "");
  	}
      public void testFilePropertyAccept(){ 
      	runMyTest("testFilePropertyAccept", "");
  	}
      public void testFilePropertyAccesskey(){ 
      	runMyTest("testFilePropertyAccesskey", "");
  	}
      public void testFilePropertyAlt(){ 
      	runMyTest("testFilePropertyAlt", "");
  	}
      public void testFilePropertyAltKey1(){ 
      	runMyTest("testFilePropertyAltKey1", "");
  	}
      public void testFilePropertyAltKey2(){ 
      	runMyTest("testFilePropertyAltKey2", "");
  	}
      public void testFilePropertyAltKey_fr1(){ 
      	runMyTest("testFilePropertyAltKey1_fr", "fr");
  	}
      public void testFilePropertyAltKey_fr2(){ 
      	runMyTest("testFilePropertyAltKey2_fr", "fr");
  	}
      public void testFilePropertyDisabled_True(){ 
      	runMyTest("testFilePropertyDisabled_True", "");
  	}
      public void testFilePropertyDisabled_False1(){ 
      	runMyTest("testFilePropertyDisabled_False1", "");
  	}
      public void testFilePropertyDisabled_False2(){ 
      	runMyTest("testFilePropertyDisabled_False2", "");
  	}
      public void testFilePropertyOnblur(){ 
      	runMyTest("testFilePropertyOnblur", "");
  	}
  
      public void testFilePropertyOnchange(){ 
      	runMyTest("testFilePropertyOnchange", "");
  	}
  
      public void testFilePropertyOnclick(){ 
      	runMyTest("testFilePropertyOnclick", "");
  	}
  
      public void testFilePropertyOndblclick(){ 
      	runMyTest("testFilePropertyOndblclick", "");
  	}
  
      public void testFilePropertyOnfocus(){ 
      	runMyTest("testFilePropertyOnfocus", "");
  	}
  
      public void testFilePropertyOnkeydown(){ 
      	runMyTest("testFilePropertyOnkeydown", "");
  	}
  
      public void testFilePropertyOnkeypress(){ 
      	runMyTest("testFilePropertyOnkeypress", "");
  	}
  
      public void testFilePropertyOnkeyup(){ 
      	runMyTest("testFilePropertyOnkeyup", "");
  	}
  
      public void testFilePropertyOnmousedown(){ 
      	runMyTest("testFilePropertyOnmousedown", "");
  	}
  
      public void testFilePropertyOnmousemove(){ 
      	runMyTest("testFilePropertyOnmousemove", "");
  	}
  
      public void testFilePropertyOnmouseout(){ 
      	runMyTest("testFilePropertyOnmouseout", "");
  	}
  
      public void testFilePropertyOnmouseover(){ 
      	runMyTest("testFilePropertyOnmouseover", "");
  	}
  
      public void testFilePropertyOnmouseup(){ 
      	runMyTest("testFilePropertyOnmouseup", "");
  	}
  
  }
  
  
  
  1.1                  jakarta-struts/src/test/org/apache/struts/taglib/html/TestFileTag2.java
  
  Index: TestFileTag2.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Struts", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.struts.taglib.html;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Hashtable;
  import java.util.Locale;
  import java.util.StringTokenizer;
  
  import javax.servlet.jsp.PageContext;
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.apache.cactus.JspTestCase;
  import org.apache.struts.Globals;
  import org.apache.struts.taglib.SimpleBeanForTesting;
  
  /**
   * Suite of unit tests for the
   * <code>org.apache.struts.taglib.bean.FileTag</code> class.
   *
   * @author James Mitchell
   */
  public class TestFileTag2 extends JspTestCase {
  
      /**
       * Defines the testcase name for JUnit.
       *
       * @param theName the testcase's name.
       */
      public TestFileTag2(String theName) {
          super(theName);
      }
  
      /**
       * Start the tests.
       *
       * @param theArgs the arguments. Not used
       */
      public static void main(String[] theArgs) {
          junit.awtui.TestRunner.main(new String[] {TestFileTag2.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(TestFileTag2.class);
      }
  
      private void runMyTest(String whichTest, String locale){
      	pageContext.setAttribute(Globals.LOCALE_KEY, new Locale(locale, locale), PageContext.SESSION_SCOPE);
      	pageContext.setAttribute(Constants.BEAN_KEY, new SimpleBeanForTesting("Test Value"), PageContext.REQUEST_SCOPE);
  		request.setAttribute("runTest", whichTest);
          try {
  			pageContext.forward("/test/org/apache/struts/taglib/html/TestFileTag2.jsp");
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			fail("There is a problem that is preventing the tests to continue!");
  		}
      }
  
      /*
       * Testing FileTag.
       */
  
      public void testFilePropertyStyle(){ 
      	runMyTest("testFilePropertyStyle", "");
  	}
  
      public void testFilePropertyStyleClass(){ 
      	runMyTest("testFilePropertyStyleClass", "");
  	}
  
      public void testFilePropertyStyleId(){ 
      	runMyTest("testFilePropertyStyleId", "");
  	}
  
      public void testFilePropertyTabindex(){ 
      	runMyTest("testFilePropertyTabindex", "");
  	}
  
      public void testFilePropertyTitle(){ 
      	runMyTest("testFilePropertyTitle", "");
  	}
  
      public void testFilePropertyTitleKey(){ 
      	runMyTest("testFilePropertyTitleKey", "");
  	}
  
      public void testFilePropertyTitleKey_fr(){ 
      	runMyTest("testFilePropertyTitleKey_fr", "fr");
  	}
  
      public void testFilePropertyValue(){ 
      	runMyTest("testFilePropertyValue", "");
  	}
  
      public void testFilePropertyBodyContent(){ 
      	runMyTest("testFilePropertyBodyContent", "");
  	}
  
      public void testFilePropertyBodyContentMessageKey(){ 
      	runMyTest("testFilePropertyBodyContentMessageKey", "");
  	}
  
      public void testFilePropertyBodyContentMessageKey_fr(){ 
      	runMyTest("testFilePropertyBodyContentMessageKey_fr", "fr");
  	}
  
      public void testFilePropertyIndexedArray(){ 
      	ArrayList lst = new ArrayList();
      	lst.add("Test Message");
      	pageContext.setAttribute("lst", lst, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedArray", "");
  	}
  
      public void testFilePropertyIndexedArrayProperty(){ 
      	SimpleBeanForTesting sbft = new SimpleBeanForTesting();
      	ArrayList lst = new ArrayList();
      	lst.add("Test Message");
      	sbft.setList(lst);
      	pageContext.setAttribute("lst", sbft, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedArrayProperty", "");
  	}
  
      public void testFilePropertyIndexedMap(){ 
      	HashMap map = new HashMap();
      	map.put("tst1", "Test Message");
      	pageContext.setAttribute("lst", map, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedMap", "");
  	}
  
      public void testFilePropertyIndexedMapProperty(){ 
      	SimpleBeanForTesting sbft = new SimpleBeanForTesting();
      	HashMap map = new HashMap();
      	map.put("tst1", "Test Message");
      	sbft.setMap(map);
      	pageContext.setAttribute("lst", sbft, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedMapProperty", "");
  	}
  
      public void testFilePropertyIndexedEnumeration(){ 
      	StringTokenizer st = new StringTokenizer("Test Message");
      	pageContext.setAttribute("lst", st, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedEnumeration", "");
  	}
  
      public void testFilePropertyIndexedEnumerationProperty(){ 
      	SimpleBeanForTesting sbft = new SimpleBeanForTesting();
      	StringTokenizer st = new StringTokenizer("Test Message");
      	sbft.setEnumeration(st);
      	pageContext.setAttribute("lst", sbft, PageContext.REQUEST_SCOPE);
      	runMyTest("testFilePropertyIndexedEnumerationProperty", "");
  	}
  
  
  
  }
  
  
  
  1.1                  jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestErrorsTag1.jsp
  
  Index: TestErrorsTag1.jsp
  ===================================================================
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <%@page import="junit.framework.Assert"%>
  <%@page import="org.apache.struts.Globals"%>
  <%@page import="org.apache.struts.action.ActionError"%>
  <%@page import="org.apache.struts.action.ActionErrors"%>
  
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  
  
  <!-- Default Bundle -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0Errors">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2Errors">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header>
  <default_errors_prefix>My Errors Text
  <default_errors_suffix><default_errors_prefix>My Errors Text 2
  <default_errors_suffix><default_errors_footer>
  	</bean:define>
  </logic:equal>
  
  
  <!-- Alternate Bundle -->
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0Errors">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2Errors">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header>
  <alternate_errors_prefix>My Alternate Errors Text
  <alternate_errors_suffix><alternate_errors_prefix>My Alternate Errors Text 2
  <alternate_errors_suffix><alternate_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0Errors_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  
  <!-- French Locale -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2Errors_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0Errors_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2Errors_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  <!-- Specified Locale -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocale">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocale">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocale">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocale">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocale_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocale_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocale_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocale_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  
  
  
  
  
  <!-- Name -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header>
  <default_errors_prefix>My Errors Text
  <default_errors_suffix><default_errors_prefix>My Errors Text 2
  <default_errors_suffix><default_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header>
  <alternate_errors_prefix>My Alternate Errors Text
  <alternate_errors_suffix><alternate_errors_prefix>My Alternate Errors Text 2
  <alternate_errors_suffix><alternate_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  
  
  
  
  
  
  
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag"));
      errors.add(ActionErrors.GLOBAL_ERROR,
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" name="MY_ERRORS_KEY"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  <% 
  String expected = "";
  String compareTo = "";
  
  if (pageContext.getAttribute("EXPECTED_RESULTS") != null){
  	expected=pageContext.getAttribute("TEST_RESULTS").toString();
  }
  if (pageContext.getAttribute("TEST_RESULTS") != null){
  	compareTo=pageContext.getAttribute("EXPECTED_RESULTS").toString();
  }
  
  Assert.assertEquals(compareTo, expected);
  %>
  
  
  1.1                  jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestErrorsTag2.jsp
  
  Index: TestErrorsTag2.jsp
  ===================================================================
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <%@page import="junit.framework.Assert"%>
  <%@page import="org.apache.struts.Globals"%>
  <%@page import="org.apache.struts.action.ActionError"%>
  <%@page import="org.apache.struts.action.ActionErrors"%>
  
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  
  
  <!-- Property -->
  <!-- Default Bundle -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header>
  <default_errors_prefix>My Errors Text
  <default_errors_suffix><default_errors_prefix>My Errors Text 2
  <default_errors_suffix><default_errors_footer>
  	</bean:define>
  </logic:equal>
  
  
  <!-- Alternate Bundle -->
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header>
  <alternate_errors_prefix>My Alternate Errors Text
  <alternate_errors_suffix><alternate_errors_prefix>My Alternate Errors Text 2
  <alternate_errors_suffix><alternate_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  
  <!-- French Locale -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  <!-- Specified Locale -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute(Globals.ERROR_KEY, errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  
  
  
  
  
  <!-- Name -->
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header>
  <default_errors_prefix>My Errors Text
  <default_errors_suffix><default_errors_prefix>My Errors Text 2
  <default_errors_suffix><default_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsName">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsName">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header>
  <alternate_errors_prefix>My Alternate Errors Text
  <alternate_errors_suffix><alternate_errors_prefix>My Alternate Errors Text 2
  <alternate_errors_suffix><alternate_errors_footer>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsName_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsName_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors bundle="alternate" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  
  
  
  
  
  
  
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleNameProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleNameProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleNameProperty">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleNameProperty">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle0ErrorsLocaleNameProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsDefaultBundle2ErrorsLocaleNameProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("default.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<default_errors_header_fr>
  <default_errors_prefix_fr>My Errors Text (fr)
  <default_errors_suffix_fr><default_errors_prefix_fr>My Errors Text 2 (fr)
  <default_errors_suffix_fr><default_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle0ErrorsLocaleNameProperty_fr">
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testErrorsAlternateBundle2ErrorsLocaleNameProperty_fr">
  <%
  //This should be done in your action.  I do it here to keep the tests simple.
  	ActionErrors errors = new ActionErrors();
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag"));
      errors.add("someProperty",
           new ActionError("alternate.testing.errors.tag2"));
      request.setAttribute("MY_ERRORS_KEY", errors);
  %>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		My Errors go here:<html:errors locale="MY_LOCALE_KEY" bundle="alternate" name="MY_ERRORS_KEY" property="someProperty"/>
  	</bean:define>
  	<bean:define id="TEST_RESULTS" toScope="page">
  		My Errors go here:<alternate_errors_header_fr>
  <alternate_errors_prefix_fr>My Alternate Errors Text (fr)
  <alternate_errors_suffix_fr><alternate_errors_prefix_fr>My Alternate Errors Text 2 (fr)
  <alternate_errors_suffix_fr><alternate_errors_footer_fr>
  	</bean:define>
  </logic:equal>
  
  
  
  
  <% 
  String expected = "";
  String compareTo = "";
  
  if (pageContext.getAttribute("EXPECTED_RESULTS") != null){
  	expected=pageContext.getAttribute("TEST_RESULTS").toString();
  }
  if (pageContext.getAttribute("TEST_RESULTS") != null){
  	compareTo=pageContext.getAttribute("EXPECTED_RESULTS").toString();
  }
  
  Assert.assertEquals(compareTo, expected);
  %>
  
  
  1.1                  jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFileTag1.jsp
  
  Index: TestFileTag1.jsp
  ===================================================================
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <%@page import="junit.framework.Assert"%>
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  
  <logic:equal name="runTest" value="testFileProperty">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
   
   enctype="multipart/form-data" 
   accept="image/jpeg, image/gif"
   
  <logic:equal name="runTest" value="testFilePropertyAccept">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" accept="image/jpeg, image/gif"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" accept="image/jpeg, image/gif" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAccesskey">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" accesskey="a"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" accesskey="a" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAlt">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" alt="Testing alt attribute"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" alt="Testing alt attribute">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAltKey1">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" altKey="default.bundle.message"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" alt="Testing Message">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAltKey2">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" altKey="no.such.key"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAltKey1_fr">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" altKey="default.bundle.message"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" alt="Message D'Essai">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyAltKey2_fr">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" altKey="no.such.key"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyDisabled_True">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" disabled="true"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" disabled="disabled">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyDisabled_False1">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" disabled="false"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyDisabled_False2">
  	<!--  This was changed recently by overwhelming consensus.  The prior functionality
  	      was very counter-intuitive.  It used to be that putting disabled="false"
  	      was the same as putting disabled="true".  Craig sited the confusion is due
  	      to the HTML spec.
  	-->
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" disabled="anything but true"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyOnblur">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onblur="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onblur="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  
  <logic:equal name="runTest" value="testFilePropertyOnchange">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onchange="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onchange="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnclick">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onclick="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onclick="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOndblclick">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" ondblclick="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" ondblclick="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnfocus">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onfocus="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onfocus="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnkeydown">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onkeydown="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onkeydown="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnkeypress">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onkeypress="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onkeypress="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnkeyup">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onkeyup="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onkeyup="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnmousedown">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onmousedown="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onmousedown="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnmousemove">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onmousemove="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onmousemove="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnmouseout">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onmouseout="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onmouseout="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnmouseover">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onmouseover="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onmouseover="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyOnmouseup">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" onmouseup="Put script here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" onmouseup="Put script here">
  	</bean:define>
  </logic:equal>
  
  
  
  <% 
  Assert.assertEquals(
  	pageContext.getAttribute("TEST_RESULTS").toString(), 
  	pageContext.getAttribute("EXPECTED_RESULTS").toString()
  	);
  %>
  
  
  1.1                  jakarta-struts/web/test/test/org/apache/struts/taglib/html/TestFileTag2.jsp
  
  Index: TestFileTag2.jsp
  ===================================================================
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <%@page import="junit.framework.Assert"%>
  <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  
  
  <logic:equal name="runTest" value="testFilePropertyStyle">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" style="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" style="Put something here">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyStyleClass">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" styleClass="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" class="Put something here">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyStyleId">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" styleId="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" id="Put something here">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyTabindex">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" tabindex="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" tabindex="Put something here" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyTitle">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" title="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" title="Put something here">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyTitleKey">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" titleKey="default.bundle.message"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" title="Testing Message">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyTitleKey_fr">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" titleKey="default.bundle.message"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value" title="Message D'Essai">
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyValue">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string" value ="Put something here"/>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Put something here">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyBodyContent">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string">File Value Here</html:file>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyBodyContentMessageKey">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string">
  			<bean:message key="default.bundle.message"/>
  		</html:file>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyBodyContentMessageKey_fr">
  	<bean:define id="TEST_RESULTS" toScope="page">
  		<html:file property="string">
  			<bean:message key="default.bundle.message"/>
  		</html:file>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  		<input type="file" name="string" value="Test Value">
  	</bean:define>
  </logic:equal>
  
  
  <logic:equal name="runTest" value="testFilePropertyIndexedArray">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	  <logic:iterate id="indivItem" name="lst">
  		<html:file property="string" indexed="true"/>
  	  </logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  		
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyIndexedArrayProperty">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	  <logic:iterate id="indivItem" name="lst" property="list">
  		<html:file property="string" indexed="true"/>
  	  </logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  		
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyIndexedMap">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	  <logic:iterate id="indivItem" name="lst">
  		<html:file property="string" indexed="true"/>
  	  </logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  		
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyIndexedMapProperty">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	  <logic:iterate id="indivItem" name="lst" property="map">
  		<html:file property="string" indexed="true"/>
  	  </logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  		
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyIndexedEnumeration">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	<logic:iterate id="indivItem" name="lst">
  		<html:file property="string" indexed="true"/>
  	</logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[1].string" value="Test Value">
  	
  	</bean:define>
  </logic:equal>
  
  <logic:equal name="runTest" value="testFilePropertyIndexedEnumerationProperty">
  	<bean:define id="TEST_RESULTS" toScope="page">
  	<logic:iterate id="indivItem" name="lst" property="enumeration">
  		<html:file property="string" indexed="true"/>
  	</logic:iterate>
  	</bean:define>
  	<bean:define id="EXPECTED_RESULTS" toScope="page">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[0].string" value="Test Value">
  	
  		<input type="file" name="org.apache.struts.taglib.html.BEAN[1].string" value="Test Value">
  	
  	</bean:define>
  </logic:equal>
  
  
  
  
  <% 
  Assert.assertEquals(
  	pageContext.getAttribute("TEST_RESULTS").toString(), 
  	pageContext.getAttribute("EXPECTED_RESULTS").toString()
  	);
  %>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org