~ubuntu-branches/ubuntu/raring/libhtml-form-perl/raring

« back to all changes in this revision

Viewing changes to t/form-param.t

  • Committer: Bazaar Package Importer
  • Author(s): Nicholas Bamber
  • Date: 2011-03-22 23:42:22 UTC
  • Revision ID: james.westby@ubuntu.com-20110322234222-dmpiumpv6bgz3ssa
Tags: upstream-6.00
ImportĀ upstreamĀ versionĀ 6.00

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!perl -w
 
2
 
 
3
use strict;
 
4
use Test qw(plan ok);
 
5
 
 
6
plan tests => 22;
 
7
 
 
8
use HTML::Form;
 
9
 
 
10
my $form = HTML::Form->parse(<<"EOT", base => "http://example.com", strict => 1);
 
11
<form>
 
12
<input type="hidden" name="hidden_1">
 
13
 
 
14
<input type="checkbox" name="checkbox_1" value="c1_v1" CHECKED>
 
15
<input type="checkbox" name="checkbox_1" value="c1_v2" CHECKED>
 
16
<input type="checkbox" name="checkbox_2" value="c2_v1" CHECKED>
 
17
 
 
18
<select name="multi_select_field" multiple="1">
 
19
 <option> 1
 
20
 <option> 2
 
21
 <option> 3
 
22
</select>
 
23
</form>
 
24
EOT
 
25
 
 
26
# list names
 
27
ok($form->param, 4);
 
28
ok(j($form->param), "hidden_1:checkbox_1:checkbox_2:multi_select_field");
 
29
 
 
30
# get
 
31
ok($form->param('hidden_1'), '');
 
32
ok($form->param('checkbox_1'), 'c1_v1');
 
33
ok(j($form->param('checkbox_1')), 'c1_v1:c1_v2');
 
34
ok($form->param('checkbox_2'), 'c2_v1');
 
35
ok(j($form->param('checkbox_2')), 'c2_v1');
 
36
ok(!defined($form->param('multi_select_field')));
 
37
ok(j($form->param('multi_select_field')), '');
 
38
ok(!defined($form->param('unknown')));
 
39
ok(j($form->param('unknown')), '');
 
40
 
 
41
# set
 
42
eval {
 
43
    $form->param('hidden_1', 'x');
 
44
};
 
45
ok($@, qr/readonly/);
 
46
ok(j($form->param('hidden_1')), '');
 
47
 
 
48
eval {
 
49
    $form->param('checkbox_1', 'foo');
 
50
};
 
51
ok($@, qr/Illegal value/);
 
52
ok(j($form->param('checkbox_1')), 'c1_v1:c1_v2');
 
53
 
 
54
$form->param('checkbox_1', 'c1_v2');
 
55
ok(j($form->param('checkbox_1')), 'c1_v2');
 
56
$form->param('checkbox_1', 'c1_v2');
 
57
ok(j($form->param('checkbox_1')), 'c1_v2');
 
58
$form->param('checkbox_1', []);
 
59
ok(j($form->param('checkbox_1')), '');
 
60
$form->param('checkbox_1', ['c1_v2', 'c1_v1']);
 
61
ok(j($form->param('checkbox_1')), 'c1_v1:c1_v2');
 
62
$form->param('checkbox_1', []);
 
63
ok(j($form->param('checkbox_1')), '');
 
64
$form->param('checkbox_1', 'c1_v2', 'c1_v1');
 
65
ok(j($form->param('checkbox_1')), 'c1_v1:c1_v2');
 
66
 
 
67
$form->param('multi_select_field', 3, 2);
 
68
ok(j($form->param('multi_select_field')), "2:3");
 
69
 
 
70
sub j {
 
71
    join(":", @_);
 
72
}