Changeset 25295

Show
Ignore:
Timestamp:
11/29/08 02:03:28 (4 years ago)
Author:
kazuho
Message:

fix 00-base.t, add coverage test, add docs

Location:
lang/perl/HTML-AutoForm/trunk
Files:
3 added
6 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/HTML-AutoForm/trunk/META.yml

    r25263 r25295  
    1313    - inc 
    1414    - t 
    15 version: undef 
     15requires: 
     16  Class::Accessor::Fast: 0 
     17  Test::Pod::Coverage: 0 
     18version: 0.01 
  • lang/perl/HTML-AutoForm/trunk/Makefile.PL

    r25263 r25295  
    55all_from('lib/HTML/AutoForm.pm'); 
    66 
     7requires 'Class::Accessor::Fast'; 
     8requires 'Test::Pod::Coverage'; 
     9 
    710auto_install; 
    811WriteAll; 
  • lang/perl/HTML-AutoForm/trunk/lib/HTML/AutoForm.pm

    r25263 r25295  
    1818use HTML::AutoForm::Field::Text; 
    1919use HTML::AutoForm::Field::Textarea; 
     20 
     21our $VERSION = '0.01'; 
    2022 
    2123our %Defaults; 
     
    181183 
    1821841; 
     185__END__ 
     186 
     187=head1 NAME 
     188 
     189HTML::AutoForm - a standalone HTML form validator and renderer 
     190 
     191=head1 SYNOPSIS 
     192 
     193    # build form object 
     194    my $form = HTML::AutoForm->new( 
     195        fields => [ 
     196            username => { 
     197                type       => 'text', 
     198                required   => 1, 
     199                min_length => 6, 
     200                max_length => 8, 
     201                regexp     => qr/^[0-9a-z_]+$/, 
     202            }, 
     203            password => { 
     204                type       => 'password', 
     205                required   => 1, 
     206                min_length => 8, 
     207                regexp     => qr/^[0-9A-Za-z_-]+$/, 
     208            }, 
     209            password2 => { 
     210                type       => 'password', 
     211                label      => 'Password (repeat)', 
     212                required   => 1, 
     213                validate   => sub { 
     214                    my $q = shift; 
     215                    $q->param('password') eq $q->param('password2'); 
     216               }, 
     217            }, 
     218            sex  => { 
     219                type       => 'radio', 
     220                options    => [ 
     221                    male   => {}, 
     222                    female => {}, 
     223                }, 
     224                required   => undef, 
     225            }, 
     226            country => { 
     227                type       => 'select', 
     228                options    => [ qw/Australia Japan .../, ], 
     229                required   => 1, 
     230            }, 
     231            # add more 
     232        ], 
     233    ); 
     234 
  • lang/perl/HTML-AutoForm/trunk/lib/HTML/AutoForm/Field/AnyText.pm

    r25263 r25295  
    3939        'input', 
    4040        { 
    41             class => 'autoform_field_' . $self->type, 
     41            ($self->type ne 'hidden' ? ( 
     42                class => 'autoform_field_' . $self->type, 
     43            ) : ()), 
    4244            %$self, 
    4345        }, 
  • lang/perl/HTML-AutoForm/trunk/lib/HTML/AutoForm/Field/Select.pm

    r25263 r25295  
    5151        {}, 
    5252        { options => 1, }, 
    53         join('', map { ${$_->render($values)} } @{$self->{options}}), 
     53        join('', map { $_->render($values) } @{$self->{options}}), 
    5454    ); 
    5555} 
  • lang/perl/HTML-AutoForm/trunk/t/00-base.t

    r25263 r25295  
    109109); 
    110110like($field->render, 
    111      qr{<input id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>\s*<input id=".*?" name="sex" type="radio" value="female" /><label for=".*?">女性</label>}, 
     111     qr{<input class="autoform_field_radio" id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>\s*<input class="autoform_field_radio" id=".*?" name="sex" type="radio" value="female" /><label for=".*?">女性</label>}, 
    112112     'radio render 2', 
    113113); 
    114114like($field->render([ 'male' ]), 
    115      qr{<input checked="1" id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>\s*<input id=".*?" name="sex" type="radio" value="female" /><label for=".*?">女性</label>}, 
     115     qr{<input checked="1" class="autoform_field_radio" id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>\s*<input class="autoform_field_radio" id=".*?" name="sex" type="radio" value="female" /><label for=".*?">女性</label>}, 
    116116     'radio render 3', 
    117117); 
     
    136136   join( 
    137137       '', 
    138        '<select name="age">', 
     138       '<select class="autoform_field_select" name="age">', 
    139139       '<option selected="1" value="">選択してください</option>', 
    140140       '<option value="19">〜19才</option>', 
     
    151151   join( 
    152152       '', 
    153        '<select name="age">', 
     153       '<select class="autoform_field_select" name="age">', 
    154154       '<option value="">選択してください</option>', 
    155155       '<option value="19">〜19才</option>', 
     
    173173like( 
    174174    $field->options->[0]->render, 
    175     qr{<input id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label>}, 
     175    qr{<input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label>}, 
    176176    'checkbox render 1', 
    177177); 
    178178like( 
    179179    $field->options->[1]->render, 
    180     qr{<input checked="1" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label>}, 
     180    qr{<input checked="1" class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label>}, 
    181181    'checkbox render 2', 
    182182); 
    183183like( 
    184184    $field->render, 
    185     qr{<input id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label> <input checked="1" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label> <input id=".*?" name="interest" type="checkbox" value="php" /><label for=".*?">PHP</label> <input id=".*?" name="interest" type="checkbox" value="ruby" /><label for=".*?">Ruby</label>}, 
     185    qr{<input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label> <input checked="1" class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label> <input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="php" /><label for=".*?">PHP</label> <input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="ruby" /><label for=".*?">Ruby</label>}, 
    186186    'checkbox render 3', 
    187187); 
    188188like( 
    189189    $field->render([ qw/perl php/ ]), 
    190     qr{<input id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label> <input checked="1" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label> <input checked="1" id=".*?" name="interest" type="checkbox" value="php" /><label for=".*?">PHP</label> <input id=".*?" name="interest" type="checkbox" value="ruby" /><label for=".*?">Ruby</label>}, 
     190    qr{<input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label> <input checked="1" class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label> <input checked="1" class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="php" /><label for=".*?">PHP</label> <input class="autoform_field_checkbox" id=".*?" name="interest" type="checkbox" value="ruby" /><label for=".*?">Ruby</label>}, 
    191191    'checkbox render 4', 
    192192); 
     
    199199ok(! $field->validate([ 'abcde' ]), 'textarea validate'); 
    200200is($field->render, 
    201    '<textarea cols="40" name="comment" rows="10">def&quot;val</textarea>', 
     201   '<textarea class="autoform_field_textarea" cols="40" name="comment" rows="10">def&quot;val</textarea>', 
    202202   'textarea render 1', 
    203203); 
    204204is($field->render([ qw/abcde/ ]), 
    205    '<textarea cols="40" name="comment" rows="10">abcde</textarea>', 
     205   '<textarea class="autoform_field_textarea" cols="40" name="comment" rows="10">abcde</textarea>', 
    206206   'textarea render 2', 
    207207);