1use strict; 2use warnings; 3 4use Test::More; 5 6eval { require Template; }; 7 8if ($@) { 9 plan skip_all => 'Template.pm required'; 10 die $@; 11} 12else { 13 plan tests => 1; 14} 15 16use HTML::FormFu; 17 18my $form = HTML::FormFu->new( 19 { tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } } ); 20 21$form->auto_fieldset( { legend => 'Foo' } ); 22 23$form->element('Text')->name('foo')->label('Foo'); 24$form->element('Text')->name('bar')->label('Bar'); 25$form->element('Hidden')->name('baz'); 26$form->element('Submit')->name('submit'); 27 28my $template = Template->new; 29my $output; 30 31$template->process( \*DATA, { form => $form }, \$output ) 32 or die $template->error; 33 34my $xhtml = <<EOF; 35<html> 36<body> 37<form action="" method="post"> 38<fieldset> 39<legend>Foo</legend> 40<label>Foo</label>: <input name="foo" type="text" /> 41<label>Bar</label>: <input name="bar" type="text" /> 42<input name="baz" type="hidden" /> 43<div> 44<input name="submit" type="submit" /> 45</div> 46</fieldset> 47</form> 48</body> 49</html> 50EOF 51 52is( $output, $xhtml ); 53 54__DATA__ 55<html> 56<body> 57[% form.start %] 58[% form.get_element('type', 'Fieldset').start %] 59[% form.get_field('foo').render_label %]: [% form.get_field('foo').render_field %] 60[% form.get_field('bar').render_label %]: [% form.get_field('bar').render_field %] 61[% form.get_field('baz') %] 62[% form.get_field('submit') %] 63[% form.get_element('type', 'Fieldset').end %] 64[% form.end %] 65</body> 66</html> 67