Fix lockfile issue and improve tests for bulk feature downloads
[sgn.git] / t / SGN / Controller / Bulk.t
blob754e52a3cfc3fd50e5de73f515bb6e0c676f70fa
1 use strict;
2 use warnings;
3 use Test::More tests => 6;
5 use lib 't/lib';
6 use SGN::Test::Data qw/ create_test /;
7 use Catalyst::Test 'SGN';
8 use Digest::SHA1 qw/sha1_hex/;
9 use Data::Dumper;
11 use_ok 'SGN::Controller::Bulk';
12 use aliased 'SGN::Test::WWW::Mechanize' => 'Mech';
14 my $mech = Mech->new;
16 my $poly_cvterm     = create_test('Cv::Cvterm',        { name => 'polypeptide' });
17 my $poly_feature    = create_test('Sequence::Feature', { type => $poly_cvterm  });
19 # TODO: these tests depend on live data.
20 my $ids =<<IDS;
21 SGN-E398616
22 SGN-E540202
23 SGN-E541638
24 C06HBa0222J18.1
25 C06HBa0229B01.1
26 AP009263
27 AP009262
28 SGN-E200027
29 SGN-E201684
30 SGN-E587346
31 SGN-E443637
32 SGN-E403108
33 IDS
35 $mech->with_test_level( local => sub {
36     $mech->get_ok('/bulk/feature');
37     $mech->submit_form_ok({
38         form_name => "bulk_feature",
39         fields    => {
40             ids => $ids,
41         },
42     }, "submit bulk_feature form");
43     my $sha1  = sha1_hex($ids);
44     my @links = $mech->find_all_links( url_regex => qr{/bulk/feature/download/$sha1\.fasta} );
46     cmp_ok(@links, '==', 1, "found one FASTA download link for $sha1.fasta");
48     @links = $mech->find_all_links( url_regex => qr{/bulk/feature/download/.*\.fasta} );
50     cmp_ok(@links, '==', 0, "found no other download links") or diag("Unexpected download links" . Dumper [ map {$_->url} @links ]);
52     #diag $mech->content;
53 });
55 $mech->with_test_level( local => sub {
56     # attempt to post an empty list
57     $mech->post('/bulk/feature/download/', { ids => "" }  );
58     is($mech->status,400);
59 });
61 done_testing();