90d2c478064089d1641f402ae9aa7223677e3ee0
[bse.git] / site / cgi-bin / modules / BSE / Request / Test.pm
1 package BSE::Request::Test;
2 use strict;
3 use base 'BSE::Request::Base';
4
5 our $VERSION = "1.003";
6
7 sub new {
8   my ($class, %opts) = @_;
9
10   my $params = delete $opts{params} || {};
11   $opts{cgi} = bless $params, 'BSE::Request::Test::CGI';
12   $opts{is_ajax} ||= 0;
13   my $self = $class->SUPER::new(%opts);
14
15   $self;
16 }
17
18 sub _make_cgi {
19   bless {}, 'BSE::Request::Test::CGI';
20 }
21
22 sub _make_session {
23   my ($self) = @_;
24
25   $self->{session} = {};
26 }
27
28 sub is_ajax {
29   $_[0]{is_ajax};
30 }
31
32 package BSE::Request::Test::CGI;
33 use Carp qw(confess);
34
35 sub param {
36   my $self = shift;
37   if (@_) {
38     my $name = shift;
39     if (@_) {
40       die "Unabled to delete $name key in test";
41     }
42     else {
43       my $value = $self->{$name};
44       if (defined $value) {
45         if (ref $value) {
46           if (wantarray) {
47             return @{$self->{$name}};
48           }
49           else {
50             return $self->{$name}[-1];
51           }
52         }
53         else {
54           return $value;
55         }
56       }
57       else {
58         return;
59       }
60     }
61   }
62   else {
63     return keys %$self;
64   }
65 }
66
67 1;