/usr/share/perl5/CGI/Test/Form/Widget/Input/Text_Field.pm is in libcgi-test-perl 1.111-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | package CGI::Test::Form::Widget::Input::Text_Field;
use strict;
use warnings;
##################################################################
# $Id: Text_Field.pm 411 2011-09-26 11:19:30Z nohuhu@nohuhu.org $
# $Name: cgi-test_0-104_t1 $
##################################################################
#
# Copyright (c) 2001, Raphael Manfredi
#
# You may redistribute only under the terms of the Artistic License,
# as specified in the README file that comes with the distribution.
#
use Carp;
#
# This class models a FORM text field.
#
use base qw(CGI::Test::Form::Widget::Input);
#
# %attr
#
# Defines which HTML attributes we should look at within the node, and how
# to translate that into class attributes.
#
my %attr = ('name' => 'name',
'value' => 'value',
'size' => 'size',
'maxlength' => 'max_length',
'disabled' => 'is_disabled',
'readonly' => 'is_read_only',
);
#
# ->_init
#
# Per-widget initialization routine.
# Parse HTML node to determine our specific parameters.
#
sub _init
{
my $this = shift;
my ($node) = shift;
$this->_parse_attr($node, \%attr);
return;
}
#
# Attribute access
#
sub size
{
$_[ 0 ]->{size};
}
sub max_length
{
$_[ 0 ]->{max_length};
}
sub gui_type
{
"text field"
}
#
# Redefined predicates
#
sub is_field
{
1
}
#
# Redefined routines
#
#
# ->set_value -- redefined
#
# Ensure text is not larger than the maximum field length, by truncating
# from the right.
#
sub set_value
{
my $this = shift;
my ($value) = @_;
my $maxlen = $this->max_length;
$maxlen = 1 if defined $maxlen && $maxlen < 1;
if (defined $maxlen && length($value) > $maxlen)
{
carp "truncating text to %d byte%s for %s '%s'", $maxlen,
$maxlen == 1 ? "" : "s", $this->gui_type, $this->name;
substr($value, $maxlen) = '';
}
$this->SUPER::set_value($value);
}
1;
=head1 NAME
CGI::Test::Form::Widget::Input::Text_Field - A text field
=head1 SYNOPSIS
# Inherits from CGI::Test::Form::Widget::Input
# $form is a CGI::Test::Form
my $desc = $form->input_by_name("description");
$desc->replace("small and beautiful");
=head1 DESCRIPTION
This class models a single-line text field, where users can type text.
=head1 INTERFACE
The interface is the same as the one described in
L<CGI::Test::Form::Widget::Input>, with the following additional attributes:
=over 4
=item C<max_length>
The maximum allowed text length within the field. If not defined, it means
the length is not limited.
=item C<size>
The size of the displayed text field, in characters. The text held within
the field can be much larger than that, however.
=back
=head1 AUTHORS
The original author is Raphael Manfredi.
Steven Hilton was long time maintainer of this module.
Current maintainer is Alexander Tokarev F<E<lt>tokarev@cpan.orgE<gt>>.
=head1 SEE ALSO
CGI::Test::Form::Widget::Input(3).
=cut
|