1 #!/usr/local/bin/perl -w
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
11 unshift @INC, qw( ../blib/lib ../blib/arch ../lib );
15 use Test::More tests => 17;
17 BEGIN { use_ok('CGI'); };
18 use CGI (':standard','-no_debug');
20 my $CRLF = "\015\012";
22 $CRLF = "\n"; # via web server carriage is inserted automatically
24 if (ord("\t") != 9) { # EBCDIC?
29 # Set up a CGI environment
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';
35 $ENV{SERVER_PROTOCOL} = 'HTTP/1.0';
36 $ENV{SERVER_PORT} = 8080;
37 $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com';
39 is(start_form(-action=>'foobar',-method=>'get'),
40 qq(<form method="get" action="foobar" enctype="application/x-www-form-urlencoded">\n),
44 qq(<input type="submit" name=".submit" />),
47 is(submit(-name => 'foo',
49 qq(<input type="submit" name="foo" value="bar" />),
50 "submit(-name,-value)");
52 is(submit({-name => 'foo',
54 qq(<input type="submit" name="foo" value="bar" />),
55 "submit({-name,-value})");
57 is(textfield(-name => 'weather'),
58 qq(<input type="text" name="weather" value="dull" />),
59 "textfield({-name})");
61 is(textfield(-name => 'weather',
63 qq(<input type="text" name="weather" value="dull" />),
64 "textfield({-name,-value})");
66 is(textfield(-name => 'weather',
69 qq(<input type="text" name="weather" value="nice" />),
70 "textfield({-name,-value,-override})");
72 is(checkbox(-name => 'weather',
74 qq(<input type="checkbox" name="weather" value="nice" />weather),
77 is(checkbox(-name => 'weather',
79 -label => 'forecast'),
80 qq(<input type="checkbox" name="weather" value="nice" />forecast),
83 is(checkbox(-name => 'weather',
88 qq(<input type="checkbox" name="weather" value="nice" checked="1" />forecast),
91 is(checkbox(-name => 'weather',
93 -label => 'forecast'),
94 qq(<input type="checkbox" name="weather" value="dull" checked="1" />forecast),
97 is(radio_group(-name => 'game'),
98 qq(<input type="radio" name="game" value="chess" checked="1" />chess ).
99 qq(<input type="radio" name="game" value="checkers" />checkers),
102 is(radio_group(-name => 'game',
103 -labels => {'chess' => 'ping pong'}),
104 qq(<input type="radio" name="game" value="chess" checked="1" />ping pong ).
105 qq(<input type="radio" name="game" value="checkers" />checkers),
108 is(checkbox_group(-name => 'game',
109 -Values => [qw/checkers chess cribbage/]),
110 qq(<input type="checkbox" name="game" value="checkers" checked="1" />checkers ).
111 qq(<input type="checkbox" name="game" value="chess" checked="1" />chess ).
112 qq(<input type="checkbox" name="game" value="cribbage" />cribbage),
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 ).
120 qq(<input type="checkbox" name="game" value="cribbage" checked="1" />cribbage),
123 is(popup_menu(-name => 'game',
124 '-values' => [qw/checkers chess cribbage/],
125 -default => 'cribbage',
126 -override => 1)."\n",
127 <<END, 'checkbox_group()');
129 <option value="checkers">checkers</option>
130 <option value="chess">chess</option>
131 <option selected="1" value="cribbage">cribbage</option>