4 Replies Latest reply on Jun 23, 2010 8:54 AM by odelya yomtov

    JSFUnit Spring Security Problem

    easy rider Newbie

      Hi,

       

      I'd like to test my secure pages with JSFUnit :

       

      My Testclass:

       

      public class BasicAuthenticationTest extends ServletTestCase

      {

       

       

         public static Test suite()

         {

            return new TestSuite( BasicAuthenticationTest.class );

         }

       

         public void testBasicAuth() throws IOException, ServletException

         {

       

       

             WebClientSpec wcSpec = new WebClientSpec("/createCategory.jsf");

             FormAuthenticationStrategy formAuth = new FormAuthenticationStrategy("username", "pass", "login_btn");

             wcSpec.setInitialRequestStrategy(formAuth);

       

             JSFSession jsfSession = new JSFSession(wcSpec);

             JSFClientSession client = jsfSession.getJSFClientSession();

             JSFServerSession server = jsfSession.getJSFServerSession();

       

             assertEquals("/createCategory.jsf", server.getCurrentViewID())

       

         }

       

      }

       

      My web.xml :

       

      .................

       

      <!-- ********* begin of JSFUnit parameters **********   -->
           <filter>
            <filter-name>JSFUnitFilter</filter-name>
            <filter-class>org.jboss.jsfunit.framework.JSFUnitFilter</filter-class>
          </filter>

          <filter-mapping>
            <filter-name>JSFUnitFilter</filter-name>
            <servlet-name>ServletTestRunner</servlet-name>
          </filter-mapping>   
         
          <filter-mapping>
            <filter-name>JSFUnitFilter</filter-name>
            <servlet-name>ServletRedirector</servlet-name>
          </filter-mapping>

          <servlet>
            <servlet-name>ServletRedirector</servlet-name>
            <servlet-class>org.jboss.jsfunit.framework.JSFUnitServletRedirector</servlet-class>
          </servlet>
         
          <servlet>
             <servlet-name>ServletTestRunner</servlet-name>
             <servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
             <load-on-startup>1</load-on-startup>
          </servlet>

          <servlet-mapping>
            <servlet-name>ServletRedirector</servlet-name>
            <url-pattern>/ServletRedirector</url-pattern>
          </servlet-mapping>
         
          <servlet-mapping>
             <servlet-name>ServletTestRunner</servlet-name>
             <url-pattern>/ServletTestRunner</url-pattern>
          </servlet-mapping>
         
           <!-- ********* end of JSFUnit parameters **********   -->

       

         <!--
              Spring Security
           -->
          <filter>
                <filter-name>springSecurityFilterChain</filter-name>
                <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
          </filter>
          <filter-mapping>
                <filter-name>springSecurityFilterChain</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>FORWARD</dispatcher>
              <dispatcher>REQUEST</dispatcher>
          </filter-mapping>

      ....

       

      But receive the following Exception:

       

      org.apache.cactus.util.ChainedRuntimeException: Failed to get the test results at [http://localhost:8080/ServiceRepo/ServletRedirector]
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0(DefaultHttpClient.java:92)
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice(DefaultHttpClient.java:306)
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest(HttpProtocolHandler.java:159)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0(HttpProtocolHandler.java:80)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice(HttpProtocolHandler.java:306)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest(HttpProtocolHandler.java)
          at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:144)
          at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:215)
          at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:133)
          at junit.framework.TestResult$1.protect(TestResult.java:106)
          at junit.framework.TestResult.runProtected(TestResult.java:124)
          at junit.framework.TestResult.run(TestResult.java:109)
          at junit.framework.TestCase.run(TestCase.java:118)
          at junit.framework.TestSuite.runTest(TestSuite.java:208)
          at junit.framework.TestSuite.run(TestSuite.java:203)
          at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      org.apache.cactus.internal.client.ParsingException: Not a valid response [302 Moved Temporarily]
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.callGetResult(DefaultHttpClient.java:211)
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0(DefaultHttpClient.java:87)
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice(DefaultHttpClient.java:306)
          at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest(HttpProtocolHandler.java:159)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0(HttpProtocolHandler.java:80)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice(HttpProtocolHandler.java:306)
          at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest(HttpProtocolHandler.java)
          at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:144)
          at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:215)
          at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:133)
          at junit.framework.TestResult$1.protect(TestResult.java:106)
          at junit.framework.TestResult.runProtected(TestResult.java:124)
          at junit.framework.TestResult.run(TestResult.java:109)
          at junit.framework.TestCase.run(TestCase.java:118)
          at junit.framework.TestSuite.runTest(TestSuite.java:208)
          at junit.framework.TestSuite.run(TestSuite.java:203)
          at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

       

       

         What changes should i make in web.xml?

       

        Please help!