The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl 

# Copyright (c) 2006 Mark Hedges <hedges@ucsd.edu>

use strict;
use English '-no_match_vars';

use blib;

use Test::More tests => 6;

use FindBin;

# use a BEGIN block so we print our plan before CGI::FormBuilder is loaded
BEGIN {
    use_ok('CGI::FormBuilder');
}
require_ok('CGI::FormBuilder');

# Need to fake a request or else we stall... or not?  hrmm.
$ENV{REQUEST_METHOD} = 'GET';
my $testqs = {
    test1   => 'testing',
    test2   => 'test@test.foo',
    test3   => 0,
    _submitted_test => 1,
};
$ENV{QUERY_STRING} = join('&', map "$_=$testqs->{$_}", keys %{$testqs});

sub test4opts {
    return [
        [ beef => "Where's the beef?"   ],
        [ chicken => "Cross the road!"  ],
        [ horta => "They're eggs, Jim!" ],
    ];
}

my $form = undef;

my $sourcefile = "$FindBin::Bin/test.fb";

eval {
    $form = CGI::FormBuilder->new(
        source  => {
            type    => 'YAML',
            source  => $sourcefile,
            debug   => 0,
        },
    );
};
ok !$EVAL_ERROR, 'create form';

my $ren = undef;

eval {
    $ren = $form->render;
};
ok !$EVAL_ERROR, 'render form';

ok( $form->submitted, 'form submitted' );

ok( $form->validate, 'form validate' );