1 #!/usr/local/bin/perl -w
3 # Due to a bug in older versions of MakeMaker & Test::Harness, we must
4 # ensure the blib's are in @INC, else we might use the core CGI.pm
5 use lib qw(. ./blib/lib ./blib/arch);
7 use Test::More tests => 17;
9 BEGIN { use_ok('CGI'); };
10 use CGI (':standard','-no_debug');
12 my $CRLF = "\015\012";
14 $CRLF = "\n"; # via web server carriage is inserted automatically
16 if (ord("\t") != 9) { # EBCDIC?
21 # Set up a CGI environment
22 $ENV{REQUEST_METHOD} = 'GET';
23 $ENV{QUERY_STRING} = 'game=chess&game=checkers&weather=dull';
24 $ENV{PATH_INFO} = '/somewhere/else';
25 $ENV{PATH_TRANSLATED} = '/usr/local/somewhere/else';
26 $ENV{SCRIPT_NAME} ='/cgi-bin/foo.cgi';
27 $ENV{SERVER_PROTOCOL} = 'HTTP/1.0';
28 $ENV{SERVER_PORT} = 8080;
29 $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com';
31 is(start_form(-action=>'foobar',-method=>'get'),
32 qq(<form method="get" action="foobar" enctype="multipart/form-data">\n),
36 qq(<input type="submit" tabindex="0" name=".submit" />),
39 is(submit(-name => 'foo',
41 qq(<input type="submit" tabindex="1" name="foo" value="bar" />),
42 "submit(-name,-value)");
44 is(submit({-name => 'foo',
46 qq(<input type="submit" tabindex="2" name="foo" value="bar" />),
47 "submit({-name,-value})");
49 is(textfield(-name => 'weather'),
50 qq(<input type="text" name="weather" tabindex="3" value="dull" />),
51 "textfield({-name})");
53 is(textfield(-name => 'weather',
55 qq(<input type="text" name="weather" tabindex="4" value="dull" />),
56 "textfield({-name,-value})");
58 is(textfield(-name => 'weather',
61 qq(<input type="text" name="weather" tabindex="5" value="nice" />),
62 "textfield({-name,-value,-override})");
64 is(checkbox(-name => 'weather',
66 qq(<label><input type="checkbox" name="weather" value="nice" tabindex="6" />weather</label>),
69 is(checkbox(-name => 'weather',
71 -label => 'forecast'),
72 qq(<label><input type="checkbox" name="weather" value="nice" tabindex="7" />forecast</label>),
75 is(checkbox(-name => 'weather',
80 qq(<label><input type="checkbox" name="weather" value="nice" tabindex="8" checked="checked" />forecast</label>),
83 is(checkbox(-name => 'weather',
85 -label => 'forecast'),
86 qq(<label><input type="checkbox" name="weather" value="dull" tabindex="9" checked="checked" />forecast</label>),
89 is(radio_group(-name => 'game'),
90 qq(<label><input type="radio" name="game" value="chess" checked="checked" tabindex="10" />chess</label> <label><input type="radio" name="game" value="checkers" tabindex="11" />checkers</label>),
93 is(radio_group(-name => 'game',
94 -labels => {'chess' => 'ping pong'}),
95 qq(<label><input type="radio" name="game" value="chess" checked="checked" tabindex="12" />ping pong</label> <label><input type="radio" name="game" value="checkers" tabindex="13" />checkers</label>),
98 is(checkbox_group(-name => 'game',
99 -Values => [qw/checkers chess cribbage/]),
100 qq(<label><input type="checkbox" name="game" value="checkers" checked="checked" tabindex="14" />checkers</label> <label><input type="checkbox" name="game" value="chess" checked="checked" tabindex="15" />chess</label> <label><input type="checkbox" name="game" value="cribbage" tabindex="16" />cribbage</label>),
103 is(checkbox_group(-name => 'game',
104 '-values' => [qw/checkers chess cribbage/],
105 '-defaults' => ['cribbage'],
107 qq(<label><input type="checkbox" name="game" value="checkers" tabindex="17" />checkers</label> <label><input type="checkbox" name="game" value="chess" tabindex="18" />chess</label> <label><input type="checkbox" name="game" value="cribbage" checked="checked" tabindex="19" />cribbage</label>),
110 is(popup_menu(-name => 'game',
111 '-values' => [qw/checkers chess cribbage/],
112 -default => 'cribbage',
114 '<select name="game" tabindex="20">
115 <option value="checkers">checkers</option>
116 <option value="chess">chess</option>
117 <option selected="selected" value="cribbage">cribbage</option>