You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-dev@httpd.apache.org by "Christopher H. Laco" <ch...@hotmail.com> on 2004/11/23 14:55:20 UTC

Apache::TestRequest + Cookies

Has anyone used ApacheTestRequest to test pages using cookiessessions?

I'm writing some quick and dirty tests for an AxKit session module I've 
adopted. I've got everything up and running config wise and the pages are 
getting run through AxKit just fine.

The first two tests simply consist of a set-value page which uses 
Apache::Session::File to store a value, and a get-value page that confirms 
the value is returned. Of course the get-value test, test 2, fails because 
Apache::TestRequest is ignore the sessionid cookie [or all cookies really].

I have LWP installed and I've tried a few different encantations using 
->cookie_jar and HTTPCookie without any luck. Is there a Tutorial or 
examples somwhere that cover dealing with sessions within 
Apache::TestRequest?


Thanks,
-=Chris



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
>> Either way if you find how to use A-T to handle cookies or fix it to 
>> do so, it's be handy to add a new A-T tests (in addition to existing 
>> ones in Apache-Test/t/) so we don't break this feature in the future, 
>> which is easily possible sans having a test.
>>
>> Plus it'll be great to have this documented... if you don't have the 
>> time to send a proper patch, feel free to send some blurb+example(s) 
>> here and I'll adopt it for the docs.
> 
> 
> 
> Assuming Michaels solution works:
>     Apache::TestRequest::user_agent( cookie_jar => {});
> 
> Are we looking for something more official to the actual Test::Request 
> API; a new method, better parameters, etc; or is the above just good 
> enough for a little mention?

I'd suggest to start with just a test and a little mention. Later on if we 
get people unhappy with this solution, we can make it a method...

really the new A-T development is triggered by demand of those who use and 
develop it, so if you use A-T and you need a new feature, feel free to 
send a patch including code+docs+test and chances are that it'll just go 
in. And if you have lots of those and you send decent patches, it's easy 
to become a committer :)


-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
>Either way if you find how to use A-T to handle cookies or fix it to do so, 
>it's be handy to add a new A-T tests (in addition to existing ones in 
>Apache-Test/t/) so we don't break this feature in the future, which is 
>easily possible sans having a test.
>
>Plus it'll be great to have this documented... if you don't have the time 
>to send a proper patch, feel free to send some blurb+example(s) here and 
>I'll adopt it for the docs.


Assuming Michaels solution works:
     Apache::TestRequest::user_agent( cookie_jar => {});

Are we looking for something more official to the actual Test::Request API; 
a new method, better parameters, etc; or is the above just good enough for a 
little mention?



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
>> if you could also contribute the cookie test that would be handy too.
> 
> 
> I'm feeling a bit dense at the moment. To the list, or to the 
> forthcoming [self] test suite? I'm not sure I understand the request.

Either way if you find how to use A-T to handle cookies or fix it to do 
so, it's be handy to add a new A-T tests (in addition to existing ones in 
Apache-Test/t/) so we don't break this feature in the future, which is 
easily possible sans having a test.

Plus it'll be great to have this documented... if you don't have the time 
to send a proper patch, feel free to send some blurb+example(s) here and 
I'll adopt it for the docs.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
>if you could also contribute the cookie test that would be handy too.

I'm feeling a bit dense at the moment. To the list, or to the forthcoming 
[self] test suite? I'm not sure I understand the request.

P.S. Sorry about my list replies full of headers. I need to unsubscribe from 
Hotmail and use a real email client from my home account.

-=Chris



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
> Thanks. I'll give that a whirl tonight.
> 
> I finally got the hack approach working by calling 
> $apacheRequestResponse->headers("Set-Cookie") and passing that result 
> right back into the [scantily mentioned] second param of 
> Apache::TestRequest::GET 'url', headername => headervalue

if you could also contribute the cookie test that would be handy too.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
[snip]

Or more to the point:

     my $r = GET 'url', Cookie => 
$apacheRequestResponse->headers("Set-Cookie");



Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
Thanks. I'll give that a whirl tonight.

I finally got the hack approach working by calling 
$apacheRequestResponse->headers("Set-Cookie") and passing that result right 
back into the [scantily mentioned] second param of Apache::TestRequest::GET 
'url', headername => headervalue

Since I only had on cookie, it works. All hell would break loose the minute 
I had more I assume.

-=Chris


>From: Michael Peters <mp...@plusthree.com>
>Reply-To: test-dev@httpd.apache.org
>To: test-dev@httpd.apache.org
>Subject: Re: Apache::TestRequest + Cookies
>Date: Wed, 24 Nov 2004 14:29:02 -0500
>MIME-Version: 1.0
>Received: from mail.apache.org ([209.237.227.199]) by mc7-f8.hotmail.com 
>with Microsoft SMTPSVC(5.0.2195.6824); Wed, 24 Nov 2004 11:28:56 -0800
>Received: (qmail 99929 invoked by uid 500); 24 Nov 2004 19:28:40 -0000
>Received: (qmail 99899 invoked by uid 99); 24 Nov 2004 19:28:39 -0000
>Received: pass (hermes.apache.org: local policy)
>Received: from Unknown (HELO plusthree.com) (65.61.157.8)  by apache.org 
>(qpsmtpd/0.28) with SMTP; Wed, 24 Nov 2004 11:28:37 -0800
>Received: (qmail 18178 invoked from network); 24 Nov 2004 19:28:21 -0000
>Received: from h-66-167-36-5.mclnva23.covad.net (HELO ?192.168.1.164?) 
>(mpeters@66.167.36.5)  by 0 with SMTP; 24 Nov 2004 19:28:21 -0000
>X-Message-Info: JGTYoYF78jFk/IwND13SP4Tqx2eQ6P3t
>Mailing-List: contact test-dev-help@httpd.apache.org; run by ezmlm
>Precedence: bulk
>list-help: <ma...@httpd.apache.org>
>list-unsubscribe: <ma...@httpd.apache.org>
>list-post: <ma...@httpd.apache.org>
>Delivered-To: mailing list test-dev@httpd.apache.org
>X-ASF-Spam-Status: No, hits=0.0 required=10.0tests=
>X-Spam-Check-By: apache.org
>User-Agent: Mozilla Thunderbird 0.8 (X11/20041020)
>X-Accept-Language: en-us, en
>References: <BA...@phx.gbl> 
><41...@stason.org>
>X-Enigmail-Version: 0.86.1.0
>X-Enigmail-Supports: pgp-inline, pgp-mime
>X-Virus-Checked: Checked
>Return-Path: test-dev-return-3460-chrislaco=hotmail.com@httpd.apache.org
>X-OriginalArrivalTime: 24 Nov 2004 19:28:57.0468 (UTC) 
>FILETIME=[D7A04BC0:01C4D25B]
>
>
>
>Stas Bekman wrote:
>>Christopher H. Laco wrote:
>>
>>>Has anyone used ApacheTestRequest to test pages using cookiessessions?
>>>
>>>I'm writing some quick and dirty tests for an AxKit session module I've 
>>>adopted. I've got everything up and running config wise and the pages are 
>>>getting run through AxKit just fine.
>>>
>>>The first two tests simply consist of a set-value page which uses 
>>>Apache::Session::File to store a value, and a get-value page that 
>>>confirms the value is returned. Of course the get-value test, test 2, 
>>>fails because Apache::TestRequest is ignore the sessionid cookie [or all 
>>>cookies really].
>>>
>>>I have LWP installed and I've tried a few different encantations using 
>>>->cookie_jar and HTTPCookie without any luck. Is there a Tutorial or 
>>>examples somwhere that cover dealing with sessions within 
>>>Apache::TestRequest?
>>
>>
>>I guess the silence means that no one has used it with cookies. I suppose 
>>that you could fix it to work with cookies though. But I could be wrong 
>>and it already works but not documented. there is a lot of such code in 
>>there.
>
>LWP::UserAgent doesn't by default keep a cookie_jar. All I had to do was 
>add this near the top of my test script before any GET/POST calls.
>
>     Apache::TestRequest::user_agent( cookie_jar => {});
>
>HTH
>
>--
>Michael Peters
>Developer
>Plus Three, LP
>



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
>> but most people won't have this module installed...
> 
> 
> Installed, or loaded? I know the httpd.conf defaults to having that 
> module commented out, but the module itself should be around.

Loaded or even available...

> Maybe relying on Apache::Session would cover more install scnerios 
> instead. I was trying to avoid writing a custom handler just to accept 
> and toss some cookies in the test environment, but maybe that's better. 
> At least then everyone install should be able to run the A-T cookie test.

I think the same_interp setup will do what you want. e.g. see in 
modperl-2.0 repository this test couple:

t/response/TestModperl/sameinterp.pm
t/modperl/sameinterp.t

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
>but most people won't have this module installed...

Installed, or loaded? I know the httpd.conf defaults to having that module 
commented out, but the module itself should be around.

Maybe relying on Apache::Session would cover more install scnerios instead. 
I was trying to avoid writing a custom handler just to accept and toss some 
cookies in the test environment, but maybe that's better. At least then 
everyone install should be able to run the A-T cookie test.



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
>> just a very simple test that verifies that the documented technique 
>> works. later on it may evolve to include a special A-T API if we ever 
>> add one.
> 
> 
> Is it enought to do <IfModule mod_usertrack.c> and also 
> &need_module(mod_usertrack.c) to determine if the usertrack mnodule is 
> installed, or is there someplace deeper within the setup where we can 
> actually add LoadModule mod_usertrack.c?

for config it's enough for the code it's:

   plan tests => 5, need_module('usertrack');

but most people won't have this module installed...


-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
>just a very simple test that verifies that the documented technique works. 
>later on it may evolve to include a special A-T API if we ever add one.

Is it enought to do <IfModule mod_usertrack.c> and also 
&need_module(mod_usertrack.c) to determine if the usertrack mnodule is 
installed, or is there someplace deeper within the setup where we can 
actually add LoadModule mod_usertrack.c?

Thanks,
-=Chris



Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
> Now that I've gotten a few other module updates out of the way, I want 
> to get back to the thought of cookies within A-T. Two things were 
> mentioned that would help the A-T project in some way.
> 
> First, possibly add pod doc on how to use cookies within A-T using 
> Michaels solution of
> 
>   Apache::TestRequest::user_agent( cookie_jar => {});

+1

> and possibly others. I would also probably take a stab at getting some 
> of the other things in 
> http://perl.apache.org/docs/general/testing/testing.html into the pod; 
> specifically the use of the secondary param in the GET request to add 
> outgoing headers and the like.

+1

> Second,  add some sort of cookie tests to the A-T test suit. I'm not 
> quite sure what a test would be for other than to verify that A-T using 
> LWP actually receives and sends cookies and verifies they get remembered 
> between requests. But that seems more like testing LWP and A-T to me.

just a very simple test that verifies that the documented technique works. 
later on it may evolve to include a special A-T API if we ever add one.

> My first thoughts are to keep it as simple as possible and check for 
> mod_usertrack. It it's there, ensure the first tracking cookie value is 
> maintained across multiple requests.

Whatever you find the best is fine with us. You may want to use the 
same_interp framework in case you need to make sure that you hit the same 
perl interpreter (in case you store some data on the server side). See the 
tests in modperl-2.0/t for examples.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Re: Apache::TestRequest + Cookies

Posted by "Christopher H. Laco" <ch...@hotmail.com>.
Now that I've gotten a few other module updates out of the way, I want to 
get back to the thought of cookies within A-T. Two things were mentioned 
that would help the A-T project in some way.

First, possibly add pod doc on how to use cookies within A-T using Michaels 
solution of

   Apache::TestRequest::user_agent( cookie_jar => {});

and possibly others. I would also probably take a stab at getting some of 
the other things in http://perl.apache.org/docs/general/testing/testing.html 
into the pod; specifically the use of the secondary param in the GET request 
to add outgoing headers and the like.

Second,  add some sort of cookie tests to the A-T test suit. I'm not quite 
sure what a test would be for other than to verify that A-T using LWP 
actually receives and sends cookies and verifies they get remembered between 
requests. But that seems more like testing LWP and A-T to me.

My first thoughts are to keep it as simple as possible and check for 
mod_usertrack. It it's there, ensure the first tracking cookie value is 
maintained across multiple requests.

Any thoughts?

-=Chris



Re: Apache::TestRequest + Cookies

Posted by Michael Peters <mp...@plusthree.com>.

Stas Bekman wrote:
> Christopher H. Laco wrote:
> 
>> Has anyone used ApacheTestRequest to test pages using cookiessessions?
>>
>> I'm writing some quick and dirty tests for an AxKit session module 
>> I've adopted. I've got everything up and running config wise and the 
>> pages are getting run through AxKit just fine.
>>
>> The first two tests simply consist of a set-value page which uses 
>> Apache::Session::File to store a value, and a get-value page that 
>> confirms the value is returned. Of course the get-value test, test 2, 
>> fails because Apache::TestRequest is ignore the sessionid cookie [or 
>> all cookies really].
>>
>> I have LWP installed and I've tried a few different encantations using 
>> ->cookie_jar and HTTPCookie without any luck. Is there a Tutorial or 
>> examples somwhere that cover dealing with sessions within 
>> Apache::TestRequest?
> 
> 
> I guess the silence means that no one has used it with cookies. I 
> suppose that you could fix it to work with cookies though. But I could 
> be wrong and it already works but not documented. there is a lot of such 
> code in there.

LWP::UserAgent doesn't by default keep a cookie_jar. All I had to do was 
add this near the top of my test script before any GET/POST calls.

     Apache::TestRequest::user_agent( cookie_jar => {});

HTH

-- 
Michael Peters
Developer
Plus Three, LP


Re: Apache::TestRequest + Cookies

Posted by Stas Bekman <st...@stason.org>.
Christopher H. Laco wrote:
> Has anyone used ApacheTestRequest to test pages using cookiessessions?
> 
> I'm writing some quick and dirty tests for an AxKit session module I've 
> adopted. I've got everything up and running config wise and the pages 
> are getting run through AxKit just fine.
> 
> The first two tests simply consist of a set-value page which uses 
> Apache::Session::File to store a value, and a get-value page that 
> confirms the value is returned. Of course the get-value test, test 2, 
> fails because Apache::TestRequest is ignore the sessionid cookie [or all 
> cookies really].
> 
> I have LWP installed and I've tried a few different encantations using 
> ->cookie_jar and HTTPCookie without any luck. Is there a Tutorial or 
> examples somwhere that cover dealing with sessions within 
> Apache::TestRequest?

I guess the silence means that no one has used it with cookies. I suppose 
that you could fix it to work with cookies though. But I could be wrong 
and it already works but not documented. there is a lot of such code in there.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com