Changeset 25063 for lang

Show
Ignore:
Timestamp:
11/27/08 12:38:29 (4 years ago)
Author:
kazuho
Message:

add test for hidden

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/NanoA/trunk/t/form.t

    r24968 r25063  
    2525            regexp     => qr/^[0-9a-z_]{6,8}/, 
    2626        }, 
    27         # TODO add test for hidden fields 
    2827        sex => { 
    2928            type    => 'radio', 
     
    7069            max_length => 10, 
    7170        }, 
     71        unique_key => { 
     72            type     => 'hidden', 
     73            # validation 
     74            required => 1, 
     75        }, 
    7276    ], 
    7377); 
     
    8892like($field->validate([ '$-13409' ])->message, qr/無効/, 'text regexp error'); 
    8993ok(! $field->validate([ 'michael' ]), 'text regexp'); 
    90 is(${$field->to_html}, 
     94is(${$field->render}, 
    9195   '<input class="hoge_class" name="username" type="text" value="def&quot;val" />', 
    92    'text to_html', 
    93 ); 
    94 is(${$field->to_html([ 'hoge' ])}, 
     96   'text render', 
     97); 
     98is(${$field->render([ 'hoge' ])}, 
    9599   '<input class="hoge_class" name="username" type="text" value="hoge" />', 
    96    'text to_html 2', 
     100   'text render 2', 
    97101); 
    98102 
     
    104108ok(! $field->validate([ 'male' ]), 'radio validate'); 
    105109ok(! $field->validate([ 'female' ]), 'radio validate 2'); 
    106 like(${$field->options->[0]->to_html}, 
     110like(${$field->options->[0]->render}, 
    107111     qr{<input id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>}, 
    108      'radio to_html', 
    109 ); 
    110 like(${$field->to_html}, 
     112     'radio render', 
     113); 
     114like(${$field->render}, 
    111115     qr{<input id=".*?" name="sex" type="radio" value="male" /><label for=".*?">男性</label>\s*<input id=".*?" name="sex" type="radio" value="female" /><label for=".*?">女性</label>}, 
    112      'radio to_html 2', 
    113 ); 
    114 like(${$field->to_html([ 'male' ])}, 
     116     'radio render 2', 
     117); 
     118like(${$field->render([ 'male' ])}, 
    115119     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>}, 
    116      'radio to_html 3', 
     120     'radio render 3', 
    117121); 
    118122 
     
    125129ok(! $field->validate([ 20 ]), 'select validate'); 
    126130ok(! $field->validate([ 30 ]), 'select validate 2'); 
    127 is(${$field->options->[0]->to_html}, 
     131is(${$field->options->[0]->render}, 
    128132   '<option selected="1" value="">選択してください</option>', 
    129    'select to_html 1', 
    130 ); 
    131 is(${$field->options->[1]->to_html}, 
     133   'select render 1', 
     134); 
     135is(${$field->options->[1]->render}, 
    132136   '<option value="19">〜19才</option>', 
    133    'select to_html 2', 
    134 ); 
    135 is(${$field->to_html}, 
     137   'select render 2', 
     138); 
     139is(${$field->render}, 
    136140   join( 
    137141       '', 
     
    146150       '</select>', 
    147151   ), 
    148    'select to_html 3', 
    149 ); 
    150 is(${$field->to_html([ 20 ])}, 
     152   'select render 3', 
     153); 
     154is(${$field->render([ 20 ])}, 
    151155   join( 
    152156       '', 
     
    161165       '</select>', 
    162166   ), 
    163    'select to_html 3', 
     167   'select render 4', 
    164168); 
    165169 
     
    172176like($field->validate([ qw/c perl php ruby/ ])->message, qr/の中から 2 〜 3/, 'checkbox required 4'); 
    173177like( 
    174     ${$field->options->[0]->to_html}, 
     178    ${$field->options->[0]->render}, 
    175179    qr{<input id=".*?" name="interest" type="checkbox" value="c" /><label for=".*?">C/C\+\+</label>}, 
    176     'checkbox to_html 1', 
    177 ); 
    178 like( 
    179     ${$field->options->[1]->to_html}, 
     180    'checkbox render 1', 
     181); 
     182like( 
     183    ${$field->options->[1]->render}, 
    180184    qr{<input checked="1" id=".*?" name="interest" type="checkbox" value="perl" /><label for=".*?">perl</label>}, 
    181     'checkbox to_html 2', 
    182 ); 
    183 like( 
    184     ${$field->to_html}, 
     185    'checkbox render 2', 
     186); 
     187like( 
     188    ${$field->render}, 
    185189    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>}, 
    186     'checkbox to_html 3', 
    187 ); 
    188 like( 
    189     ${$field->to_html([ qw/perl php/ ])}, 
     190    'checkbox render 3', 
     191); 
     192like( 
     193    ${$field->render([ qw/perl php/ ])}, 
    190194    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>}, 
    191     'checkbox to_html 3', 
     195    'checkbox render 4', 
    192196); 
    193197 
     
    198202like($field->validate([ 'abcdefghijk' ])->message, qr/長すぎ/, 'textarea max_length'); 
    199203ok(! $field->validate([ 'abcde' ]), 'textarea validate'); 
    200 is(${$field->to_html}, 
     204is(${$field->render}, 
    201205   '<textarea cols="40" name="comment" rows="10">def&quot;val</textarea>', 
    202    'textarea to_html 1', 
    203 ); 
    204 is(${$field->to_html([ qw/abcde/ ])}, 
     206   'textarea render 1', 
     207); 
     208is(${$field->render([ qw/abcde/ ])}, 
    205209   '<textarea cols="40" name="comment" rows="10">abcde</textarea>', 
    206    'textarea to_html 2', 
    207 ); 
     210   'textarea render 2', 
     211); 
     212 
     213$field = $form->fields->[5]; 
     214is($field->type, q(hidden), 'hidden type'); 
     215like($field->validate([])->message, qr/を入力してください/, 'hidden required'); 
     216ok(! $field->validate([ 'abc' ]), 'hidden validate'); 
     217is(${$field->render}, 
     218   '<input name="unique_key" type="hidden" />', 
     219   'hidden render 1', 
     220); 
     221is(${$field->render([ qw/abcde/ ])}, 
     222   '<input name="unique_key" type="hidden" value="abcde" />', 
     223   'hidden render 1', 
     224);