Integrate perlio:
[p5sagit/p5-mst-13.2.git] / t / lib / cgi-form.t
CommitLineData
6b4ac661 1#!/usr/local/bin/perl -w
424ec8fa 2
36e6c0f5 3BEGIN {
4 chdir('t') if -d 't';
20822f61 5 @INC = '../lib';
36e6c0f5 6}
7
424ec8fa 8# Test ability to retrieve HTTP request info
9######################### We start with some black magic to print on failure.
6b4ac661 10use lib '../blib/lib','../blib/arch';
424ec8fa 11
12BEGIN {$| = 1; print "1..17\n"; }
13END {print "not ok 1\n" unless $loaded;}
14use CGI (':standard','-no_debug');
15$loaded = 1;
16print "ok 1\n";
17
18######################### End of black magic.
19
20# util
21sub test {
22 local($^W) = 0;
23 my($num, $true,$msg) = @_;
24 print($true ? "ok $num\n" : "not ok $num $msg\n");
25}
26
ba056755 27my $CRLF = "\015\012";
28if ($^O eq 'VMS') {
29 $CRLF = "\n"; # via web server carriage is inserted automatically
30}
31if (ord("\t") != 9) { # EBCDIC?
32 $CRLF = "\r\n";
33}
34
35
424ec8fa 36# Set up a CGI environment
37$ENV{REQUEST_METHOD}='GET';
38$ENV{QUERY_STRING} ='game=chess&game=checkers&weather=dull';
39$ENV{PATH_INFO} ='/somewhere/else';
40$ENV{PATH_TRANSLATED} ='/usr/local/somewhere/else';
41$ENV{SCRIPT_NAME} ='/cgi-bin/foo.cgi';
42$ENV{SERVER_PROTOCOL} = 'HTTP/1.0';
43$ENV{SERVER_PORT} = 8080;
44$ENV{SERVER_NAME} = 'the.good.ship.lollypop.com';
45
03b9648d 46test(2,start_form(-action=>'foobar',-method=>'get') eq
47 qq(<form method="get" action="foobar" enctype="application/x-www-form-urlencoded">\n),
424ec8fa 48 "start_form()");
49
6b4ac661 50test(3,submit() eq qq(<input type="submit" name=".submit" />),"submit()");
51test(4,submit(-name=>'foo',-value=>'bar') eq qq(<input type="submit" name="foo" value="bar" />),"submit(-name,-value)");
52test(5,submit({-name=>'foo',-value=>'bar'}) eq qq(<input type="submit" name="foo" value="bar" />),"submit({-name,-value})");
53test(6,textfield(-name=>'weather') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name})");
54test(7,textfield(-name=>'weather',-value=>'nice') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name,-value})");
55test(8,textfield(-name=>'weather',-value=>'nice',-override=>1) eq qq(<input type="text" name="weather" value="nice" />),
424ec8fa 56 "textfield({-name,-value,-override})");
6b4ac661 57test(9,checkbox(-name=>'weather',-value=>'nice') eq qq(<input type="checkbox" name="weather" value="nice" />weather),
424ec8fa 58 "checkbox()");
59test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq
6b4ac661 60 qq(<input type="checkbox" name="weather" value="nice" />forecast),
424ec8fa 61 "checkbox()");
62test(11,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast',-checked=>1,-override=>1) eq
03b9648d 63 qq(<input type="checkbox" name="weather" value="nice" checked />forecast),
424ec8fa 64 "checkbox()");
65test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq
03b9648d 66 qq(<input type="checkbox" name="weather" value="dull" checked />forecast),
424ec8fa 67 "checkbox()");
68
69test(13,radio_group(-name=>'game') eq
03b9648d 70 qq(<input type="radio" name="game" value="chess" checked />chess <input type="radio" name="game" value="checkers" />checkers),
424ec8fa 71 'radio_group()');
72test(14,radio_group(-name=>'game',-labels=>{'chess'=>'ping pong'}) eq
03b9648d 73 qq(<input type="radio" name="game" value="chess" checked />ping pong <input type="radio" name="game" value="checkers" />checkers),
424ec8fa 74 'radio_group()');
75
76test(15, checkbox_group(-name=>'game',-Values=>[qw/checkers chess cribbage/]) eq
03b9648d 77 qq(<input type="checkbox" name="game" value="checkers" checked />checkers <input type="checkbox" name="game" value="chess" checked />chess <input type="checkbox" name="game" value="cribbage" />cribbage),
424ec8fa 78 'checkbox_group()');
79
6b4ac661 80test(16, checkbox_group(-name=>'game',-values=>[qw/checkers chess cribbage/],-defaults=>['cribbage'],-override=>1) eq
03b9648d 81 qq(<input type="checkbox" name="game" value="checkers" />checkers <input type="checkbox" name="game" value="chess" />chess <input type="checkbox" name="game" value="cribbage" checked />cribbage),
424ec8fa 82 'checkbox_group()');
6b4ac661 83test(17, popup_menu(-name=>'game',-values=>[qw/checkers chess cribbage/],-default=>'cribbage',-override=>1) eq <<END,'checkbox_group()');
84<select name="game">
85<option value="checkers">checkers</option>
86<option value="chess">chess</option>
03b9648d 87<option selected value="cribbage">cribbage</option>
6b4ac661 88</select>
424ec8fa 89END
90