b703b7a035608cf81cd24fb0ed017cc46b1f3914
[app-musicexpo.git] / t / musicexpo-cache.t
1 #!/usr/bin/perl -w
2 use v5.14;
3 use warnings;
4
5 use Test::More tests => 3;
6
7 use File::Temp qw/tempfile/;
8
9 my $file;
10
11 BEGIN {
12 $file = (tempfile UNLINK => 1)[1];
13 @ARGV = (-cache => $file, sort <empty*>);
14 }
15 BEGIN { use_ok('App::MusicExpo'); }
16
17 close STDOUT;
18 my $out;
19 open STDOUT, '>', \$out;
20
21 my %handled = map { $_ => 1 } App::MusicExpo::extensions_handled;
22
23 my $prefix = '<tr><td class="title"><a href="#silence-cellule" data-hash="#silence-cellule">Cellule</a><td class="artist">Silence<td class="album">L&#39;autre endroit<td class="genre">Electro<td class="track">01/09<td class="year">2005<td class="formats">';
24
25 my @lines;
26 if ($handled{'.flac'} && $handled{'.ogg'}) {
27 push @lines, $prefix . '<a href="/music/empty.flac">FLAC</a> <a href="/music/empty.ogg">Vorbis</a> '
28 } elsif ($handled{'.flac'}) {
29 push @lines, $prefix . '<a href="/music/empty.flac">FLAC</a> '
30 } elsif ($handled{'.ogg'}) {
31 push @lines, $prefix . '<a href="/music/empty.ogg">Vorbis</a> '
32 }
33
34 push @lines, $prefix . '<a href="/music/empty2.opus">Opus</a> ' if $handled{'.opus'};
35 push @lines, $prefix . '<a href="/music/empty3.mp3">MP3</a> ' if $handled{'.mp3'};
36 push @lines, '<td class="album">L&#39;autre endroit<td class="genre">Electro<td class="track">1/9<td class="year">2005<td class="formats"><a href="/music/empty4.aac">AAC</a> ' if $handled{'.aac'};
37
38 my $contents = join "\n", @lines;
39
40 App::MusicExpo->run;
41
42 is $out, <<"OUT", 'output is correct';
43 <!DOCTYPE html>
44 <title>Music</title>
45 <meta charset="utf-8">
46 <link rel="stylesheet" href="musicexpo.css">
47 <script async defer type="application/javascript" src="player.js"></script>
48
49 <div id="player"></div>
50
51 <table border>
52 <thead>
53 <tr><th>Title<th>Artist<th>Album<th>Genre<th>Track<th>Year<th>Type
54 <tbody>$contents
55 </table>
56 OUT
57
58 ok -e $file, 'cache exists';
This page took 0.02687 seconds and 3 git commands to generate.