]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/perl5/t/lib/cgi-form.t
unfinished sblive driver, playback/mixer only for now - not enabled in
[FreeBSD/FreeBSD.git] / contrib / perl5 / t / lib / cgi-form.t
1 #!./perl
2
3 # Test ability to retrieve HTTP request info
4 ######################### We start with some black magic to print on failure.
5
6 BEGIN {
7     chdir 't' if -d 't';
8     @INC = '../lib' if -d '../lib';
9 }
10
11 BEGIN {$| = 1; print "1..17\n"; }
12 END {print "not ok 1\n" unless $loaded;}
13 use CGI (':standard','-no_debug');
14 $loaded = 1;
15 print "ok 1\n";
16
17 ######################### End of black magic.
18
19 # util
20 sub test {
21     local($^W) = 0;
22     my($num, $true,$msg) = @_;
23     print($true ? "ok $num\n" : "not ok $num $msg\n");
24 }
25
26 # Set up a CGI environment
27 $ENV{REQUEST_METHOD}='GET';
28 $ENV{QUERY_STRING}  ='game=chess&game=checkers&weather=dull';
29 $ENV{PATH_INFO}     ='/somewhere/else';
30 $ENV{PATH_TRANSLATED} ='/usr/local/somewhere/else';
31 $ENV{SCRIPT_NAME}   ='/cgi-bin/foo.cgi';
32 $ENV{SERVER_PROTOCOL} = 'HTTP/1.0';
33 $ENV{SERVER_PORT} = 8080;
34 $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com';
35
36 test(2,start_form(-action=>'foobar',-method=>GET) eq 
37      qq(<FORM METHOD="GET" ACTION="foobar" ENCTYPE="application/x-www-form-urlencoded">\n),
38      "start_form()");
39
40 test(3,submit() eq qq(<INPUT TYPE="submit" NAME=".submit">),"submit()");
41 test(4,submit(-name=>'foo',-value=>'bar') eq qq(<INPUT TYPE="submit" NAME="foo" VALUE="bar">),"submit(-name,-value)");
42 test(5,submit({-name=>'foo',-value=>'bar'}) eq qq(<INPUT TYPE="submit" NAME="foo" VALUE="bar">),"submit({-name,-value})");
43 test(6,textfield(-name=>'weather') eq qq(<INPUT TYPE="text" NAME="weather" VALUE="dull">),"textfield({-name})");
44 test(7,textfield(-name=>'weather',-value=>'nice') eq qq(<INPUT TYPE="text" NAME="weather" VALUE="dull">),"textfield({-name,-value})");
45 test(8,textfield(-name=>'weather',-value=>'nice',-override=>1) eq qq(<INPUT TYPE="text" NAME="weather" VALUE="nice">),
46      "textfield({-name,-value,-override})");
47 test(9,checkbox(-name=>'weather',-value=>'nice') eq qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice">weather\n),
48      "checkbox()");
49 test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq 
50      qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice">forecast\n),
51      "checkbox()");
52 test(11,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast',-checked=>1,-override=>1) eq 
53      qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice" CHECKED>forecast\n),
54      "checkbox()");
55 test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq 
56      qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="dull" CHECKED>forecast\n),
57      "checkbox()");
58
59 test(13,radio_group(-name=>'game') eq 
60      qq(<INPUT TYPE="radio" NAME="game" VALUE="chess" CHECKED>chess <INPUT TYPE="radio" NAME="game" VALUE="checkers">checkers),
61      'radio_group()');
62 test(14,radio_group(-name=>'game',-labels=>{'chess'=>'ping pong'}) eq 
63      qq(<INPUT TYPE="radio" NAME="game" VALUE="chess" CHECKED>ping pong <INPUT TYPE="radio" NAME="game" VALUE="checkers">checkers),
64      'radio_group()');
65
66 test(15, checkbox_group(-name=>'game',-Values=>[qw/checkers chess cribbage/]) eq 
67      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),
68      'checkbox_group()');
69
70 test(16, checkbox_group(-name=>'game',-Values=>[qw/checkers chess cribbage/],-Defaults=>['cribbage'],-override=>1) eq 
71      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),
72      'checkbox_group()');
73
74 test(17, popup_menu(-name=>'game',-Values=>[qw/checkers chess cribbage/],-Default=>'cribbage',-override=>1) eq <<END,'checkbox_group()');
75 <SELECT NAME="game">
76 <OPTION  VALUE="checkers">checkers
77 <OPTION  VALUE="chess">chess
78 <OPTION SELECTED VALUE="cribbage">cribbage
79 </SELECT>
80 END
81