Skip to content

Commit

Permalink
renamed has_errors to has_error
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Sep 27, 2013
1 parent 17ccd89 commit 484e68c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 22 deletions.
2 changes: 1 addition & 1 deletion lib/Mojolicious/Plugin/TagHelpers.pm
Expand Up @@ -229,7 +229,7 @@ sub _text_area {

sub _wrap {
my ($self, $name, $html) = @_;
return $html unless $self->validation->has_errors($name);
return $html unless $self->validation->has_error($name);
return _tag('div', class => 'fields_with_errors', sub {$html});
}

Expand Down
12 changes: 5 additions & 7 deletions lib/Mojolicious/Validator/Validation.pm
Expand Up @@ -47,9 +47,7 @@ sub errors { Mojo::Collection->new(@{shift->{errors}{shift()} // []}) }

sub has_data { !!keys %{shift->input} }

sub has_errors {
$_[1] ? exists $_[0]{errors}{$_[1]} : !!keys %{$_[0]{errors}};
}
sub has_error { $_[1] ? exists $_[0]{errors}{$_[1]} : !!keys %{$_[0]{errors}} }

sub is_valid { exists $_[0]->output->{$_[1] // $_[0]->topic} }

Expand Down Expand Up @@ -168,7 +166,7 @@ Perform validation check.
$validation = $validation->error('This went wrong.');
Set custom error message for next validation check.
Set custom error message for next validation C<check> or C<topic> change.
=head2 errors
Expand All @@ -183,10 +181,10 @@ validation checks.
Check if C<input> is available for validation.
=head2 has_errors
=head2 has_error
my $success = $validation->has_errors;
my $success = $validation->has_errors('foo');
my $success = $validation->has_error;
my $success = $validation->has_error('foo');
Check if validation resulted in errors, defaults to checking all fields.
Expand Down
30 changes: 16 additions & 14 deletions t/mojolicious/validation_lite_app.t
Expand Up @@ -10,9 +10,11 @@ use Mojolicious::Lite;
use Test::Mojo;

get '/' => sub {
my $self = shift;
my $self = shift;

my $validation = $self->validation;
return $self->render unless $validation->has_data;

$validation->required('foo')->size(2, 5);
$validation->optional('bar')->size(2, 5);
$validation->optional('baz')->size(2, 5);
Expand All @@ -27,19 +29,19 @@ ok $validation->required('foo')->is_valid, 'valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
is $validation->param('foo'), 'bar', 'right value';
is_deeply [$validation->param], ['foo'], 'right names';
ok !$validation->has_errors, 'no errors';
ok !$validation->has_error, 'no errors';
ok $validation->optional('baz')->is_valid, 'valid';
is_deeply $validation->output, {foo => 'bar', baz => 'yada'}, 'right result';
is $validation->param('baz'), 'yada', 'right value';
is_deeply [$validation->param], [qw(baz foo)], 'right names';
is_deeply [$validation->param([qw(foo baz)])], [qw(bar yada)], 'right values';
ok !$validation->has_errors, 'no errors';
ok !$validation->has_error, 'no errors';
ok !$validation->optional('does_not_exist')->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar', baz => 'yada'}, 'right result';
ok !$validation->has_errors, 'no errors';
ok !$validation->has_error, 'no errors';
ok !$validation->required('does_not_exist')->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar', baz => 'yada'}, 'right result';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('does_not_exist')->each],
['Value is required.'], 'right error';

Expand All @@ -48,45 +50,45 @@ $validation = $t->app->validation;
$validation->input({foo => 'bar', baz => 'yada', yada => 'yada'});
ok $validation->required('foo')->size(1, 3)->is_valid, 'valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok !$validation->has_errors, 'no errors';
ok !$validation->has_error, 'no errors';
ok !$validation->required('baz')->size(1, 3)->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('baz')->each],
['Value needs to be 1-3 characters long.'], 'right error';
ok !$validation->required('yada')->size(5, 10)->is_valid, 'not valid';
is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('yada')->each],
['Value needs to be 5-10 characters long.'], 'right error';

# Custom errors
$validation = $t->app->validation;
ok !$validation->has_errors('bar'), 'no errors';
ok !$validation->has_error('bar'), 'no errors';
$validation->input({foo => 'bar', yada => 'yada'});
ok !$validation->error('Bar is required.')->required('bar')->is_valid,
'not valid';
is_deeply $validation->output, {}, 'right result';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('bar')->each], ['Bar is required.'],
'right error';
ok !$validation->required('baz')->is_valid, 'not valid';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('baz')->each], ['Value is required.'],
'right error';
ok !$validation->required('foo')->error('Foo is too small.')->size(25, 100)
->is_valid, 'not valid';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('foo')->each], ['Foo is too small.'],
'right error';
is $validation->topic, 'foo', 'right topic';
ok !$validation->error('Failed!')->required('yada')->size(25, 100)->is_valid,
'not valid';
ok $validation->has_errors, 'has errors';
ok $validation->has_error, 'has error';
is_deeply [$validation->errors('yada')->each],
['Value needs to be 25-100 characters long.'], 'right error';
is $validation->topic, 'yada', 'right topic';
ok $validation->has_errors('bar'), 'has errors';
ok $validation->has_error('bar'), 'has error';

# No validation
$t->get_ok('/')->status_is(200)->element_exists('form > input')
Expand Down

0 comments on commit 484e68c

Please sign in to comment.