use strict; use Test::More tests => 37; use Test::Exception; use lib "t"; use TestAppSetup; use_ok('Catalyst::Test', 'BookShelf'); test_columns("book", "add", [ qw/ Title Author Genre Borrower Borrowed Format ISBN Publisher / ], [ qw/ Year / ] ); test_columns("book", "list", [ qw/ Borrower Author Genre Format Borrowed Title ISBN / ], [qw/ Publisher Year Pages /]); test_columns("borrower", "list", [ qw/ Email Name Url / ], [ qw/ Phone / ] ); test_columns("borrower", "add", [ qw/ Email Name Url Phone / ]); test_columns("borrower", "view/1", [ qw/ Email Name Url Phone / ]); sub test_columns { my ($controller, $action, $column_names, $missing_column_names) = @_; $missing_column_names ||= []; my $html; diag("Check column existance and naming (/$controller/$action)"); ok($html = get("/$controller/$action"), "GET /$controller/$action ok"); for my $name (@$column_names) { like($html, qr/$name/si, " Colname ($name) ok"); } for my $name (@$missing_column_names) { unlike($html, qr/$name/si, " No colname ($name) ok"); } } __END__