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 )