home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / lib / cgi-form.t < prev    next >
Text File  |  1999-07-20  |  4KB  |  82 lines

  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.     unshift @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),
  48.      "checkbox()");
  49. test(10,checkbox(-name=>'weather',-value=>'nice',-label=>'forecast') eq 
  50.      qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="nice">forecast),
  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),
  54.      "checkbox()");
  55. test(12,checkbox(-name=>'weather',-value=>'dull',-label=>'forecast') eq 
  56.      qq(<INPUT TYPE="checkbox" NAME="weather" VALUE="dull" CHECKED>forecast),
  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.  
  82.