Author: husted Date: Tue Aug 29 20:00:32 2006 New Revision: 438331 URL: http://svn.apache.org/viewvc?rev=438331&view=rev Log: WW-1349 Add configuration test; reorder action elements.
Added: struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ConfigTest.java Modified: struts/struts2/trunk/apps/mailreader/src/main/java/struts.properties struts/struts2/trunk/apps/mailreader/src/main/java/struts.xml struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/MainMenu.jsp struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/Welcome.jsp struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/registration.jsp struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/subscription.jsp Modified: struts/struts2/trunk/apps/mailreader/src/main/java/struts.properties URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/java/struts.properties?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/java/struts.properties (original) +++ struts/struts2/trunk/apps/mailreader/src/main/java/struts.properties Tue Aug 29 20:00:32 2006 @@ -1,4 +1,3 @@ struts.objectFactory = spring struts.devMode = true -struts.custom.i18n.resources = resources struts.enable.DynamicMethodInvocation = false Modified: struts/struts2/trunk/apps/mailreader/src/main/java/struts.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/java/struts.xml?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/java/struts.xml (original) +++ struts/struts2/trunk/apps/mailreader/src/main/java/struts.xml Tue Aug 29 20:00:32 2006 @@ -28,14 +28,18 @@ <action name="subscription/Save" class="mailreader2.subscription.Save"> <result name="input">/pages/subscription.jsp</result> - <result type="redirect-action">registration/vInput</result> + <result type="redirect-action">registration/+Input</result> + </action> + + <!-- display actions: Welcome, Logoff, MainMenu --> + + <action name="*" class="mailreader2.{1}"> + <result>/pages/{1}.jsp</result> </action> <!-- prepare actions: Confirm/Delete, Edit, Input --> - <!-- A "!" might be a better convention, - but that doesn't seem to work with a button --> - <action name="*/v*" class="mailreader2.{1}.{2}"> + <action name="*/+*" class="mailreader2.{1}.{2}"> <result>/pages/{1}.jsp</result> </action> @@ -45,28 +49,6 @@ <result name="input">/pages/{1}.jsp</result> </action> - <!-- Why doen't these match * --> - <!-- It seems to be concaternating a period to the token --> - <!-- Unable to instantiate Action, mailreader2.Welcome., - defined for 'Welcome' in namespace '/'mailreader2.Welcome. --> - <action name="Logoff" class="mailreader2.Logoff"> - <result>/pages/Logoff.jsp</result> - </action> - - <action name="MainMenu" class="mailreader2.MainMenu"> - <result>/pages/MainMenu.jsp</result> - </action> - - <action name="Welcome" class="mailreader2.Welcome"> - <result>/pages/Welcome.jsp</result> - </action> - - <!-- display actions: Welcome, Logoff, MainMenu --> - - <action name="*" class="mailreader2.{1}"> - <result>/pages/{1}.jsp</result> - </action> - - </package> + </package> </struts> Modified: struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/MainMenu.jsp URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/MainMenu.jsp?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/MainMenu.jsp (original) +++ struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/MainMenu.jsp Tue Aug 29 20:00:32 2006 @@ -14,7 +14,7 @@ value="user.fullName"/></h3> <ul> <li> - <s:url id="Input" action="registration/vInput" /> + <s:url id="Input" action="registration/+Input" /> <s:a href="%{Input}"> <s:text name="mainMenu.registration"/> </s:a> Modified: struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/Welcome.jsp URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/Welcome.jsp?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/Welcome.jsp (original) +++ struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/Welcome.jsp Tue Aug 29 20:00:32 2006 @@ -15,11 +15,11 @@ <ul> <li> - <s:url id="registration" action="registration/vInput" /> + <s:url id="registration" action="registration/+Input" /> <s:a href="%{registration}"><s:text name="index.registration"/></s:a> </li> <li> - <s:url id="logon" action="logon/vInput"/> + <s:url id="logon" action="logon/+Input"/> <s:a href="%{logon}"><s:text name="index.logon"/></s:a> </li> </ul> Modified: struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/registration.jsp URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/registration.jsp?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/registration.jsp (original) +++ struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/registration.jsp Tue Aug 29 20:00:32 2006 @@ -100,14 +100,14 @@ <s:property value="autoConnect"/> </td> <td align="center"> - <s:url id="Delete" action="subscription/vDelete" > + <s:url id="Delete" action="subscription/+Delete" > <s:param name="host" value="host"/> </s:url> <s:a href="%{Delete}"> <s:text name="registration.deleteSubscription"/> </s:a> - <s:url id="Edit" action="subscription/vEdit"> + <s:url id="Edit" action="subscription/+Edit"> <s:param name="host" value="host"/> </s:url> <s:a href="%{Edit}"> @@ -119,7 +119,7 @@ </table> - <s:url id="Input" action="subscription/vInput" /> + <s:url id="Input" action="subscription/+Input" /> <s:a href="%{Input}"><s:text name="registration.addSubscription"/></s:a> </s:if> Modified: struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/subscription.jsp URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/subscription.jsp?rev=438331&r1=438330&r2=438331&view=diff ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/subscription.jsp (original) +++ struts/struts2/trunk/apps/mailreader/src/main/webapp/pages/subscription.jsp Tue Aug 29 20:00:32 2006 @@ -57,7 +57,7 @@ <s:reset value="%{getText('button.reset')}"/> </s:else> - <s:submit action="registration/vInput" + <s:submit action="registration/+Input" value="%{getText('button.cancel')}" onclick="form.onsubmit=null"/> </s:form> Added: struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ConfigTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ConfigTest.java?rev=438331&view=auto ============================================================================== --- struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ConfigTest.java (added) +++ struts/struts2/trunk/apps/mailreader/src/test/java/mailreader2/ConfigTest.java Tue Aug 29 20:00:32 2006 @@ -0,0 +1,66 @@ +package mailreader2; + +import com.opensymphony.xwork2.XWorkTestCase; +import com.opensymphony.xwork2.ActionSupport; +import com.opensymphony.xwork2.config.RuntimeConfiguration; +import com.opensymphony.xwork2.config.entities.ActionConfig; +import com.opensymphony.xwork2.config.entities.ResultConfig; +import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider; + +import java.util.Map; + +public class ConfigTest extends XWorkTestCase { + + protected void setUp() throws Exception { + super.setUp(); + XmlConfigurationProvider c = new XmlConfigurationProvider("struts.xml"); + configurationManager.addConfigurationProvider(c); + configurationManager.reload(); + } + + private ActionConfig assertClass(String action_name, String class_name) { + RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration(); + ActionConfig config = configuration.getActionConfig("", action_name); + assertNotNull(config); + assertTrue("Wrong class name: [" + config.getClassName() + "]", + class_name.equals(config.getClassName())); + return config; + } + + private void assertResult(ActionConfig config, String result_name, String result_value) { + Map results = config.getResults(); + ResultConfig result = (ResultConfig) results.get(result_name); + Map params = result.getParams(); + String value = (String) params.get("actionName"); + if (value==null) + value = (String) params.get("location"); + assertTrue("Wrong result value: [" + value + "]", + result_value.equals(value)); + } + + public void testSubscriptionSave() throws Exception { + ActionConfig config = assertClass("subscription/Save", "mailreader2.subscription.Save"); + assertResult(config, ActionSupport.SUCCESS, "registration/+Input"); + assertResult(config, ActionSupport.INPUT, "/pages/subscription.jsp"); + } + + // */!* + public void testPrepareWildcard() throws Exception { + ActionConfig config = assertClass("logon/+Input", "mailreader2.logon.Input"); + assertResult(config, ActionSupport.SUCCESS, "/pages/logon.jsp"); + } + + // */* + public void testExecuteWildcard() throws Exception { + ActionConfig config = assertClass("registration/Update", "mailreader2.registration.Update"); + assertResult(config, ActionSupport.INPUT, "/pages/registration.jsp"); + ActionConfig config2 = assertClass("logon/Retrieve", "mailreader2.logon.Retrieve"); + assertResult(config2, ActionSupport.INPUT, "/pages/logon.jsp"); + } + + // single wildcard + public void testDisplayWildcard() throws Exception { + assertClass("Welcome", "mailreader2.Welcome"); + } + +}