Index: trunk/t/01-field.t
===================================================================
--- trunk/t/01-field.t	(revision 76)
+++ trunk/t/01-field.t	(revision 76)
@@ -0,0 +1,147 @@
+use strict;
+
+use Test::More qw(no_plan); #tests => 6;
+BEGIN { use_ok('Text::FormBuilder::Parser'); };
+
+my $p = Text::FormBuilder::Parser->new;
+
+# this is the minimal hash that is returned with every field that is parsed
+my %base = (
+    comment  => undef,
+    growable => undef,
+    label    => undef,
+    list     => undef,
+    name     => undef,
+    other    => undef,
+    required => undef,
+    type     => undef,
+    validate => undef,
+    value    => undef,
+);
+
+my @test_fields = (
+    {
+        comment => 'just the name of the field',
+        fieldspec => 'name',
+        expecting => { name => 'name' },
+    },
+    {
+        comment => 'different single word label',
+        fieldspec => 'name|Moniker',
+        expecting => {
+            name => 'name',
+            label => 'Moniker',
+        },
+    },
+    {
+        comment => 'multi-word label',
+        fieldspec => 'name|Full name',
+        expecting => {
+            name => 'name',
+            label => 'Full name',
+        },
+    },
+    {
+        comment => 'quoted label',
+        fieldspec => "name|'Name/nickname'",
+        expecting => {
+            name => 'name',
+            label => 'Name/nickname',
+        },
+    },
+    {
+        comment => 'quoted label with \ escapes',
+        fieldspec => "name|'Your \\'name\\''",
+        expecting => {
+            name => 'name',
+            label => "Your 'name'",
+        },
+    },
+
+    # field types
+    {
+        comment => 'field type "text"',
+        fieldspec => 'name:text',
+        expecting => { 
+            name => 'name',
+            type => 'text',
+        },
+    },
+    {
+        comment => 'field type "textarea"',
+        fieldspec => 'name:textarea',
+        expecting => { 
+            name => 'name',
+            type => 'textarea',
+        },
+    },
+    {
+        comment => 'field type "password"',
+        fieldspec => 'name:password',
+        expecting => { 
+            name => 'name',
+            type => 'password',
+        },
+    },
+    {
+        comment => 'field type "checkbox"',
+        fieldspec => 'name:checkbox',
+        expecting => { 
+            name => 'name',
+            type => 'checkbox',
+        },
+    },
+    {
+        comment => 'field type "radio"',
+        fieldspec => 'name:radio',
+        expecting => { 
+            name => 'name',
+            type => 'radio',
+        },
+    },
+    {
+        comment => 'field type "select"',
+        fieldspec => 'name:select',
+        expecting => { 
+            name => 'name',
+            type => 'select',
+        },
+    },
+
+
+    {
+        comment => 'text field with size',
+        fieldspec => 'name[25]:text',
+        expecting => { 
+            name => 'name',
+            type => 'text',
+            size => 25,
+        },
+    },
+    {
+        comment => 'text field with size and maxlength',
+        fieldspec => 'name[25!]:text',
+        expecting => { 
+            name => 'name',
+            type => 'text',
+            size => 25,
+            maxlength => 25,
+        },
+    },
+    {
+        comment => 'textarea field with size (rows and columns)',
+        fieldspec => 'name[4,40]:textarea',
+        expecting => { 
+            name => 'name',
+            type => 'textarea',
+            rows => 4,
+            cols => 40,
+        },
+    },
+
+);
+
+foreach (@test_fields) {
+    my $field = $p->field($_->{fieldspec});
+    ok(eq_hash($field, { %base, %{ $_->{expecting} } }), $_->{comment});
+}
Index: trunk/t/pod-coverage.t
===================================================================
--- trunk/t/pod-coverage.t	(revision 76)
+++ trunk/t/pod-coverage.t	(revision 76)
@@ -0,0 +1,9 @@
+use Test::More;
+eval "use Test::Pod::Coverage 1.00";
+plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@;
+
+plan tests => 2;
+
+# init is a overridden base class method
+pod_coverage_ok("Text::FormBuilder", { trustme => [qr/^init$/] } );
+pod_coverage_ok("Class::ParseText::Base");
