Perl 如何验证文件名?
我有一个函数,为用户化身返回一个文件,我想为它创建测试。我要做的是检查文件名 这就是功能:Perl 如何验证文件名?,perl,testing,mojolicious,Perl,Testing,Mojolicious,我有一个函数,为用户化身返回一个文件,我想为它创建测试。我要做的是检查文件名 这就是功能: sub get_avatar { my $self = shift; my $username = $self->stash('username'); my $home = Mojo::Home->new; $home->detect('Project'); my $path = $home->child('users', 'avatars', &q
sub get_avatar {
my $self = shift;
my $username = $self->stash('username');
my $home = Mojo::Home->new;
$home->detect('Project');
my $path = $home->child('users', 'avatars', "$username");
$path = $home->child('img', 'default.png') if !(-e $path);
$self->render_file('filepath' => $path);
}
这就是测试:
$file = $t->get_ok('/user/username/avatar')->status_is(200);
//use Data::Dumper;
//diag Dumper($file);
ok $file =~ 'username';
我想检查$file的名称是否等同于“username”(来自服务器的文件名)或“default”(如果是默认的化身)。不要使用文件路径。使用实际图像。创建两个小的测试图像。它们可以是2x2像素的PNG文件。可能是单色的,但不同。有一个是你的默认之一 然后将其序列化,并将其作为字符串放入测试中。通过相同的序列化运行
$t->tx->res->body
,并比较这两者
如果需要,还可以让测试在运行代码之前部署该映像,这样应用程序就不依赖于映像的存在。根据
$t->get_ok()的返回值
是允许链接测试的测试对象$t
。/user/username/avatar是一种为个人资料照片返回图像的路由,我不知道如何检查该文件的名称以确定其是否正确。也许您可以使用content\u disposition
参数来提供文件名?看。有关内容处置
标题的详细信息