[Catalyst] Testing controller which require login.

Peter Karman peter at peknet.com
Thu May 14 13:30:28 GMT 2009

Louis Erickson wrote on 05/13/2009 12:07 AM:

> Can I just generate the cookie and put it in the cookie store directly 
> before the query is made to the application?  I can generate the cookie 
> with the SSO library.  I don't see a way to do that through either test 
> tool.

I'm coming in late on this thread, but can at least offer a "how I do
it" case.

Catalyst::Authentication::AuthTkt is a shim for Apache::AuthTkt, a
cookie-based SSO system. In order to test how the Session and
Authentication plugins interact, I hacked around how Catalyst::Test does
requests in order to preserve a session cookie over multiple requests.

You can see the AuthTkt tests here[0]. The my_request() function just
sets $ENV{COOKIE} and lets the standard AsCGI magic work. I'm sure
that's a Bad Way to Do It, but it works.

I would love to see some basic cookie features in Catalyst::Test, and if
I knew the Right Way to do it, I'd be happy to add code. I use
Catalyst::Test for most things. It is simple, comes with Catalyst so
there's no extra dep. I have used the Mech tests too, and Mech is cool.
But I like keeping my deps down where I can.


Peter Karman  .  peter at peknet.com  .  http://peknet.com/

More information about the Catalyst mailing list