]> Dogcows Code - chaz/p5-CGI-Ex/blob - t/4_app_00_base.t
59bfa52dd0fa8be4c5744679198b47cbe8b41be7
[chaz/p5-CGI-Ex] / t / 4_app_00_base.t
1 # -*- Mode: Perl; -*-
2
3 =head1 NAME
4
5 4_app_00_base.t - Check for the basic functionality of CGI::Ex::App.
6
7 =cut
8
9 use Test::More tests => 3;
10 use strict;
11
12 {
13 package Foo;
14
15 use base qw(CGI::Ex::App);
16 use vars qw($test_stdout);
17
18 sub ready_validate { 1 }
19
20 sub print_out {
21 my $self = shift;
22 my $step = shift;
23 $test_stdout = shift;
24 }
25
26 sub swap_template {
27 my ($self, $step, $file, $swap) = @_;
28 my $out = ref($file) ? $$file : "No filenames allowed during test mode";
29 $self->cgix->swap_template(\$out, $swap);
30 return $out;
31 }
32
33 ###----------------------------------------------------------------###
34
35 sub main_info_complete { 0 }
36
37 sub main_file_print { return \ "Main Content" }
38
39 sub step2_hash_validation { return {wow => {required => 1, required_error => 'wow is required'}} }
40
41 sub step2_file_print { return \ "Some step2 content ([% foo %], [% one %]) <input type=text name=wow>[% wow_error %]" }
42
43 sub step2_hash_swap { return {foo => 'bar', one => 'two'} }
44
45 sub step2_hash_fill { return {wow => 'wee'} }
46
47 sub step2_finalize { shift->append_path('step3') }
48
49 sub step3_info_complete { 0 }
50
51 sub step3_file_print { return \ "All good" }
52
53 }
54
55 ###----------------------------------------------------------------###
56
57 #$ENV{'REQUEST_METHOD'} = 'GET';
58 #$ENV{'QUERY_STRING'} = '';
59
60 Foo->new({
61 form => {},
62 })->navigate;
63 ok($Foo::test_stdout eq "Main Content");
64
65 ###----------------------------------------------------------------###
66
67 #$ENV{'REQUEST_METHOD'} = 'GET';
68 #$ENV{'QUERY_STRING'} = 'step=step2';
69
70 Foo->new({
71 form => {step => 'step2'},
72 })->navigate;
73 ok($Foo::test_stdout eq "Some step2 content (bar, two) <input type=text name=wow value=\"wee\">wow is required");
74
75 ###----------------------------------------------------------------###
76
77 #$ENV{'REQUEST_METHOD'} = 'GET';
78 #$ENV{'QUERY_STRING'} = 'step=step2&wow=something';
79
80 Foo->new({
81 form=> {step => 'step2', wow => 'something'},
82 })->navigate;
83 ok($Foo::test_stdout eq "All good");
This page took 0.032316 seconds and 3 git commands to generate.