stas        2003/08/22 19:39:10

  Added:       t/apache cookie2.t cookie.t
               t/response/TestApache cookie2.pm cookie.pm
  Log:
  cookie tests, really testing when env vars are setup
  
  Revision  Changes    Path
  1.1                  modperl-2.0/t/apache/cookie2.t
  
  Index: cookie2.t
  ===================================================================
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::TestUtil;
  use Apache::TestRequest;
  
  plan tests => 2;
  
  my $module = 'TestApache::cookie2';
  my $location = Apache::TestRequest::module2path($module);
  my $cookie = 'foo=bar';
  
  t_debug("Testing cookie in PerlResponseHandler");
  
  for (qw/header env/) {
      t_debug("-- testing cookie from $_");
      my $res = GET "$location?$_", Cookie => $cookie;
  
      ok t_cmp('bar', $res->content,
               "content is 'bar'");
  }
  
  
  
  
  1.1                  modperl-2.0/t/apache/cookie.t
  
  Index: cookie.t
  ===================================================================
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::TestUtil;
  use Apache::TestRequest qw(GET_BODY);
  
  plan tests => 2;
  
  my $module = 'TestApache::cookie';
  my $location = Apache::TestRequest::module2path($module);
  my $val = "bar";
  my $cookie = "key=$val";
  
  my %expected = 
  (
      header => $val,
      env    => '',
  );
  
  for (qw/header env/) {
      my $received = GET_BODY "$location?$_", Cookie => $cookie;
      ok t_cmp($expected{$_}, $received);
  }
  
  
  
  
  1.1                  modperl-2.0/t/response/TestApache/cookie2.pm
  
  Index: cookie2.pm
  ===================================================================
  package TestApache::cookie2;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::Const -compile => 'OK';
  
  use Apache::RequestRec ();
  use Apache::RequestIO ();
  
  sub access {
      my $r = shift;
  
      my($key, $val) = cookie($r);
      die "Can't get the cookie" unless defined $val;
      return Apache::OK;
  }
  
  sub handler {
      my $r = shift;
      my($key, $val) = cookie($r);
      $r->print($val) if defined $val;
      return Apache::OK;
  }
  
  sub cookie {
      my $r = shift;
      my $header = $r->headers_in->{Cookie} || '';
      my $env    = $ENV{HTTP_COOKIE} || $ENV{COOKIE} || ''; # from CGI::Cookie
  
      return split '=', $r->args eq 'header' ? $header : $env;
  }
  
  1;
  
  __DATA__
  SetHandler perl-script
  PerlModule          TestApache::cookie2
  PerlResponseHandler TestApache::cookie2
  PerlAccessHandler   TestApache::cookie2::access
  # XXX: the test fails if +SetupEnv is not explicitly set
  # because of the timing differences (+SetupEnv sets the env during the
  # header phase, without it perl-script sets it for the response phase)
  PerlOptions +SetupEnv
  
  
  
  1.1                  modperl-2.0/t/response/TestApache/cookie.pm
  
  Index: cookie.pm
  ===================================================================
  package TestApache::cookie;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::Const -compile => 'OK';
  
  use Apache::RequestRec ();
  use Apache::RequestIO ();
  
  sub access {
      my $r = shift;
  
      my($key, $val) = cookie($r);
      die "I shouldn't get the cookie" if $r->args eq 'env' && defined $val;
      return Apache::OK;
  }
  
  sub handler {
      my $r = shift;
      my($key, $val) = cookie($r);
      $r->print($val) if defined $val;
      return Apache::OK;
  }
  
  sub cookie {
      my $r = shift;
      my $header = $r->headers_in->{Cookie} || '';
      my $env    = $ENV{HTTP_COOKIE} || $ENV{COOKIE} || ''; # from CGI::Cookie
  
      return split '=', $r->args eq 'header' ? $header : $env;
  }
  
  1;
  
  __DATA__
  PerlOptions -SetupEnv
  SetHandler modperl
  PerlModule          TestApache::cookie
  PerlResponseHandler TestApache::cookie
  PerlAccessHandler   TestApache::cookie::access
  
  
  
  

Reply via email to