Debian lenny version packages
[pkg-perl] / deb-src / libwww-perl / libwww-perl-5.813 / t / html / form-maxlength.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use lib '.';
6 use Test::More tests => 16;
7 use HTML::Form;
8
9 my $html = do { local $/ = undef; <DATA> };
10 my $form = HTML::Form->parse($html, 'foo.html' );
11 isa_ok($form, 'HTML::Form');
12 my $input = $form->find_input('passwd');
13 isa_ok($input, 'HTML::Form::TextInput');
14
15 sub set_value {
16   my $input = shift;
17   my $value = shift;
18   my $len = length($value);
19   my $old = $input->value;
20   is( $input->value($value), $old, "set value length=$len" );
21   is( $input->value, $value, "got value length=$len" );
22 }
23
24 {
25   my @warnings;
26   local $SIG{__WARN__} = sub { push @warnings, @_; };
27   is( $input->{maxlength}, 8, 'got maxlength: 8' );
28
29   $^W = 0;
30
31   set_value( $input, '1234' );
32   is( @warnings, 0, "No warnings so far" );
33
34   set_value( $input, '1234567890' );
35   is( @warnings, 0, "No warnings so far" );
36
37   $^W = 1;
38
39   set_value( $input, '1234' );
40   is( @warnings, 0, "No warnings so far" );
41
42   set_value( $input, '1234567890' );
43   is( @warnings, 1, "Got warning" );
44   like( $warnings[0], qr/^Input 'passwd' has maxlength '8' at /, "Got warning message" );
45 }
46
47 __DATA__
48
49 <form method="post" action="?" enctype="application/x-www-form-urlencoded" name="login">
50 <div style="display:none"><input type="hidden" name="node_id" value="109"></div>
51 <input type="hidden" name="op" value="login" />
52 <input type="hidden" name="lastnode_id" value="109" />
53 <table border="0"><tr><td><font size="2">
54 Login:</font></td><td>
55 <input type="text" name="user"  size=10 maxlength=34 />
56 </td></tr><tr><td><font size="2">
57 Password</font></td><td>
58 <input type="password" name="passwd"  size=10 MAXLENGTH=8 />
59
60 </td></tr></table><font size="2">
61 <input type="checkbox" name="expires" value="+10y" />remember me
62 <input type="submit" name="login" value="Login" />
63 </font><br />
64 <a href="?node=What%27s%20my%20password%3F">password reminder</a>
65 <br />
66 <a href="?node_id=101">Create A New User</a>
67 </form>
68