Skip to content

Commit

Permalink
rename file to upload
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Jun 26, 2015
1 parent c9da4c1 commit 488e3c2
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 22 deletions.
2 changes: 1 addition & 1 deletion Changes
@@ -1,7 +1,7 @@

6.13 2015-06-26
- Added support for validating file uploads.
- Added file check to Mojolicious::Validator.
- Added upload check to Mojolicious::Validator.

6.12 2015-06-18
- Welcome to the Mojolicious core team Dan Book.
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojolicious/Controller.pm
Expand Up @@ -930,7 +930,7 @@ excessively large, there's a 16MB limit by default.
# Validate file upload
my $validation = $c->validation;
$validation->required('tarball')->file->size(1, 1048576);
$validation->required('tarball')->upload->size(1, 1048576);
my $tarball = $validation->param('tarball');
=head2 write
Expand Down
22 changes: 11 additions & 11 deletions lib/Mojolicious/Validator.pm
Expand Up @@ -6,10 +6,10 @@ use Mojolicious::Validator::Validation;
has checks => sub {
{
equal_to => \&_equal_to,
file => sub { !ref $_[2] || !$_[2]->isa('Mojo::Upload') },
in => \&_in,
like => sub { $_[2] !~ $_[3] },
size => \&_size
like => sub { $_[2] !~ $_[3] },
size => \&_size,
upload => sub { !ref $_[2] || !$_[2]->isa('Mojo::Upload') }
};
};

Expand Down Expand Up @@ -70,12 +70,6 @@ These validation checks are available by default.
Value needs to be equal to the value of another field. Note that this check does
not work with file uploads for security reasons.
=head2 file
$validation = $validation->file;
Value needs to be a L<Mojo::Upload> object, representing a file upload.
=head2 in
$validation = $validation->in(qw(foo bar baz));
Expand All @@ -96,6 +90,12 @@ with file uploads for security reasons.
Value length needs to be between these two values.
=head2 upload
$validation = $validation->upload;
Value needs to be a L<Mojo::Upload> object, representing a file upload.
=head1 ATTRIBUTES
L<Mojolicious::Validator> implements the following attributes.
Expand All @@ -105,8 +105,8 @@ L<Mojolicious::Validator> implements the following attributes.
my $checks = $validator->checks;
$validator = $validator->checks({size => sub {...}});
Registered validation checks, by default only L</"equal_to">, L</"file">,
L</"in">, L</"like"> and L</"size"> are already defined.
Registered validation checks, by default only L</"equal_to">, L</"in">,
L</"like">, L</"size"> and L</"upload"> are already defined.
=head1 METHODS
Expand Down
18 changes: 9 additions & 9 deletions t/mojolicious/validation_lite_app.t
Expand Up @@ -26,7 +26,7 @@ any '/upload' => sub {
my $c = shift;
my $validation = $c->validation;
return $c->render unless $validation->has_data;
$validation->required('foo')->file;
$validation->required('foo')->upload;
};

any '/forgery' => sub {
Expand Down Expand Up @@ -81,21 +81,21 @@ ok $validation->has_error, 'has error';
is_deeply $validation->error('yada'), [qw(equal_to 1 foo)], 'right error';
is_deeply $validation->failed, [qw(baz yada)], 'right names';

# File
# Upload
$validation = $t->app->validation->input(
{
foo => Mojo::Upload->new,
bar => [Mojo::Upload->new, Mojo::Upload->new],
baz => [Mojo::Upload->new, 'test']
}
);
ok $validation->required('foo')->file->is_valid, 'valid';
ok $validation->required('bar')->file->is_valid, 'valid';
ok $validation->required('foo')->upload->is_valid, 'valid';
ok $validation->required('bar')->upload->is_valid, 'valid';
ok $validation->required('baz')->is_valid, 'valid';
ok !$validation->has_error, 'no error';
ok !$validation->file->is_valid, 'not valid';
ok !$validation->upload->is_valid, 'not valid';
ok $validation->has_error, 'has error';
is_deeply $validation->error('baz'), [qw(file 1)], 'right error';
is_deeply $validation->error('baz'), [qw(upload 1)], 'right error';
is_deeply $validation->failed, ['baz'], 'right names';

# In
Expand Down Expand Up @@ -140,16 +140,16 @@ is_deeply $validation->output, {foo => 'bar'}, 'right result';
ok $validation->has_error, 'has error';
is_deeply $validation->error('yada'), [qw(size 1 5 10)], 'right error';

# File size
# Upload size
$validation = $t->app->validation->input(
{
foo => [Mojo::Upload->new->tap(sub { $_->asset->add_chunk('valid') })],
bar => [Mojo::Upload->new->tap(sub { $_->asset->add_chunk('not valid') })]
}
);
ok $validation->required('foo')->file->size(1, 6)->is_valid, 'valid';
ok $validation->required('foo')->upload->size(1, 6)->is_valid, 'valid';
ok !$validation->has_error, 'no error';
ok !$validation->required('bar')->file->size(1, 6)->is_valid, 'not valid';
ok !$validation->required('bar')->upload->size(1, 6)->is_valid, 'not valid';
ok $validation->has_error, 'has error';
is_deeply $validation->error('bar'), [qw(size 1 1 6)], 'right error';
is_deeply $validation->failed, ['bar'], 'right names';
Expand Down

0 comments on commit 488e3c2

Please sign in to comment.