1use strict; 2use warnings; 3use Test::More tests => 18; 4 5use HTML::FormFu; 6use lib 't/lib'; 7use DBICTestLib 'new_schema'; 8use MySchema; 9 10my $form = HTML::FormFu->new; 11 12$form->load_config_file('t/default_values/has_many_repeatable_delete_true.yml'); 13 14my $schema = new_schema(); 15 16my $master = $schema->resultset('Master')->create({ id => 1 }); 17 18# row we're going to use 19 20$master->create_related( 'user', { 21 name => 'nick', 22 addresses => [ { address => 'home', }, { address => 'office', } ] } ); 23 24{ 25 my $row = $schema->resultset('User')->find(1); 26 27 $form->model->default_values($row); 28 29 is( $form->get_field('id')->default, '1' ); 30 is( $form->get_field('name')->default, 'nick' ); 31 is( $form->get_field('count')->default, '4' ); 32 33 my $block = $form->get_all_element( { nested_name => 'addresses' } ); 34 35 my @reps = @{ $block->get_elements }; 36 37 is( scalar @reps, 4 ); 38 39 is( $reps[0]->nested_name, 'addresses_1' ); 40 41 is( $reps[0]->get_field('id')->default, '1' ); 42 is( $reps[0]->get_field('address')->default, 'home' ); 43 44 ok( $reps[0]->get_field({ type => 'Checkbox' }) ); 45 46 is( $reps[1]->nested_name, 'addresses_2' ); 47 48 is( $reps[1]->get_field('id')->default, '2' ); 49 is( $reps[1]->get_field('address')->default, 'office' ); 50 51 ok( $reps[1]->get_field({ type => 'Checkbox' }) ); 52 53 # empty rows 54 55 is( $reps[2]->get_field('id')->default, undef ); 56 is( $reps[2]->get_field('address')->default, undef ); 57 58 # checkbox has been removed 59 ok( !$reps[2]->get_field({ type => 'Checkbox' }) ); 60 61 is( $reps[3]->get_field('id')->default, undef ); 62 is( $reps[3]->get_field('address')->default, undef ); 63 64 # checkbox has been removed 65 ok( !$reps[3]->get_field({ type => 'Checkbox' }) ); 66} 67 68