You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2005/05/20 19:44:48 UTC
svn commit: r171139 -
/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
Author: joes
Date: Fri May 20 10:44:47 2005
New Revision: 171139
URL: http://svn.apache.org/viewcvs?rev=171139&view=rev
Log:
Cookie.pod tests & updates.
Modified:
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod?rev=171139&r1=171138&r2=171139&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Cookie/Cookie.pod Fri May 20 10:44:47 2005
@@ -3,23 +3,56 @@
APR::Request::Cookie - wrapper for libapreq2's cookie API.
+=for testing
+ use APR::Pool;
+ use APR::Brigade;
+ use APR::Bucket;
+ use APR::BucketAlloc;
+ use APR::Request;
+ use APR::Request::Parser;
+ $pool = APR::Pool->new;
+ $ba = APR::BucketAlloc->new($pool);
+ $bb = APR::Brigade->new($pool, $ba);
+ $bb->insert_tail(APR::Bucket->new($ba,
+ "alpha=body1&beta=body2;foo=body3"));
+ $parser = APR::Request::Parser->urlencoded($pool, $ba,
+ "application/x-www-form-urlencoded");
+ $req = APR::Request::Custom->handle($pool, "foo=bar",
+ "cookie1=apache1;cookie2=apache2",
+ $parser, 1e6, $bb);
+
=head1 SYNOPSIS
+
+=for example begin
+
use APR::Request::Cookie;
- my $cookie = APR::Request::Cookie->new($req,
- name => "foo",
- value => "bar",
- domain => "capricorn.com");
+ # fetch inbound cookie
+ $jar = $req->jar;
+ $cookie1 = $jar->get("cookie1");
+
+ # generate new cookie
+ $cookie = APR::Request::Cookie->new($req->pool,
+ name => "foo",
+ value => "bar",
+ domain => "capricorn.com");
print "$cookie"; # prints "bar"
$cookie->domain("example.com"); # change domains
$cookie->version(1); # upgrade it to conform with RFC 2109/2965.
- # print a response header
- printf "Set-Cookie: %s\n", $cookie->as_string;
+ # send a response header
+ print sprintf "Set-Cookie: %s\n", $cookie->as_string;
+
+=for example end
+
+=for example_testing
+ ok "$cookie1" eq "apache1";
+ ok $jar->isa("APR::Request::Cookie::Table");
+ is $_STDOUT_ , qq[barSet-Cookie: foo=bar; Version=1; domain="example.com"\n];
@@ -103,7 +136,8 @@
APR::Request::Cookie->freeze($value)
-Default serializer- returns $value unmodified.
+Class method representing the default serializer;
+here it returns $value unmodified.
@@ -112,7 +146,8 @@
APR::Request::Cookie->thaw($value)
-Reverses C<< freeze() >>; here it's a noop.
+Class method that reverses C<< freeze() >>;
+here it returns $value unmodified.
@@ -121,8 +156,10 @@
$cookie->name()
-Fetch the cookie's name.
-This attribute cannot be modified.
+Fetch the cookie's name. This attribute
+cannot be modified and is never serialized;
+ie freeze() and thaw() do not act on the
+cookie's name.
@@ -131,7 +168,7 @@
$cookie->value()
-Fetch the cookie's value.
+Fetch the cookie's raw (frozen) value.
This attribute cannot be modified.
@@ -278,6 +315,24 @@
Get/set the class each table element is blessed into during a
L<get> or L<FETCH> call. If defined, the class must be derived
from APR::Request::Cookie.
+
+
+=for example begin
+
+ {
+ package FOO;
+ @ISA= 'APR::Request::Cookie';
+ }
+
+ $jar->cookie_class("FOO");
+ ok $_->isa("FOO") for values %$jar;
+
+=for example end
+
+=for example_testing
+ $jar->do(sub { ok $_[1]->isa("FOO"); });
+
+