The Grand Trek: move the *.t files from t/ to lib/ and ext/.
[p5sagit/p5-mst-13.2.git] / lib / CGI / t / form.t
1 #!/usr/local/bin/perl -w
2
3 BEGIN {
4     chdir('t') if -d 't';
5     @INC = '../lib';
6 }
7
8 # Test ability to retrieve HTTP request info
9 ######################### We start with some black magic to print on failure.
10 use lib '../blib/lib','../blib/arch';
11
12 BEGIN {$| = 1; print "1..17\n"; }
13 END {print "not ok 1\n" unless $loaded;}
14 use CGI (':standard','-no_debug');
15 $loaded = 1;
16 print "ok 1\n";
17
18 ######################### End of black magic.
19
20 # util
21 sub test {
22     local($^W) = 0;
23     my($num, $true,$msg) = @_;
24     print($true ? "ok $num\n" : "not ok $num $msg\n");
25 }
26
27 my $CRLF = "\015\012";
28 if ($^O eq 'VMS') { 
29     $CRLF = "\n";  # via web server carriage is inserted automatically
30 }
31 if (ord("\t") != 9) { # EBCDIC?
32     $CRLF = "\r\n";
33 }
34
35
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
46 test(2,start_form(-action=>'foobar',-method=>'get') eq 
47      qq(<form method="get" action="foobar" enctype="application/x-www-form-urlencoded">\n),
48      "start_form()");
49
50 test(3,submit() eq qq(<input type="submit" name=".submit" />),"submit()");
51 test(4,submit(-name=>'foo',-value=>'bar') eq qq(<input type="submit" name="foo" value="bar" />),"submit(-name,-value)");
52 test(5,submit({-name=>'foo',-value=>'bar'}) eq qq(<input type="submit" name="foo" value="bar" />),"submit({-name,-value})");
53 test(6,textfield(-name=>'weather') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name})");
54 test(7,textfield(-name=>'weather',-value=>'nice') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name,-value})");
55 test(8,textfield(-name=>'weather',-value=>'nice',-override=>1) eq qq(<input type="text" name="weather" value="nice" />),
56      "textfield({-name,-value,-override})");
57 test(9,checkbox(-name=>'weather',-value=>'nice') eq qq(<input type="checkbox" name="weather" value="nice" />weather),
58      "checkbox()");
59 test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq 
60      qq(<input type="checkbox" name="weather" value="nice" />forecast),
61      "checkbox()");
62 test(11,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast',-checked=>1,-override=>1) eq 
63      qq(<input type="checkbox" name="weather" value="nice" checked />forecast),
64      "checkbox()");
65 test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq 
66      qq(<input type="checkbox" name="weather" value="dull" checked />forecast),
67      "checkbox()");
68
69 test(13,radio_group(-name=>'game') eq 
70      qq(<input type="radio" name="game" value="chess" checked />chess <input type="radio" name="game" value="checkers" />checkers),
71      'radio_group()');
72 test(14,radio_group(-name=>'game',-labels=>{'chess'=>'ping pong'}) eq 
73      qq(<input type="radio" name="game" value="chess" checked />ping pong <input type="radio" name="game" value="checkers" />checkers),
74      'radio_group()');
75
76 test(15, checkbox_group(-name=>'game',-Values=>[qw/checkers chess cribbage/]) eq 
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),
78      'checkbox_group()');
79
80 test(16, checkbox_group(-name=>'game',-values=>[qw/checkers chess cribbage/],-defaults=>['cribbage'],-override=>1) eq 
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),
82      'checkbox_group()');
83 test(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>
87 <option selected value="cribbage">cribbage</option>
88 </select>
89 END
90