HTML-DOM

 view release on metacpan or  search on metacpan

t/html-form.t  view on Meta::CPAN

<form  METHOD="post" ACTION="http://example.com/secure/keygen/test.cgi" ENCTYPE="application/x-www-form-urlencoded">
   <keygen NAME="randomkey" CHALLENGE="1234567890">
   <input TYPE="text" NAME="Field1" VALUE="Default Text">
</form>
EOT

ok($f->find_input("randomkey"));
ok($f->find_input("randomkey")->challenge, "1234567890");
ok($f->find_input("randomkey")->keytype, "rsa");
ok($f->main::click->as_string, <<EOT);
POST http://example.com/secure/keygen/test.cgi
Content-Length: 19
Content-Type: application/x-www-form-urlencoded; charset=utf-8

Field1=Default+Text
EOT

$f->value(randomkey => "foo");
ok($f->main::click->as_string, <<EOT);
POST http://example.com/secure/keygen/test.cgi
Content-Length: 33
Content-Type: application/x-www-form-urlencoded; charset=utf-8

randomkey=foo&Field1=Default+Text
EOT
} # SKIP

$doc = new_doc "http://www.example.com";
$doc->write(<<'EOT'); $doc->close; $f = ($doc->forms)[0];
<form  ACTION="http://example.com/">
   <select name=s>
     <option>1
     <option>2
   <input name=t>
</form>
EOT

ok($f);
ok($f->find_input("t"));


$doc->write(<<'EOT'); $doc->close; my @f = $doc->forms;
<form  ACTION="http://example.com/">
   <select name=s>
     <option>1
     <option>2
</form>
<form  ACTION="http://example.com/">
     <input name=t>
</form>
EOT

is(@f, 2);
ok($f[0]->find_input("s"));
ok($f[1]->find_input("t"));

SKIP: { skip 'not supported (?)', 5;
$doc->write(<<'EOT'); $doc->close; $f = ($doc->forms)[0];
<form  ACTION="http://example.com/">
  <fieldset>
    <legend>Radio Buttons with Labels</legend>
    <label>
      <input type=radio name=r0 value=0 />zero
    </label>
    <label>one
      <input type=radio name=r1 value=1>
    </label>
    <label for="r2">two</label>
    <input type=radio name=r2 id=r2 value=2>
    <label>
      <span>nested</span>
      <input type=radio name=r3 value=3>
    </label>
    <label>
      before
      and <input type=radio name=r4 value=4>
      after
    </label>
  </fieldset>
</form>
EOT

is(join(":", $f->find_input("r0")->value_names), "zero");
is(join(":", $f->find_input("r1")->value_names), "one");
is(join(":", $f->find_input("r2")->value_names), "two");
is(join(":", $f->find_input("r3")->value_names), "nested");
is(join(":", $f->find_input("r4")->value_names), "before and after");
}


# ----------- from libwww-5.806/t/html/form-param.t ------------- #
# Tests 117 onwards

($doc = new_doc "http://example.com")
 ->write(<<'EOT', ); my $form = ($doc->forms)[0];
<form>
<input type="hidden" name="hidden_1">

<input type="checkbox" name="checkbox_1" value="c1_v1" CHECKED>
<input type="checkbox" name="checkbox_1" value="c1_v2" CHECKED>
<input type="checkbox" name="checkbox_2" value="c2_v1" CHECKED>

<select name="multi_select_field" multiple="1">
 <option> 1
 <option> 2
 <option> 3
</select>
</form>
EOT

# list names
is($form->param, 4);
is(j($form->param), "hidden_1:checkbox_1:checkbox_2:multi_select_field");

# get
is($form->param('hidden_1'), '');
is($form->param('checkbox_1'), 'c1_v1');
is(j($form->param('checkbox_1')), 'c1_v1:c1_v2');
is($form->param('checkbox_2'), 'c2_v1');
is(j($form->param('checkbox_2')), 'c2_v1');
ok(!defined($form->param('multi_select_field')));



( run in 1.219 second using v1.01-cache-2.11-cpan-39bf76dae61 )