You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ep...@apache.org on 2003/09/26 19:49:47 UTC

cvs commit: jakarta-turbine-2/conf TurbineResources.properties

epugh       2003/09/26 10:49:47

  Modified:    xdocs    changes.xml
               src/test/org/apache/turbine/modules ActionLoaderTest.java
               src/test/org/apache/turbine/modules/actions
                        VelocityActionThrowsException.java
               conf     TurbineResources.properties
  Log:
  Unit test testing the bubble exceptions property
  
  Revision  Changes    Path
  1.65      +5 -0      jakarta-turbine-2/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-2/xdocs/changes.xml,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- changes.xml	26 Sep 2003 00:39:51 -0000	1.64
  +++ changes.xml	26 Sep 2003 17:49:46 -0000	1.65
  @@ -75,6 +75,11 @@
   <p>
     <ul>
       <li>
  +       doXXX events would eat exceptions while doPerform would bubble them up.
  +       Added property action.event.bubbleexception which is true by default that
  +       applies to both types and either bubbles them up, or logs and sinks them.
  +    </li>  	
  +    <li>
          The intake validators were fixed so that fields with required=false 
          rules no longer attempt to execute the remaining rules when no
          input is provided.  A minLength > 0 rule is no longer synonymous
  
  
  
  1.2       +209 -123  jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java
  
  Index: ActionLoaderTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ActionLoaderTest.java	11 Sep 2003 15:00:09 -0000	1.1
  +++ ActionLoaderTest.java	26 Sep 2003 17:49:46 -0000	1.2
  @@ -1,9 +1,63 @@
   package org.apache.turbine.modules;
  +/* ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2001-2003 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 acknowledgment:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "Apache" and "Apache Software Foundation" and
  + *    "Apache Turbine" 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",
  + *    "Apache Turbine", nor may "Apache" appear in their name, without
  + *    prior written permission of the Apache Software Foundation.
  + *
  + * 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/>.
  + */
  +
   import java.util.Vector;
   import javax.servlet.ServletConfig;
   import javax.servlet.http.HttpServletResponse;
  -import org.apache.turbine.modules.ActionLoader;
  -import org.apache.turbine.modules.PageLoader;
  +
  +import org.apache.turbine.Turbine;
   import org.apache.turbine.om.security.User;
   import org.apache.turbine.services.TurbineServices;
   import org.apache.turbine.services.rundata.RunDataService;
  @@ -16,131 +70,163 @@
   import com.mockobjects.servlet.MockHttpServletResponse;
   import com.mockobjects.servlet.MockServletConfig;
   /**
  - * This test case is to verify whether Exceptions in Velocity actions are 
  - * properly bubbled up.
  + * This test case is to verify whether exceptions in Velocity actions are 
  + * properly bubbled up when action.event.bubbleexception=true.  Or, if
  + * action.event.bubbleexception=false, then the exceptions should be
  + * logged and sunk.
    * 
    * @author     <a href="mailto:epugh@upstate.com">Eric Pugh</a>
    */
  -public class ActionLoaderTest extends BaseTestCase
  -{
  -    private static TurbineConfig tc = null;
  -    private static TemplateService ts = null;
  -    private MockServletConfig config = null;
  -    private EnhancedMockHttpServletRequest request = null;
  -    private EnhancedMockHttpSession session = null;
  -    private HttpServletResponse response = null;
  -    private static ServletConfig sc = null;
  -    /*
  -     * @see TestCase#setUp()
  -     */
  -    protected void setUp() throws Exception
  -    {
  -        super.setUp();
  -        config = new MockServletConfig();
  -        config.setupNoParameters();
  -        request = new EnhancedMockHttpServletRequest();
  -        request.setupServerName("bob");
  -        request.setupGetProtocol("http");
  -        request.setupScheme("scheme");
  -        request.setupPathInfo("damn");
  -        request.setupGetServletPath("damn2");
  -        request.setupGetContextPath("wow");
  -        request.setupGetContentType("html/text");
  -        request.setupAddHeader("Content-type", "html/text");
  -        request.setupAddHeader("Accept-Language", "en-US");
  -        Vector v = new Vector();
  -        request.setupGetParameterNames(v.elements());
  -        session = new EnhancedMockHttpSession();
  -        response = new MockHttpServletResponse();
  -        session.setupGetAttribute(User.SESSION_KEY, null);
  -        request.setSession(session);
  -        sc = config;
  -        tc = new TurbineConfig(".", "/conf/test/CompleteTurbineResources.properties");
  -        tc.initialize();
  -    }
  -    /*
  -     * @see TestCase#tearDown()
  -     */
  -    protected void tearDown() throws Exception
  -    {
  -        super.tearDown();
  -        if (tc != null)
  -        {
  -            tc.dispose();
  -        }
  -    }
  -    /**
  -     * Constructor for VelocityErrorScreenTest.
  -     * @param arg0
  -     */
  -    public ActionLoaderTest(String arg0) throws Exception
  -    {
  -        super(arg0);
  -    }
  -    /**
  -     * This unit test verifies that if your standard doPerform is called, 
  -     * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
  +public class ActionLoaderTest extends BaseTestCase {
  +	private static TurbineConfig tc = null;
  +	private static TemplateService ts = null;
  +	private MockServletConfig config = null;
  +	private EnhancedMockHttpServletRequest request = null;
  +	private EnhancedMockHttpSession session = null;
  +	private HttpServletResponse response = null;
  +	private static ServletConfig sc = null;
  +	/*
  +	 * @see TestCase#setUp()
  +	 */
  +	protected void setUp() throws Exception {
  +		super.setUp();
  +		config = new MockServletConfig();
  +		config.setupNoParameters();
  +		request = new EnhancedMockHttpServletRequest();
  +		request.setupServerName("bob");
  +		request.setupGetProtocol("http");
  +		request.setupScheme("scheme");
  +		request.setupPathInfo("damn");
  +		request.setupGetServletPath("damn2");
  +		request.setupGetContextPath("wow");
  +		request.setupGetContentType("html/text");
  +		request.setupAddHeader("Content-type", "html/text");
  +		request.setupAddHeader("Accept-Language", "en-US");
  +		Vector v = new Vector();
  +		request.setupGetParameterNames(v.elements());
  +		session = new EnhancedMockHttpSession();
  +		response = new MockHttpServletResponse();
  +		session.setupGetAttribute(User.SESSION_KEY, null);
  +		request.setSession(session);
  +		sc = config;
  +		tc =
  +			new TurbineConfig(
  +				".",
  +				"/conf/test/CompleteTurbineResources.properties");
  +		tc.initialize();
  +	}
  +	/*
  +	 * @see TestCase#tearDown()
  +	 */
  +	protected void tearDown() throws Exception {
  +		super.tearDown();
  +		if (tc != null) {
  +			tc.dispose();
  +		}
  +	}
  +	/**
  +	 * Constructor for VelocityErrorScreenTest.
  +	 * @param arg0
  +	 */
  +	public ActionLoaderTest(String arg0) throws Exception {
  +		super(arg0);
  +	}
  +	/**
  +	 * This unit test verifies that if your standard doPerform is called, 
  +	 * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
  +	 * 
  +	 * @throws Exception If something goes wrong with the unit test
  +	 */
  +	public void testDoPerformBubblesException() throws Exception {
  +		RunData data = getRunData();
  +		try {
  +			String defaultPage = "VelocityPage";
  +			ActionLoader.getInstance().exec(data, data.getAction());
  +			fail("Should have thrown an exception");
  +		} catch (Exception e) {
  +			//good
  +		}
  +	}
  +	/**
  +	   * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
  +	   * exception is bubbled up out of the ActionLoader...
  +	   * 
  +	   * @throws Exception If something goes wrong with the unit test
  +	   */
  +	public void testActionEventBubblesException() throws Exception {
  +		// can't seem to figure out how to setup the Mock Request with the right parameters...
  +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
  +		RunData data = getRunData();
  +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
  +		assertTrue(
  +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
  +		try {
  +			String defaultPage = "VelocityPage";
  +			ActionLoader.getInstance().exec(data, data.getAction());
  +			fail("Should have bubbled out an exception thrown by the action.");
  +		} catch (Exception e) {
  +			//good
  +		}
  +	}
  +
  +	/**
  +	 * This unit test verifies that if your standard doPerform is called, 
  +	 * and it throws an Exception, if the action.event.bubbleexception
  +     * property is set to false then the exception is NOT bubbled up
  +	 * 
  +	 * @throws Exception If something goes wrong with the unit test
  +	 */
  +	public void testDoPerformDoesntBubbleException() throws Exception {
  +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
  +		assertFalse(Turbine.getConfiguration().getBoolean("action.event.bubbleexception"));
  +		RunData data = getRunData();
  +		try {
  +			String defaultPage = "VelocityPage";
  +			ActionLoader.getInstance().exec(data, data.getAction());
  +		
  +		} catch (Exception e) {
  +			fail("Should NOT have thrown an exception:" + e.getMessage());
  +		}
  +	}
  +	/**
  +     * This unit test verifies that if an Action Event doEventSubmit_ is called, 
  +     * and it throws an Exception, if the action.event.bubbleexception
  +     * property is set to false then the exception is NOT bubbled up
        * 
        * @throws Exception If something goes wrong with the unit test
        */
  -    public void testDoPerformBubblesException() throws Exception
  -    {
  -        RunData data = getRunData();
  -        data.setAction("VelocityActionThrowsException");
  -        try
  -        {
  -            String defaultPage = "VelocityPage";
  -            ActionLoader.getInstance().exec(data, data.getAction());
  -            fail("Should have thrown an exception");
  -        }
  -        catch (Exception e)
  -        {
  -            //good
  -        }
  -    }
  -    /**
  -       * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
  -       * exception is bubbled up out of the ActionLoader...
  -       * 
  -       * @throws Exception If something goes wrong with the unit test
  -       */
  -    public void testActionEventBubblesException() throws Exception
  -    {
  -        // can't seem to figure out how to setup the Mock Request with the right parameters...
  -        request.setupAddParameter("eventSubmit_doCauseexception", "foo");
  -        RunData data = getRunData();
  -        data.getParameters().add("eventSubmit_doCauseexception", "foo");
  -        assertTrue(data.getParameters().containsKey("eventSubmit_doCauseexception"));
  -        data.setAction("VelocityActionThrowsException");
  -        try
  -        {
  -            String defaultPage = "VelocityPage";
  -            ActionLoader.getInstance().exec(data, data.getAction());
  -            fail("Should have bubbled out an exception thrown by the action.");
  -        }
  -        catch (Exception e)
  -        {
  -            //good
  -        }
  -    }
  -    public void testNonexistentActionCausesError() throws Exception
  -    {
  -        RunData data = getRunData();
  -        data.setAction("ImaginaryAction");
  -        try
  -        {
  -            PageLoader.getInstance().exec(data, "boo");
  -            fail("Should have thrown an exception");
  -        }
  -        catch (Exception e)
  -        {
  -            //good
  -        }
  -    }
  -    private RunData getRunData() throws Exception
  -    {
  -        RunDataService rds = (RunDataService) TurbineServices.getInstance().getService(RunDataService.SERVICE_NAME);
  -        RunData runData = rds.getRunData(request, response, config);
  -        return runData;
  -    }
  +	public void testActionEventDoesntBubbleException() throws Exception {
  +		// can't seem to figure out how to setup the Mock Request with the right parameters...
  +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
  +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
  +		RunData data = getRunData();
  +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
  +		assertTrue(
  +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
  +		
  +		try {
  +			String defaultPage = "VelocityPage";
  +			ActionLoader.getInstance().exec(data, data.getAction());			
  +		} catch (Exception e) {
  +			fail("Should NOT have thrown an exception:" + e.getMessage());
  +		}
  +	}
  +	public void testNonexistentActionCausesError() throws Exception {
  +		RunData data = getRunData();
  +		data.setAction("ImaginaryAction");
  +		try {
  +			PageLoader.getInstance().exec(data, "boo");
  +			fail("Should have thrown an exception");
  +		} catch (Exception e) {
  +			//good
  +		}
  +	}
  +	private RunData getRunData() throws Exception {
  +		RunDataService rds =
  +			(RunDataService) TurbineServices.getInstance().getService(
  +				RunDataService.SERVICE_NAME);
  +		RunData runData = rds.getRunData(request, response, config);
  +		runData.setAction("VelocityActionThrowsException");
  +		return runData;
  +	}
   }
  
  
  
  1.2       +1 -1      jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java
  
  Index: VelocityActionThrowsException.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- VelocityActionThrowsException.java	11 Sep 2003 15:00:09 -0000	1.1
  +++ VelocityActionThrowsException.java	26 Sep 2003 17:49:46 -0000	1.2
  @@ -89,6 +89,6 @@
       public void doCauseexception(RunData data, Context context) throws Exception
       {
           log.debug("Calling doCauseexception");
  -        throw new Exception("From Actin Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
  +        throw new Exception("From Action Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
       }
   }
  
  
  
  1.52      +8 -1      jakarta-turbine-2/conf/TurbineResources.properties
  
  Index: TurbineResources.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-2/conf/TurbineResources.properties,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- TurbineResources.properties	2 Sep 2003 13:28:28 -0000	1.51
  +++ TurbineResources.properties	26 Sep 2003 17:49:47 -0000	1.52
  @@ -217,6 +217,13 @@
   # 
   action.eventsubmit.needsvalue = false
   
  +#
  +# Set this value to false if you want perform your own error trapping.
  +# Otherwise when an exception in an do<xxx> or doPerform method occurs
  +# then Turbine will hand control over to your specified error screen
  +# 
  +action.event.bubbleexception = true
  +
   # -------------------------------------------------------------------
   #
   #  J N D I  C O N T E X T S
  
  
  

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


Re: cvs commit: jakarta-turbine-2/conf TurbineResources.properties

Posted by "Daniel L. Rall" <dl...@finemaltcoding.com>.
Turbine documents that the opening-brace-on-newline formatting style is used.

epugh@apache.org wrote:
> epugh       2003/09/26 10:49:47
> 
>   Modified:    xdocs    changes.xml
>                src/test/org/apache/turbine/modules ActionLoaderTest.java
>                src/test/org/apache/turbine/modules/actions
>                         VelocityActionThrowsException.java
>                conf     TurbineResources.properties
>   Log:
>   Unit test testing the bubble exceptions property
>   
>   Revision  Changes    Path
>   1.65      +5 -0      jakarta-turbine-2/xdocs/changes.xml
>   
>   Index: changes.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/xdocs/changes.xml,v
>   retrieving revision 1.64
>   retrieving revision 1.65
>   diff -u -r1.64 -r1.65
>   --- changes.xml	26 Sep 2003 00:39:51 -0000	1.64
>   +++ changes.xml	26 Sep 2003 17:49:46 -0000	1.65
>   @@ -75,6 +75,11 @@
>    <p>
>      <ul>
>        <li>
>   +       doXXX events would eat exceptions while doPerform would bubble them up.
>   +       Added property action.event.bubbleexception which is true by default that
>   +       applies to both types and either bubbles them up, or logs and sinks them.
>   +    </li>  	
>   +    <li>
>           The intake validators were fixed so that fields with required=false 
>           rules no longer attempt to execute the remaining rules when no
>           input is provided.  A minLength > 0 rule is no longer synonymous
>   
>   
>   
>   1.2       +209 -123  jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java
>   
>   Index: ActionLoaderTest.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- ActionLoaderTest.java	11 Sep 2003 15:00:09 -0000	1.1
>   +++ ActionLoaderTest.java	26 Sep 2003 17:49:46 -0000	1.2
>   @@ -1,9 +1,63 @@
>    package org.apache.turbine.modules;
>   +/* ====================================================================
>   + * The Apache Software License, Version 1.1
>   + *
>   + * Copyright (c) 2001-2003 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 acknowledgment:
>   + *       "This product includes software developed by the
>   + *        Apache Software Foundation (http://www.apache.org/)."
>   + *    Alternately, this acknowledgment may appear in the software itself,
>   + *    if and wherever such third-party acknowledgments normally appear.
>   + *
>   + * 4. The names "Apache" and "Apache Software Foundation" and
>   + *    "Apache Turbine" 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",
>   + *    "Apache Turbine", nor may "Apache" appear in their name, without
>   + *    prior written permission of the Apache Software Foundation.
>   + *
>   + * 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/>.
>   + */
>   +
>    import java.util.Vector;
>    import javax.servlet.ServletConfig;
>    import javax.servlet.http.HttpServletResponse;
>   -import org.apache.turbine.modules.ActionLoader;
>   -import org.apache.turbine.modules.PageLoader;
>   +
>   +import org.apache.turbine.Turbine;
>    import org.apache.turbine.om.security.User;
>    import org.apache.turbine.services.TurbineServices;
>    import org.apache.turbine.services.rundata.RunDataService;
>   @@ -16,131 +70,163 @@
>    import com.mockobjects.servlet.MockHttpServletResponse;
>    import com.mockobjects.servlet.MockServletConfig;
>    /**
>   - * This test case is to verify whether Exceptions in Velocity actions are 
>   - * properly bubbled up.
>   + * This test case is to verify whether exceptions in Velocity actions are 
>   + * properly bubbled up when action.event.bubbleexception=true.  Or, if
>   + * action.event.bubbleexception=false, then the exceptions should be
>   + * logged and sunk.
>     * 
>     * @author     <a href="mailto:epugh@upstate.com">Eric Pugh</a>
>     */
>   -public class ActionLoaderTest extends BaseTestCase
>   -{
>   -    private static TurbineConfig tc = null;
>   -    private static TemplateService ts = null;
>   -    private MockServletConfig config = null;
>   -    private EnhancedMockHttpServletRequest request = null;
>   -    private EnhancedMockHttpSession session = null;
>   -    private HttpServletResponse response = null;
>   -    private static ServletConfig sc = null;
>   -    /*
>   -     * @see TestCase#setUp()
>   -     */
>   -    protected void setUp() throws Exception
>   -    {
>   -        super.setUp();
>   -        config = new MockServletConfig();
>   -        config.setupNoParameters();
>   -        request = new EnhancedMockHttpServletRequest();
>   -        request.setupServerName("bob");
>   -        request.setupGetProtocol("http");
>   -        request.setupScheme("scheme");
>   -        request.setupPathInfo("damn");
>   -        request.setupGetServletPath("damn2");
>   -        request.setupGetContextPath("wow");
>   -        request.setupGetContentType("html/text");
>   -        request.setupAddHeader("Content-type", "html/text");
>   -        request.setupAddHeader("Accept-Language", "en-US");
>   -        Vector v = new Vector();
>   -        request.setupGetParameterNames(v.elements());
>   -        session = new EnhancedMockHttpSession();
>   -        response = new MockHttpServletResponse();
>   -        session.setupGetAttribute(User.SESSION_KEY, null);
>   -        request.setSession(session);
>   -        sc = config;
>   -        tc = new TurbineConfig(".", "/conf/test/CompleteTurbineResources.properties");
>   -        tc.initialize();
>   -    }
>   -    /*
>   -     * @see TestCase#tearDown()
>   -     */
>   -    protected void tearDown() throws Exception
>   -    {
>   -        super.tearDown();
>   -        if (tc != null)
>   -        {
>   -            tc.dispose();
>   -        }
>   -    }
>   -    /**
>   -     * Constructor for VelocityErrorScreenTest.
>   -     * @param arg0
>   -     */
>   -    public ActionLoaderTest(String arg0) throws Exception
>   -    {
>   -        super(arg0);
>   -    }
>   -    /**
>   -     * This unit test verifies that if your standard doPerform is called, 
>   -     * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
>   +public class ActionLoaderTest extends BaseTestCase {
>   +	private static TurbineConfig tc = null;
>   +	private static TemplateService ts = null;
>   +	private MockServletConfig config = null;
>   +	private EnhancedMockHttpServletRequest request = null;
>   +	private EnhancedMockHttpSession session = null;
>   +	private HttpServletResponse response = null;
>   +	private static ServletConfig sc = null;
>   +	/*
>   +	 * @see TestCase#setUp()
>   +	 */
>   +	protected void setUp() throws Exception {
>   +		super.setUp();
>   +		config = new MockServletConfig();
>   +		config.setupNoParameters();
>   +		request = new EnhancedMockHttpServletRequest();
>   +		request.setupServerName("bob");
>   +		request.setupGetProtocol("http");
>   +		request.setupScheme("scheme");
>   +		request.setupPathInfo("damn");
>   +		request.setupGetServletPath("damn2");
>   +		request.setupGetContextPath("wow");
>   +		request.setupGetContentType("html/text");
>   +		request.setupAddHeader("Content-type", "html/text");
>   +		request.setupAddHeader("Accept-Language", "en-US");
>   +		Vector v = new Vector();
>   +		request.setupGetParameterNames(v.elements());
>   +		session = new EnhancedMockHttpSession();
>   +		response = new MockHttpServletResponse();
>   +		session.setupGetAttribute(User.SESSION_KEY, null);
>   +		request.setSession(session);
>   +		sc = config;
>   +		tc =
>   +			new TurbineConfig(
>   +				".",
>   +				"/conf/test/CompleteTurbineResources.properties");
>   +		tc.initialize();
>   +	}
>   +	/*
>   +	 * @see TestCase#tearDown()
>   +	 */
>   +	protected void tearDown() throws Exception {
>   +		super.tearDown();
>   +		if (tc != null) {
>   +			tc.dispose();
>   +		}
>   +	}
>   +	/**
>   +	 * Constructor for VelocityErrorScreenTest.
>   +	 * @param arg0
>   +	 */
>   +	public ActionLoaderTest(String arg0) throws Exception {
>   +		super(arg0);
>   +	}
>   +	/**
>   +	 * This unit test verifies that if your standard doPerform is called, 
>   +	 * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
>   +	 * 
>   +	 * @throws Exception If something goes wrong with the unit test
>   +	 */
>   +	public void testDoPerformBubblesException() throws Exception {
>   +		RunData data = getRunData();
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +			fail("Should have thrown an exception");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +	/**
>   +	   * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
>   +	   * exception is bubbled up out of the ActionLoader...
>   +	   * 
>   +	   * @throws Exception If something goes wrong with the unit test
>   +	   */
>   +	public void testActionEventBubblesException() throws Exception {
>   +		// can't seem to figure out how to setup the Mock Request with the right parameters...
>   +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   +		RunData data = getRunData();
>   +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   +		assertTrue(
>   +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +			fail("Should have bubbled out an exception thrown by the action.");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +
>   +	/**
>   +	 * This unit test verifies that if your standard doPerform is called, 
>   +	 * and it throws an Exception, if the action.event.bubbleexception
>   +     * property is set to false then the exception is NOT bubbled up
>   +	 * 
>   +	 * @throws Exception If something goes wrong with the unit test
>   +	 */
>   +	public void testDoPerformDoesntBubbleException() throws Exception {
>   +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
>   +		assertFalse(Turbine.getConfiguration().getBoolean("action.event.bubbleexception"));
>   +		RunData data = getRunData();
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +		
>   +		} catch (Exception e) {
>   +			fail("Should NOT have thrown an exception:" + e.getMessage());
>   +		}
>   +	}
>   +	/**
>   +     * This unit test verifies that if an Action Event doEventSubmit_ is called, 
>   +     * and it throws an Exception, if the action.event.bubbleexception
>   +     * property is set to false then the exception is NOT bubbled up
>         * 
>         * @throws Exception If something goes wrong with the unit test
>         */
>   -    public void testDoPerformBubblesException() throws Exception
>   -    {
>   -        RunData data = getRunData();
>   -        data.setAction("VelocityActionThrowsException");
>   -        try
>   -        {
>   -            String defaultPage = "VelocityPage";
>   -            ActionLoader.getInstance().exec(data, data.getAction());
>   -            fail("Should have thrown an exception");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    /**
>   -       * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
>   -       * exception is bubbled up out of the ActionLoader...
>   -       * 
>   -       * @throws Exception If something goes wrong with the unit test
>   -       */
>   -    public void testActionEventBubblesException() throws Exception
>   -    {
>   -        // can't seem to figure out how to setup the Mock Request with the right parameters...
>   -        request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   -        RunData data = getRunData();
>   -        data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   -        assertTrue(data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   -        data.setAction("VelocityActionThrowsException");
>   -        try
>   -        {
>   -            String defaultPage = "VelocityPage";
>   -            ActionLoader.getInstance().exec(data, data.getAction());
>   -            fail("Should have bubbled out an exception thrown by the action.");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    public void testNonexistentActionCausesError() throws Exception
>   -    {
>   -        RunData data = getRunData();
>   -        data.setAction("ImaginaryAction");
>   -        try
>   -        {
>   -            PageLoader.getInstance().exec(data, "boo");
>   -            fail("Should have thrown an exception");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    private RunData getRunData() throws Exception
>   -    {
>   -        RunDataService rds = (RunDataService) TurbineServices.getInstance().getService(RunDataService.SERVICE_NAME);
>   -        RunData runData = rds.getRunData(request, response, config);
>   -        return runData;
>   -    }
>   +	public void testActionEventDoesntBubbleException() throws Exception {
>   +		// can't seem to figure out how to setup the Mock Request with the right parameters...
>   +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
>   +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   +		RunData data = getRunData();
>   +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   +		assertTrue(
>   +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   +		
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());			
>   +		} catch (Exception e) {
>   +			fail("Should NOT have thrown an exception:" + e.getMessage());
>   +		}
>   +	}
>   +	public void testNonexistentActionCausesError() throws Exception {
>   +		RunData data = getRunData();
>   +		data.setAction("ImaginaryAction");
>   +		try {
>   +			PageLoader.getInstance().exec(data, "boo");
>   +			fail("Should have thrown an exception");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +	private RunData getRunData() throws Exception {
>   +		RunDataService rds =
>   +			(RunDataService) TurbineServices.getInstance().getService(
>   +				RunDataService.SERVICE_NAME);
>   +		RunData runData = rds.getRunData(request, response, config);
>   +		runData.setAction("VelocityActionThrowsException");
>   +		return runData;
>   +	}
>    }
>   
>   
>   
>   1.2       +1 -1      jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java
>   
>   Index: VelocityActionThrowsException.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- VelocityActionThrowsException.java	11 Sep 2003 15:00:09 -0000	1.1
>   +++ VelocityActionThrowsException.java	26 Sep 2003 17:49:46 -0000	1.2
>   @@ -89,6 +89,6 @@
>        public void doCauseexception(RunData data, Context context) throws Exception
>        {
>            log.debug("Calling doCauseexception");
>   -        throw new Exception("From Actin Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
>   +        throw new Exception("From Action Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
>        }
>    }



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


Re: cvs commit: jakarta-turbine-2/conf TurbineResources.properties

Posted by "Daniel L. Rall" <dl...@finemaltcoding.com>.
Turbine documents that the opening-brace-on-newline formatting style is used.

epugh@apache.org wrote:
> epugh       2003/09/26 10:49:47
> 
>   Modified:    xdocs    changes.xml
>                src/test/org/apache/turbine/modules ActionLoaderTest.java
>                src/test/org/apache/turbine/modules/actions
>                         VelocityActionThrowsException.java
>                conf     TurbineResources.properties
>   Log:
>   Unit test testing the bubble exceptions property
>   
>   Revision  Changes    Path
>   1.65      +5 -0      jakarta-turbine-2/xdocs/changes.xml
>   
>   Index: changes.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/xdocs/changes.xml,v
>   retrieving revision 1.64
>   retrieving revision 1.65
>   diff -u -r1.64 -r1.65
>   --- changes.xml	26 Sep 2003 00:39:51 -0000	1.64
>   +++ changes.xml	26 Sep 2003 17:49:46 -0000	1.65
>   @@ -75,6 +75,11 @@
>    <p>
>      <ul>
>        <li>
>   +       doXXX events would eat exceptions while doPerform would bubble them up.
>   +       Added property action.event.bubbleexception which is true by default that
>   +       applies to both types and either bubbles them up, or logs and sinks them.
>   +    </li>  	
>   +    <li>
>           The intake validators were fixed so that fields with required=false 
>           rules no longer attempt to execute the remaining rules when no
>           input is provided.  A minLength > 0 rule is no longer synonymous
>   
>   
>   
>   1.2       +209 -123  jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java
>   
>   Index: ActionLoaderTest.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/ActionLoaderTest.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- ActionLoaderTest.java	11 Sep 2003 15:00:09 -0000	1.1
>   +++ ActionLoaderTest.java	26 Sep 2003 17:49:46 -0000	1.2
>   @@ -1,9 +1,63 @@
>    package org.apache.turbine.modules;
>   +/* ====================================================================
>   + * The Apache Software License, Version 1.1
>   + *
>   + * Copyright (c) 2001-2003 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 acknowledgment:
>   + *       "This product includes software developed by the
>   + *        Apache Software Foundation (http://www.apache.org/)."
>   + *    Alternately, this acknowledgment may appear in the software itself,
>   + *    if and wherever such third-party acknowledgments normally appear.
>   + *
>   + * 4. The names "Apache" and "Apache Software Foundation" and
>   + *    "Apache Turbine" 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",
>   + *    "Apache Turbine", nor may "Apache" appear in their name, without
>   + *    prior written permission of the Apache Software Foundation.
>   + *
>   + * 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/>.
>   + */
>   +
>    import java.util.Vector;
>    import javax.servlet.ServletConfig;
>    import javax.servlet.http.HttpServletResponse;
>   -import org.apache.turbine.modules.ActionLoader;
>   -import org.apache.turbine.modules.PageLoader;
>   +
>   +import org.apache.turbine.Turbine;
>    import org.apache.turbine.om.security.User;
>    import org.apache.turbine.services.TurbineServices;
>    import org.apache.turbine.services.rundata.RunDataService;
>   @@ -16,131 +70,163 @@
>    import com.mockobjects.servlet.MockHttpServletResponse;
>    import com.mockobjects.servlet.MockServletConfig;
>    /**
>   - * This test case is to verify whether Exceptions in Velocity actions are 
>   - * properly bubbled up.
>   + * This test case is to verify whether exceptions in Velocity actions are 
>   + * properly bubbled up when action.event.bubbleexception=true.  Or, if
>   + * action.event.bubbleexception=false, then the exceptions should be
>   + * logged and sunk.
>     * 
>     * @author     <a href="mailto:epugh@upstate.com">Eric Pugh</a>
>     */
>   -public class ActionLoaderTest extends BaseTestCase
>   -{
>   -    private static TurbineConfig tc = null;
>   -    private static TemplateService ts = null;
>   -    private MockServletConfig config = null;
>   -    private EnhancedMockHttpServletRequest request = null;
>   -    private EnhancedMockHttpSession session = null;
>   -    private HttpServletResponse response = null;
>   -    private static ServletConfig sc = null;
>   -    /*
>   -     * @see TestCase#setUp()
>   -     */
>   -    protected void setUp() throws Exception
>   -    {
>   -        super.setUp();
>   -        config = new MockServletConfig();
>   -        config.setupNoParameters();
>   -        request = new EnhancedMockHttpServletRequest();
>   -        request.setupServerName("bob");
>   -        request.setupGetProtocol("http");
>   -        request.setupScheme("scheme");
>   -        request.setupPathInfo("damn");
>   -        request.setupGetServletPath("damn2");
>   -        request.setupGetContextPath("wow");
>   -        request.setupGetContentType("html/text");
>   -        request.setupAddHeader("Content-type", "html/text");
>   -        request.setupAddHeader("Accept-Language", "en-US");
>   -        Vector v = new Vector();
>   -        request.setupGetParameterNames(v.elements());
>   -        session = new EnhancedMockHttpSession();
>   -        response = new MockHttpServletResponse();
>   -        session.setupGetAttribute(User.SESSION_KEY, null);
>   -        request.setSession(session);
>   -        sc = config;
>   -        tc = new TurbineConfig(".", "/conf/test/CompleteTurbineResources.properties");
>   -        tc.initialize();
>   -    }
>   -    /*
>   -     * @see TestCase#tearDown()
>   -     */
>   -    protected void tearDown() throws Exception
>   -    {
>   -        super.tearDown();
>   -        if (tc != null)
>   -        {
>   -            tc.dispose();
>   -        }
>   -    }
>   -    /**
>   -     * Constructor for VelocityErrorScreenTest.
>   -     * @param arg0
>   -     */
>   -    public ActionLoaderTest(String arg0) throws Exception
>   -    {
>   -        super(arg0);
>   -    }
>   -    /**
>   -     * This unit test verifies that if your standard doPerform is called, 
>   -     * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
>   +public class ActionLoaderTest extends BaseTestCase {
>   +	private static TurbineConfig tc = null;
>   +	private static TemplateService ts = null;
>   +	private MockServletConfig config = null;
>   +	private EnhancedMockHttpServletRequest request = null;
>   +	private EnhancedMockHttpSession session = null;
>   +	private HttpServletResponse response = null;
>   +	private static ServletConfig sc = null;
>   +	/*
>   +	 * @see TestCase#setUp()
>   +	 */
>   +	protected void setUp() throws Exception {
>   +		super.setUp();
>   +		config = new MockServletConfig();
>   +		config.setupNoParameters();
>   +		request = new EnhancedMockHttpServletRequest();
>   +		request.setupServerName("bob");
>   +		request.setupGetProtocol("http");
>   +		request.setupScheme("scheme");
>   +		request.setupPathInfo("damn");
>   +		request.setupGetServletPath("damn2");
>   +		request.setupGetContextPath("wow");
>   +		request.setupGetContentType("html/text");
>   +		request.setupAddHeader("Content-type", "html/text");
>   +		request.setupAddHeader("Accept-Language", "en-US");
>   +		Vector v = new Vector();
>   +		request.setupGetParameterNames(v.elements());
>   +		session = new EnhancedMockHttpSession();
>   +		response = new MockHttpServletResponse();
>   +		session.setupGetAttribute(User.SESSION_KEY, null);
>   +		request.setSession(session);
>   +		sc = config;
>   +		tc =
>   +			new TurbineConfig(
>   +				".",
>   +				"/conf/test/CompleteTurbineResources.properties");
>   +		tc.initialize();
>   +	}
>   +	/*
>   +	 * @see TestCase#tearDown()
>   +	 */
>   +	protected void tearDown() throws Exception {
>   +		super.tearDown();
>   +		if (tc != null) {
>   +			tc.dispose();
>   +		}
>   +	}
>   +	/**
>   +	 * Constructor for VelocityErrorScreenTest.
>   +	 * @param arg0
>   +	 */
>   +	public ActionLoaderTest(String arg0) throws Exception {
>   +		super(arg0);
>   +	}
>   +	/**
>   +	 * This unit test verifies that if your standard doPerform is called, 
>   +	 * and it throws an Exception, the exception is bubbled up out of the ActionLoader...
>   +	 * 
>   +	 * @throws Exception If something goes wrong with the unit test
>   +	 */
>   +	public void testDoPerformBubblesException() throws Exception {
>   +		RunData data = getRunData();
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +			fail("Should have thrown an exception");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +	/**
>   +	   * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
>   +	   * exception is bubbled up out of the ActionLoader...
>   +	   * 
>   +	   * @throws Exception If something goes wrong with the unit test
>   +	   */
>   +	public void testActionEventBubblesException() throws Exception {
>   +		// can't seem to figure out how to setup the Mock Request with the right parameters...
>   +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   +		RunData data = getRunData();
>   +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   +		assertTrue(
>   +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +			fail("Should have bubbled out an exception thrown by the action.");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +
>   +	/**
>   +	 * This unit test verifies that if your standard doPerform is called, 
>   +	 * and it throws an Exception, if the action.event.bubbleexception
>   +     * property is set to false then the exception is NOT bubbled up
>   +	 * 
>   +	 * @throws Exception If something goes wrong with the unit test
>   +	 */
>   +	public void testDoPerformDoesntBubbleException() throws Exception {
>   +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
>   +		assertFalse(Turbine.getConfiguration().getBoolean("action.event.bubbleexception"));
>   +		RunData data = getRunData();
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());
>   +		
>   +		} catch (Exception e) {
>   +			fail("Should NOT have thrown an exception:" + e.getMessage());
>   +		}
>   +	}
>   +	/**
>   +     * This unit test verifies that if an Action Event doEventSubmit_ is called, 
>   +     * and it throws an Exception, if the action.event.bubbleexception
>   +     * property is set to false then the exception is NOT bubbled up
>         * 
>         * @throws Exception If something goes wrong with the unit test
>         */
>   -    public void testDoPerformBubblesException() throws Exception
>   -    {
>   -        RunData data = getRunData();
>   -        data.setAction("VelocityActionThrowsException");
>   -        try
>   -        {
>   -            String defaultPage = "VelocityPage";
>   -            ActionLoader.getInstance().exec(data, data.getAction());
>   -            fail("Should have thrown an exception");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    /**
>   -       * This unit test verifies that if an Action Event doEventSubmit_ is called, and it throws an Exception, the
>   -       * exception is bubbled up out of the ActionLoader...
>   -       * 
>   -       * @throws Exception If something goes wrong with the unit test
>   -       */
>   -    public void testActionEventBubblesException() throws Exception
>   -    {
>   -        // can't seem to figure out how to setup the Mock Request with the right parameters...
>   -        request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   -        RunData data = getRunData();
>   -        data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   -        assertTrue(data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   -        data.setAction("VelocityActionThrowsException");
>   -        try
>   -        {
>   -            String defaultPage = "VelocityPage";
>   -            ActionLoader.getInstance().exec(data, data.getAction());
>   -            fail("Should have bubbled out an exception thrown by the action.");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    public void testNonexistentActionCausesError() throws Exception
>   -    {
>   -        RunData data = getRunData();
>   -        data.setAction("ImaginaryAction");
>   -        try
>   -        {
>   -            PageLoader.getInstance().exec(data, "boo");
>   -            fail("Should have thrown an exception");
>   -        }
>   -        catch (Exception e)
>   -        {
>   -            //good
>   -        }
>   -    }
>   -    private RunData getRunData() throws Exception
>   -    {
>   -        RunDataService rds = (RunDataService) TurbineServices.getInstance().getService(RunDataService.SERVICE_NAME);
>   -        RunData runData = rds.getRunData(request, response, config);
>   -        return runData;
>   -    }
>   +	public void testActionEventDoesntBubbleException() throws Exception {
>   +		// can't seem to figure out how to setup the Mock Request with the right parameters...
>   +		Turbine.getConfiguration().setProperty("action.event.bubbleexception",Boolean.FALSE);
>   +		request.setupAddParameter("eventSubmit_doCauseexception", "foo");
>   +		RunData data = getRunData();
>   +		data.getParameters().add("eventSubmit_doCauseexception", "foo");
>   +		assertTrue(
>   +			data.getParameters().containsKey("eventSubmit_doCauseexception"));
>   +		
>   +		try {
>   +			String defaultPage = "VelocityPage";
>   +			ActionLoader.getInstance().exec(data, data.getAction());			
>   +		} catch (Exception e) {
>   +			fail("Should NOT have thrown an exception:" + e.getMessage());
>   +		}
>   +	}
>   +	public void testNonexistentActionCausesError() throws Exception {
>   +		RunData data = getRunData();
>   +		data.setAction("ImaginaryAction");
>   +		try {
>   +			PageLoader.getInstance().exec(data, "boo");
>   +			fail("Should have thrown an exception");
>   +		} catch (Exception e) {
>   +			//good
>   +		}
>   +	}
>   +	private RunData getRunData() throws Exception {
>   +		RunDataService rds =
>   +			(RunDataService) TurbineServices.getInstance().getService(
>   +				RunDataService.SERVICE_NAME);
>   +		RunData runData = rds.getRunData(request, response, config);
>   +		runData.setAction("VelocityActionThrowsException");
>   +		return runData;
>   +	}
>    }
>   
>   
>   
>   1.2       +1 -1      jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java
>   
>   Index: VelocityActionThrowsException.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-turbine-2/src/test/org/apache/turbine/modules/actions/VelocityActionThrowsException.java,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- VelocityActionThrowsException.java	11 Sep 2003 15:00:09 -0000	1.1
>   +++ VelocityActionThrowsException.java	26 Sep 2003 17:49:46 -0000	1.2
>   @@ -89,6 +89,6 @@
>        public void doCauseexception(RunData data, Context context) throws Exception
>        {
>            log.debug("Calling doCauseexception");
>   -        throw new Exception("From Actin Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
>   +        throw new Exception("From Action Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
>        }
>    }