File Coverage

blib/lib/Apache2/FakeRequest.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             package Apache2::FakeRequest;
2              
3 1     1   27190 use base 'Apache2::Request';
  1         3  
  1         804  
4             use strict;
5              
6             our $VERSION = '0.04';
7              
8             sub new {
9             my $class = shift;
10             bless {@_}, $class;
11             }
12              
13             sub print { shift; CORE::print(@_) }
14              
15             #dummy method stubs
16             my @methods = qw{
17             allow_options
18             as_string auth_name auth_type
19             basic_http_header bootstrap bytes_sent
20             can_stack_handlers cgi_env cgi_header_out
21             cgi_var clear_rgy_endav connection
22             content content_encoding content_language
23             content_type dir_config document_root
24             err_header_out err_headers_out exit
25             filename get_basic_auth_pw get_remote_host
26             get_remote_logname handler hard_timeout
27             header_in header_only header_out
28             headers_in headers_out hostname import
29             internal_redirect_handler is_initial_req is_main
30             kill_timeout log_error log_reason
31             lookup_file lookup_uri main
32             max_requests_per_child method method_number
33             module next no_cache
34             note_basic_auth_failure notes
35             path_info perl_hook post_connection prev
36             protocol proxyreq push_handlers
37             query_string read read_client_block
38             read_length register_cleanup request
39             requires reset_timeout rflush
40             send_cgi_header send_fd send_http_header
41             sent_header seqno server
42             server_root_relative soft_timeout status
43             status_line subprocess_env taint
44             the_request translate_name unescape_url
45             unescape_url_info untaint uri warn
46             write_client
47             };
48              
49             sub elem {
50             my($self, $key, $val) = @_;
51             return
52             unless ref($self) eq 'Apache2::FakeRequest';
53              
54             $self->{$key} = $val if $val;
55             $self->{$key};
56             }
57              
58             sub parse_args {
59             my($wantarray,$string) = @_;
60             return unless defined $string and $string;
61             if(defined $wantarray and $wantarray) {
62             return map {
63             s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
64             $_;
65             } split /[=&;]/, $string, -1;
66             }
67             $string;
68             }
69              
70             sub args {
71             my($r,$val) = @_;
72             $r->{args} = $val if $val;
73             parse_args(wantarray, $r->{args});
74             }
75              
76             sub param {
77             my $self = shift;
78             my $param = shift;
79             return
80             if ( !exists $self->{param} || ( $param && !exists $self->{param}{$param} ) );
81              
82             return $param ? $self->{param}{$param} || $self->{param} : $self->{param};
83             }
84              
85              
86             {
87             my @code;
88             for my $meth (@methods) {
89             push @code, "sub $meth { shift->elem('$meth', \@_) };";
90             }
91             eval "@code";
92             die $@ if $@;
93             }
94              
95              
96             package Apache2::Const;
97              
98             sub OK { 0 }
99             sub DECLINED { -1 }
100             sub DONE { -2 }
101              
102             sub CONTINUE { 100 }
103             sub DOCUMENT_FOLLOWS { 200 }
104             sub NOT_AUTHORITATIVE { 203 }
105             sub HTTP_NO_CONTENT { 204 }
106             sub MOVED { 301 }
107             sub REDIRECT { 302 }
108             sub USE_LOCAL_COPY { 304 }
109             sub HTTP_NOT_MODIFIED { 304 }
110             sub BAD_REQUEST { 400 }
111             sub AUTH_REQUIRED { 401 }
112             sub FORBIDDEN { 403 }
113             sub NOT_FOUND { 404 }
114             sub HTTP_METHOD_NOT_ALLOWED { 405 }
115             sub HTTP_NOT_ACCEPTABLE { 406 }
116             sub HTTP_LENGTH_REQUIRED { 411 }
117             sub HTTP_PRECONDITION_FAILED { 412 }
118             sub SERVER_ERROR { 500 }
119             sub NOT_IMPLEMENTED { 501 }
120             sub BAD_GATEWAY { 502 }
121             sub HTTP_SERVICE_UNAVAILABLE { 503 }
122             sub HTTP_VARIANT_ALSO_VARIES { 506 }
123              
124             # methods
125              
126             sub M_GET { 0 }
127             sub M_PUT { 1 }
128             sub M_POST { 2 }
129             sub M_DELETE { 3 }
130             sub M_CONNECT { 4 }
131             sub M_OPTIONS { 5 }
132             sub M_TRACE { 6 }
133             sub M_INVALID { 7 }
134              
135             # options
136              
137             sub OPT_NONE { 0 }
138             sub OPT_INDEXES { 1 }
139             sub OPT_INCLUDES { 2 }
140             sub OPT_SYM_LINKS { 4 }
141             sub OPT_EXECCGI { 8 }
142             sub OPT_UNSET { 16 }
143             sub OPT_INCNOEXEC { 32 }
144             sub OPT_SYM_OWNER { 64 }
145             sub OPT_MULTI { 128 }
146             sub OPT_ALL { 15 }
147              
148             # satisfy
149              
150             sub SATISFY_ALL { 0 }
151             sub SATISFY_ANY { 1 }
152             sub SATISFY_NOSPEC { 2 }
153              
154             # remotehost
155              
156             sub REMOTE_HOST { 0 }
157             sub REMOTE_NAME { 1 }
158             sub REMOTE_NOLOOKUP { 2 }
159             sub REMOTE_DOUBLE_REV { 3 }
160              
161              
162              
163             sub MODULE_MAGIC_NUMBER { "The answer is 42" }
164             sub SERVER_VERSION { "2.x" }
165             sub SERVER_BUILT { "199908" }
166              
167             1;
168             __END__