Commit | Line | Data |
6b4ac661 |
1 | #!/usr/local/bin/perl -w |
424ec8fa |
2 | |
36e6c0f5 |
3 | BEGIN { |
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 |
10 | use lib '../blib/lib','../blib/arch'; |
424ec8fa |
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 | # Set up a CGI environment |
28 | $ENV{REQUEST_METHOD}='GET'; |
29 | $ENV{QUERY_STRING} ='game=chess&game=checkers&weather=dull'; |
30 | $ENV{PATH_INFO} ='/somewhere/else'; |
31 | $ENV{PATH_TRANSLATED} ='/usr/local/somewhere/else'; |
32 | $ENV{SCRIPT_NAME} ='/cgi-bin/foo.cgi'; |
33 | $ENV{SERVER_PROTOCOL} = 'HTTP/1.0'; |
34 | $ENV{SERVER_PORT} = 8080; |
35 | $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com'; |
36 | |
03b9648d |
37 | test(2,start_form(-action=>'foobar',-method=>'get') eq |
38 | qq(<form method="get" action="foobar" enctype="application/x-www-form-urlencoded">\n), |
424ec8fa |
39 | "start_form()"); |
40 | |
6b4ac661 |
41 | test(3,submit() eq qq(<input type="submit" name=".submit" />),"submit()"); |
42 | test(4,submit(-name=>'foo',-value=>'bar') eq qq(<input type="submit" name="foo" value="bar" />),"submit(-name,-value)"); |
43 | test(5,submit({-name=>'foo',-value=>'bar'}) eq qq(<input type="submit" name="foo" value="bar" />),"submit({-name,-value})"); |
44 | test(6,textfield(-name=>'weather') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name})"); |
45 | test(7,textfield(-name=>'weather',-value=>'nice') eq qq(<input type="text" name="weather" value="dull" />),"textfield({-name,-value})"); |
46 | test(8,textfield(-name=>'weather',-value=>'nice',-override=>1) eq qq(<input type="text" name="weather" value="nice" />), |
424ec8fa |
47 | "textfield({-name,-value,-override})"); |
6b4ac661 |
48 | test(9,checkbox(-name=>'weather',-value=>'nice') eq qq(<input type="checkbox" name="weather" value="nice" />weather), |
424ec8fa |
49 | "checkbox()"); |
50 | test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq |
6b4ac661 |
51 | qq(<input type="checkbox" name="weather" value="nice" />forecast), |
424ec8fa |
52 | "checkbox()"); |
53 | test(11,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast',-checked=>1,-override=>1) eq |
03b9648d |
54 | qq(<input type="checkbox" name="weather" value="nice" checked />forecast), |
424ec8fa |
55 | "checkbox()"); |
56 | test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq |
03b9648d |
57 | qq(<input type="checkbox" name="weather" value="dull" checked />forecast), |
424ec8fa |
58 | "checkbox()"); |
59 | |
60 | test(13,radio_group(-name=>'game') eq |
03b9648d |
61 | qq(<input type="radio" name="game" value="chess" checked />chess <input type="radio" name="game" value="checkers" />checkers), |
424ec8fa |
62 | 'radio_group()'); |
63 | test(14,radio_group(-name=>'game',-labels=>{'chess'=>'ping pong'}) eq |
03b9648d |
64 | qq(<input type="radio" name="game" value="chess" checked />ping pong <input type="radio" name="game" value="checkers" />checkers), |
424ec8fa |
65 | 'radio_group()'); |
66 | |
67 | test(15, checkbox_group(-name=>'game',-Values=>[qw/checkers chess cribbage/]) eq |
03b9648d |
68 | 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 |
69 | 'checkbox_group()'); |
70 | |
6b4ac661 |
71 | test(16, checkbox_group(-name=>'game',-values=>[qw/checkers chess cribbage/],-defaults=>['cribbage'],-override=>1) eq |
03b9648d |
72 | 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 |
73 | 'checkbox_group()'); |
6b4ac661 |
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</option> |
77 | <option value="chess">chess</option> |
03b9648d |
78 | <option selected value="cribbage">cribbage</option> |
6b4ac661 |
79 | </select> |
424ec8fa |
80 | END |
81 | |