Commit | Line | Data |
---|---|---|
424ec8fa GS |
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'; | |
93430cb4 | 8 | unshift @INC, '../lib' if -d '../lib'; |
424ec8fa GS |
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})"); | |
f6b3007c | 47 | test(9,checkbox(-name=>'weather',-value=>'nice') eq qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice">weather), |
424ec8fa GS |
48 | "checkbox()"); |
49 | test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq | |
f6b3007c | 50 | qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice">forecast), |
424ec8fa GS |
51 | "checkbox()"); |
52 | test(11,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast',-checked=>1,-override=>1) eq | |
f6b3007c | 53 | qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice" CHECKED>forecast), |
424ec8fa GS |
54 | "checkbox()"); |
55 | test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq | |
f6b3007c | 56 | qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="dull" CHECKED>forecast), |
424ec8fa GS |
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 |