jakarta-cactus-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From EP...@upstate.com
Subject RE: followRedirects is false
Date Thu, 31 Oct 2002 14:42:24 GMT
If you are doing tests that require lots of that type of logic, have you
looked at WebTest?  (webtest.canoo.com).  While not a direct "Unit" test per
se, you can set up unit style tests, and it makes web testing very easy...

Eric

-----Original Message-----
From: Charlene Mitchell [mailto:charlene_ml@yahoo.co.uk]
Sent: Thursday, October 31, 2002 8:10 AM
To: Cactus Users List
Subject: RE: followRedirects is false


Thanks (yet again) for the reply.

What I am trying to achieve is actually very simple
(at the moment).

For example, I have a method 'getData()' in an EJB, I
simply want to call this method using Cactus and
assert whether I get 
  a) data (ok)
  b) null (fail)
  c) exception (fail)
(the Cactus code is written, and looks/compiles fine -
so no problems there).

I don't want to test http codes, I don't want to test
authentication, I just want to test a method.

Since the normal EJB 'getData()' method cannot be
invoked unless a valid user is logged in to the
application (due to standard method-level J2EE
security constraints within ejb-jar.xml), this means
that the Cactus test also needs a valid user logged in
(else I will get an authentication exception).

So, for me, typing the uid/pwd in a login web-page is
enough, I do not need FormAuthentication class (though
at the same time I have downloaded the nightly build
jakarta-cactus-13-20021022.zip and am also trying from
Ant, but that's another story.)

So, what happens at the moment is that I type the URL
of the TestCase in my browser, the Web/AppServer
decides that I am trying to access a protected
resource and redirects me to a logon page, I then type
in my uid/pwd, and then instead of being redirected
back to the TestCase (now that I am allowed to execute
it), I see the 302 errors.

Charlene

 --- Vincent Massol <vmassol@octo.com> wrote: > 
> 
> > -----Original Message-----
> > From: Charlene Mitchell
> [mailto:charlene_ml@yahoo.co.uk]
> > Sent: 31 October 2002 10:28
> > To: Cactus Users List
> > Subject: RE: followRedirects is false
> > 
> > Hi,
> > 
> > Thanks for the replies - much appreciated.
> > 
> > > Following redirect is off in Cactus as Cactus is
> a
> > > unit testing tool.
> > > Thus the idea is that if one of your method on
> the
> > > server side returns a
> > > 302 HTTP response you should be able to assert
> that
> > > in endXXX().
> > 
> > I'm sorry, I don't understand what you mean here.
> > It is JBoss that is returning a 302 response, not
> my
> > application, after redirecting from my test to the
> > login page and then (presumably) trying to
> redirect
> > back to the test.
> 
> Sorry, my turn to not understand. What do you want
> to do:
> 1/ Test that when you access a protected resource,
> you get a 302
> or
> 2/ Do a test on a protected resource (the cactus
> redirector) and you
> want to perform Form Authentication in Cactus so
> that you can test code
> that uses the security API (isUserInRole(), etc) ?
> 
> If 2, then you need to use the cactus code in CVS as
> this is not in
> Cactus 1.4.1. In addition, there was a bug fixed
> recently for Form
> Authentication.
> 
> > 
> > > That said some persons have expressed a wish to
> make
> > > that configurable
> > > so that follow redirects could be turned on. I
> think
> > > it's a good idea. I
> > > someone wants to submit a patch... :-)
> > >
> > > You mention a browser error. How do you start
> the
> > > test?
> > 
> > I simply type the URL in my browser as follows:
> > http://localhost:19201/myapp-
> >
>
ejbtest/ServletTestRunner?suite=my.package.MyBeanTest
> > 
> 
> That's fine.
> 
> > The web.xml file knows to redirect all requests to
> a
> > login page where I type my username and password
> and
> > then I expect to be redirected back to the test.
> > This is how the application itself works when you
> > request a web-page before authenticating so I
> assumed
> > that the test could work the same way.
> 
> It can (see above).
> 
> > 
> > I will also try testing from within Ant, as you
> > suggested (thanks for that), but I'm also
> interested
> > in getting it working from the browser too.
> 
> Yes, although it won't work. You need to use the
> Cactus version in CVS
> (or a recent nightly build).
> 
> I'm not sure what your question is in the end. Is
> it: "I would like to
> protect the Cactus redirector using Form based
> authentication so that I
> can unit test code that uses the servlet security
> API" ?
> 
> BTW, with Cactus 1.4.1 you can use
> BasicAuthentication and it should be
> transparent for the code using the servlet security
> API. But if what you
> wish to test in integration is your setting of the
> Form authentication
> then you need Cactus 1.5
> 
> Cheers,
> -Vincent
> 
> > 
> > Thanks
> > 
> > Charlene
> > 
> > > > -----Original Message-----
> > > > From: Charlene Mitchell
> > > [mailto:charlene_ml@yahoo.co.uk]
> > > > Sent: 29 October 2002 13:26
> > > > To: cactus-user@jakarta.apache.org
> > > > Subject: followRedirects is false
> > > >
> > > > Hi,
> > > >
> > > > I have a secure EJB application running on
> > > > JBoss3.0.3/Jetty and I'm trying to integrate
> some
> > > > Cactus Unit Tests. I have read the docs and
> > > created a
> > > > sample EJB Test, deployed it in a war and
> added
> > > > security to the web.xml so that I can
> authenticate
> > > and
> > > > run the tests from a browser.
> > > >
> > > > ..but after I log in I get a page back
> indicating
> > > an
> > > > error as follows:
> > > > BROWSER ERROR
> > > > =============
> > > > "Failed to get the test results. This is
> probably
> > > due
> > > > to an error that happened on the server side
> when
> > > > trying to execute the tests. Here is what was
> > > returned
> > > > by the server : []"
> > > >
> > > > This tells me nothing so I look in the JBoss
> log
> > > and I
> > > > see the following:
> > > > JBOSS ERROR
> > > > ===========
> > > > INFO  [wire] >> "Content-type:
> > > > application/x-www-form-urlencoded"
> > > > INFO  [wire] >> "Host: localhost"
> > > > INFO  [wire] >> "User-Agent: Jakarta HTTP
> > > > Client/2.0.0a1"
> > > > INFO  [wire] >> \r\n
> > > > INFO  [wire] << "HTTP/1.1 302 Moved
> Temporarily"
> > > > [\r\n]
> > > > INFO  [wire] << "Date: Tue, 29 Oct 2002
> 08:16:09
> > > GMT"
> > > > [\r\n]
> > > > INFO  [wire] << "Server: Jetty/4.1.0 (SunOS
> 5.8
> > > > sparc)" [\r\n]
> > > > INFO  [wire] << "Servlet-Engine: Jetty/4.1.0
> > > (Servlet
> > > > 2.3; JSP 1.2; java 1.4.0_01)" [\r\n]
> > > > INFO  [wire] << "Set-Cookie:
> > > > JSESSIONID=bsp7oiipqikl7;Path=/myapp-ejbtest"
> > > [\r\n]
> > > > INFO  [wire] << "Set-Cookie2:
> > > >
> > >
> >
>
JSESSIONID=bsp7oiipqikl7;Version=1;Path=/myapp-ejbtest;Discard"
> > > > [\r\n]
> > > > INFO  [wire] << "Location:
> > > >
> > >
> >
>
http://localhost/myapp-ejbtest/login.html;JSESSIONID=bsp7oiipqikl7"
> > > > [\r\n]
> > > > INFO  [wire] << "Transfer-Encoding: chunked"
> > > [\r\n]
> > > > INFO  [HttpMethod] HttpMethodBase.execute():
> > > Received
> > > > 302 response, but followRedirects is false.
> > > Returning
> > > > 302.
> > > >
> > > > The WebServer doesn't indicate any error as
> such:
> > > > WEB SERVER ERROR
> 
=== message truncated === 

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe, e-mail:
<mailto:cactus-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail:
<mailto:cactus-user-help@jakarta.apache.org>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message