Home | History | Annotate | Download | only in t
      1 #!/usr/local/bin/perl -w
      2 
      3 # Due to a bug in older versions of MakeMaker & Test::Harness, we must
      4 # ensure the blib's are in @INC, else we might use the core CGI.pm
      5 use lib qw(. ./blib/lib ./blib/arch);
      6 
      7 use Test::More tests => 18;
      8 
      9 BEGIN { use_ok('CGI'); };
     10 use CGI (':standard','-no_debug');
     11 
     12 my $CRLF = "\015\012";
     13 if ($^O eq 'VMS') {
     14     $CRLF = "\n";  # via web server carriage is inserted automatically
     15 }
     16 if (ord("\t") != 9) { # EBCDIC?
     17     $CRLF = "\r\n";
     18 }
     19 
     20 
     21 # Set up a CGI environment
     22 $ENV{REQUEST_METHOD}  = 'GET';
     23 $ENV{QUERY_STRING}    = 'game=chess&game=checkers&weather=dull';
     24 $ENV{PATH_INFO}       = '/somewhere/else';
     25 $ENV{PATH_TRANSLATED} = '/usr/local/somewhere/else';
     26 $ENV{SCRIPT_NAME}     ='/cgi-bin/foo.cgi';
     27 $ENV{SERVER_PROTOCOL} = 'HTTP/1.0';
     28 $ENV{SERVER_PORT}     = 8080;
     29 $ENV{SERVER_NAME}     = 'the.good.ship.lollypop.com';
     30 
     31 ok( (not $CGI::TABINDEX), "Tab index turned off.");
     32 
     33 is(submit(),
     34    qq(<input type="submit" name=".submit" />),
     35    "submit()");
     36 
     37 is(submit(-name  => 'foo',
     38 	  -value => 'bar'),
     39    qq(<input type="submit" name="foo" value="bar" />),
     40    "submit(-name,-value)");
     41 
     42 is(submit({-name  => 'foo',
     43 	   -value => 'bar'}),
     44    qq(<input type="submit" name="foo" value="bar" />),
     45    "submit({-name,-value})");
     46 
     47 is(textfield(-name => 'weather'),
     48    qq(<input type="text" name="weather" value="dull" />),
     49    "textfield({-name})");
     50 
     51 is(textfield(-name  => 'weather',
     52 	     -value => 'nice'),
     53    qq(<input type="text" name="weather" value="dull" />),
     54    "textfield({-name,-value})");
     55 
     56 is(textfield(-name     => 'weather',
     57 	     -value    => 'nice',
     58 	     -override => 1),
     59    qq(<input type="text" name="weather" value="nice" />),
     60    "textfield({-name,-value,-override})");
     61 
     62 is(checkbox(-name  => 'weather',
     63 	    -value => 'nice'),
     64    qq(<label><input type="checkbox" name="weather" value="nice" />weather</label>),
     65    "checkbox()");
     66 
     67 is(checkbox(-name  => 'weather',
     68 	    -value => 'nice',
     69 	    -label => 'forecast'),
     70    qq(<label><input type="checkbox" name="weather" value="nice" />forecast</label>),
     71    "checkbox()");
     72 
     73 is(checkbox(-name     => 'weather',
     74 	    -value    => 'nice',
     75 	    -label    => 'forecast',
     76 	    -checked  => 1,
     77 	    -override => 1),
     78    qq(<label><input type="checkbox" name="weather" value="nice" checked="checked" />forecast</label>),
     79    "checkbox()");
     80 
     81 is(checkbox(-name  => 'weather',
     82 	    -value => 'dull',
     83 	    -label => 'forecast'),
     84    qq(<label><input type="checkbox" name="weather" value="dull" checked="checked" />forecast</label>),
     85    "checkbox()");
     86 
     87 is(radio_group(-name => 'game'),
     88    qq(<label><input type="radio" name="game" value="chess" checked="checked" />chess</label> <label><input type="radio" name="game" value="checkers" />checkers</label>),
     89    'radio_group()');
     90 
     91 is(radio_group(-name   => 'game',
     92 	       -labels => {'chess' => 'ping pong'}),
     93    qq(<label><input type="radio" name="game" value="chess" checked="checked" />ping pong</label> <label><input type="radio" name="game" value="checkers" />checkers</label>),
     94    'radio_group()');
     95 
     96 is(checkbox_group(-name   => 'game',
     97 		  -Values => [qw/checkers chess cribbage/]),
     98    qq(<label><input type="checkbox" name="game" value="checkers" checked="checked" />checkers</label> <label><input type="checkbox" name="game" value="chess" checked="checked" />chess</label> <label><input type="checkbox" name="game" value="cribbage" />cribbage</label>),
     99    'checkbox_group()');
    100 
    101 is(checkbox_group(-name       => 'game',
    102 		  '-values'   => [qw/checkers chess cribbage/],
    103 		  '-defaults' => ['cribbage'],
    104 		  -override=>1),
    105    qq(<label><input type="checkbox" name="game" value="checkers" />checkers</label> <label><input type="checkbox" name="game" value="chess" />chess</label> <label><input type="checkbox" name="game" value="cribbage" checked="checked" />cribbage</label>),
    106    'checkbox_group()');
    107 
    108 is(popup_menu(-name     => 'game',
    109 	      '-values' => [qw/checkers chess cribbage/],
    110 	      -default  => 'cribbage',
    111 	      -override => 1),
    112    '<select name="game" >
    113 <option value="checkers">checkers</option>
    114 <option value="chess">chess</option>
    115 <option selected="selected" value="cribbage">cribbage</option>
    116 </select>',
    117    'popup_menu()');
    118 
    119 
    120 is(textarea(-name=>'foo',
    121 	    -default=>'starting value',
    122 	    -rows=>10,
    123 	    -columns=>50),
    124    '<textarea name="foo"  rows="10" cols="50">starting value</textarea>',
    125    'textarea()');
    126 
    127