Commit | Line | Data |
6b4ac661 |
1 | #!/usr/local/bin/perl -w |
424ec8fa |
2 | |
f0c07f2e |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | if ($ENV{PERL_CORE}) { |
6 | @INC = '../lib'; |
7 | } else { |
3acbd4f5 |
8 | # Due to a bug in older versions of MakeMaker & Test::Harness, |
9 | # we must ensure the blib's are in @INC, else we might use |
10 | # the core CGI.pm |
11 | unshift @INC, qw( ../blib/lib ../blib/arch ../lib ); |
f0c07f2e |
12 | } |
13 | } |
ac734d8b |
14 | |
3ed077a9 |
15 | use Test::More tests => 17; |
424ec8fa |
16 | |
3ed077a9 |
17 | BEGIN { use_ok('CGI'); }; |
424ec8fa |
18 | use CGI (':standard','-no_debug'); |
424ec8fa |
19 | |
ba056755 |
20 | my $CRLF = "\015\012"; |
3ed077a9 |
21 | if ($^O eq 'VMS') { |
ba056755 |
22 | $CRLF = "\n"; # via web server carriage is inserted automatically |
23 | } |
24 | if (ord("\t") != 9) { # EBCDIC? |
25 | $CRLF = "\r\n"; |
26 | } |
27 | |
28 | |
424ec8fa |
29 | # Set up a CGI environment |
3ed077a9 |
30 | $ENV{REQUEST_METHOD} = 'GET'; |
31 | $ENV{QUERY_STRING} = 'game=chess&game=checkers&weather=dull'; |
32 | $ENV{PATH_INFO} = '/somewhere/else'; |
33 | $ENV{PATH_TRANSLATED} = '/usr/local/somewhere/else'; |
34 | $ENV{SCRIPT_NAME} ='/cgi-bin/foo.cgi'; |
424ec8fa |
35 | $ENV{SERVER_PROTOCOL} = 'HTTP/1.0'; |
3ed077a9 |
36 | $ENV{SERVER_PORT} = 8080; |
37 | $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com'; |
38 | |
39 | is(start_form(-action=>'foobar',-method=>'get'), |
40 | qq(<form method="get" action="foobar" enctype="application/x-www-form-urlencoded">\n), |
41 | "start_form()"); |
42 | |
43 | is(submit(), |
44 | qq(<input type="submit" name=".submit" />), |
45 | "submit()"); |
46 | |
47 | is(submit(-name => 'foo', |
48 | -value => 'bar'), |
49 | qq(<input type="submit" name="foo" value="bar" />), |
50 | "submit(-name,-value)"); |
51 | |
52 | is(submit({-name => 'foo', |
53 | -value => 'bar'}), |
54 | qq(<input type="submit" name="foo" value="bar" />), |
55 | "submit({-name,-value})"); |
56 | |
57 | is(textfield(-name => 'weather'), |
58 | qq(<input type="text" name="weather" value="dull" />), |
59 | "textfield({-name})"); |
60 | |
61 | is(textfield(-name => 'weather', |
62 | -value => 'nice'), |
63 | qq(<input type="text" name="weather" value="dull" />), |
64 | "textfield({-name,-value})"); |
65 | |
66 | is(textfield(-name => 'weather', |
67 | -value => 'nice', |
68 | -override => 1), |
69 | qq(<input type="text" name="weather" value="nice" />), |
70 | "textfield({-name,-value,-override})"); |
71 | |
72 | is(checkbox(-name => 'weather', |
73 | -value => 'nice'), |
74 | qq(<input type="checkbox" name="weather" value="nice" />weather), |
75 | "checkbox()"); |
76 | |
77 | is(checkbox(-name => 'weather', |
78 | -value => 'nice', |
79 | -label => 'forecast'), |
80 | qq(<input type="checkbox" name="weather" value="nice" />forecast), |
81 | "checkbox()"); |
82 | |
83 | is(checkbox(-name => 'weather', |
84 | -value => 'nice', |
85 | -label => 'forecast', |
86 | -checked => 1, |
87 | -override => 1), |
2371fea9 |
88 | qq(<input type="checkbox" name="weather" value="nice" checked="checked" />forecast), |
3ed077a9 |
89 | "checkbox()"); |
90 | |
91 | is(checkbox(-name => 'weather', |
92 | -value => 'dull', |
93 | -label => 'forecast'), |
2371fea9 |
94 | qq(<input type="checkbox" name="weather" value="dull" checked="checked" />forecast), |
3ed077a9 |
95 | "checkbox()"); |
96 | |
97 | is(radio_group(-name => 'game'), |
2371fea9 |
98 | qq(<input type="radio" name="game" value="chess" checked="checked" />chess ). |
3ed077a9 |
99 | qq(<input type="radio" name="game" value="checkers" />checkers), |
100 | 'radio_group()'); |
101 | |
102 | is(radio_group(-name => 'game', |
103 | -labels => {'chess' => 'ping pong'}), |
2371fea9 |
104 | qq(<input type="radio" name="game" value="chess" checked="checked" />ping pong ). |
3ed077a9 |
105 | qq(<input type="radio" name="game" value="checkers" />checkers), |
106 | 'radio_group()'); |
107 | |
108 | is(checkbox_group(-name => 'game', |
109 | -Values => [qw/checkers chess cribbage/]), |
2371fea9 |
110 | qq(<input type="checkbox" name="game" value="checkers" checked="checked" />checkers ). |
111 | qq(<input type="checkbox" name="game" value="chess" checked="checked" />chess ). |
3ed077a9 |
112 | qq(<input type="checkbox" name="game" value="cribbage" />cribbage), |
113 | 'checkbox_group()'); |
114 | |
115 | is(checkbox_group(-name => 'game', |
116 | '-values' => [qw/checkers chess cribbage/], |
117 | '-defaults' => ['cribbage'],-override=>1), |
118 | qq(<input type="checkbox" name="game" value="checkers" />checkers ). |
119 | qq(<input type="checkbox" name="game" value="chess" />chess ). |
2371fea9 |
120 | qq(<input type="checkbox" name="game" value="cribbage" checked="checked" />cribbage), |
3ed077a9 |
121 | 'checkbox_group()'); |
122 | |
123 | is(popup_menu(-name => 'game', |
124 | '-values' => [qw/checkers chess cribbage/], |
125 | -default => 'cribbage', |
126 | -override => 1)."\n", |
127 | <<END, 'checkbox_group()'); |
6b4ac661 |
128 | <select name="game"> |
2371fea9 |
129 | <option value="checkers">checkers</option> |
130 | <option value="chess">chess</option> |
131 | <option selected="selected" value="cribbage">cribbage</option> |
6b4ac661 |
132 | </select> |
424ec8fa |
133 | END |
134 | |