The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 5;

use HTML::FormFu;

{    # element has explicit id
    my $form = HTML::FormFu->new(
        { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } );

    $form->element('Text')->name('foo')->id('fid')->label('Foo');

    my $field_xhtml = qq{<div>
<label for="fid">Foo</label>
<input name="foo" type="text" id="fid" />
</div>};

    is( $form->get_field('foo'), $field_xhtml );
}

{    # auto_id
    my $form = HTML::FormFu->new(
        { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } );

    $form->auto_fieldset(1);
    $form->auto_id('%n');

    $form->element('Text')->name('foo')->label('Foo');

    my $field_xhtml = qq{<div>
<label for="foo">Foo</label>
<input name="foo" type="text" id="foo" />
</div>};

    is( $form->get_field('foo'), $field_xhtml );

    is( "$form", <<HTML );
<form action="" method="post">
<fieldset>
$field_xhtml
</fieldset>
</form>
HTML
}

{    # auto_id
    my $form = HTML::FormFu->new(
        { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } );

    $form->auto_fieldset(1);
    $form->id('my_form');

    $form->element('Text')->name('foo')->label('Foo')->auto_id('%f_%n');

    my $field_xhtml = qq{<div>
<label for="my_form_foo">Foo</label>
<input name="foo" type="text" id="my_form_foo" />
</div>};

    is( $form->get_field('foo'), $field_xhtml );

    is( "$form", <<HTML );
<form action="" id="my_form" method="post">
<fieldset>
$field_xhtml
</fieldset>
</form>
HTML
}