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