Skip to content

Commit

Permalink
* Use warn instead of error, when no profile set
Browse files Browse the repository at this point in the history
 * Added message bundle test

git-svn-id: http://svn.unknownplace.org/public/library/perl/trunk/Catalyst-Plugin-FormValidator-Simple-Auto@406 325430d6-99fa-0310-bb67-a757393f56df
  • Loading branch information
typester committed Dec 22, 2006
1 parent 33cfc9a commit f33a210
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 21 deletions.
18 changes: 0 additions & 18 deletions META.yml

This file was deleted.

5 changes: 2 additions & 3 deletions lib/Catalyst/Plugin/FormValidator/Simple/Auto.pm
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,10 @@ sub setup {
__PACKAGE__ . qq/: You need to load "Catalyst::Plugin::FormValidator::Simple"/ )
unless $c->isa('Catalyst::Plugin::FormValidator::Simple');

Catalyst::Exception->throw(
message => __PACKAGE__ . qq/: You must set validator profiles/ )
$c->log->warn( __PACKAGE__ . qq/: You must set validator profiles/ )
unless $config->{profiles};

if ( ref $config->{profiles} ne 'HASH' ) {
if ( $config->{profiles} and ref $config->{profiles} ne 'HASH' ) {
my $profiles = eval {
YAML::LoadFile( $config->{profiles} );
};
Expand Down
94 changes: 94 additions & 0 deletions t/04_bundle_message.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#!/usr/bin/env perl

use strict;
use warnings;

{
package TestApp;

use Catalyst qw/
FormValidator::Simple
FormValidator::Simple::Auto
/;

__PACKAGE__->config(
name => 'TestApp',
validator => {
profiles => {
action1 => {
param1 => [
{ rule => 'NOT_BLANK', message => 'NOT_BLANK!!!' },
{ rule => 'ASCII', message => 'ASCII!!!' },
],
},
action2_submit => { param1 => [ 'NOT_BLANK', 'ASCII' ], },
},
},
);
__PACKAGE__->setup;

sub action1 : Global {
my ( $self, $c ) = @_;

if ($c->form->has_error) {
$c->res->body( $c->form->message->get( $c->validator_profile, 'param1', $c->form->error('param1') ) );
}
else {
$c->res->body('no errors');
}
}

sub action2 : Global {
my ( $self, $c ) = @_;

if ($c->req->method eq 'POST') {
$c->forward('action2_submit');
}
else {
$c->res->body('no $c->form executed');
}
}

sub action2_submit : Private {
my ( $self, $c ) = @_;

if ($c->form->has_error) {
$c->res->body( $c->form->error('param1') );
}
else {
$c->res->body('no errors');
}
}
}

use Catalyst::Test 'TestApp';
use Test::Base;

plan tests => 14;

use HTTP::Request::Common;

# action driven validation
ok( my $res = request('/action1'), 'request ok' );
is( $res->content, 'NOT_BLANK!!!', 'is NOT_BLANK error');

ok( $res = request('/action1?param1=aaa bbb'), 'request ok' );
is( $res->content, 'ASCII!!!', 'is ASCII error');

ok( $res = request('/action1?param1=aaa'), 'request ok' );
is( $res->content, 'no errors', 'is no errors');


# forward driven validation
ok( $res = request(POST '/action2', [ param1 => '' ]), 'request ok' );
is( $res->content, 'NOT_BLANK', 'is NOT_BLANK error');

ok( $res = request(POST '/action2', [ param1 => 'aaa bbb' ]), 'request ok' );
is( $res->content, 'ASCII', 'is ASCII error');

ok( $res = request(POST '/action2', [ param1 => 'ab' ]), 'request ok' );
is( $res->content, 'no errors', 'is no errors');

ok( $res = request('/action2'), 'request ok' );
is( $res->content, 'no $c->form executed', 'is no $c->form executed');

0 comments on commit f33a210

Please sign in to comment.