diff options
-rw-r--r-- | Changes | 4 | ||||
-rw-r--r-- | MANIFEST | 3 | ||||
-rw-r--r-- | Makefile.PL | 4 | ||||
-rw-r--r-- | README.markdown | 4 | ||||
-rw-r--r-- | lib/Music/Lyrics/LRC.pm | 6 | ||||
-rw-r--r-- | t/basic.t | 2 | ||||
-rw-r--r-- | t/japh.lrc | 10 | ||||
-rw-r--r-- | t/load.t | 37 | ||||
-rw-r--r-- | t/save.t | 26 |
9 files changed, 87 insertions, 9 deletions
@@ -1,5 +1,9 @@ Revision history for Music-Lyrics-LRC +0.11 2017-12-08 + + - Add basic load() and save() method tests + 0.10 2017-12-06 - Add dependency links to documentation @@ -5,6 +5,9 @@ Makefile.PL MANIFEST README t/basic.t +t/japh.lrc +t/load.t +t/save.t xt/manifest.t xt/pod-coverage.t xt/pod.t diff --git a/Makefile.PL b/Makefile.PL index cac8e48..2f35c7c 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -15,6 +15,8 @@ WriteMakefile( 'ExtUtils::MakeMaker' => '0', }, BUILD_REQUIRES => { + 'English' => '0', + 'File::Temp' => '0', 'Test::More' => '0', }, PREREQ_PM => { @@ -25,7 +27,7 @@ WriteMakefile( 'meta-spec' => { version => 2 }, provides => { 'Music::Lyrics::LRC' => { - version => '0.10', + version => '0.11', file => 'lib/Music/Lyrics/LRC.pm', }, }, diff --git a/README.markdown b/README.markdown index 742f74e..c4d45ce 100644 --- a/README.markdown +++ b/README.markdown @@ -4,7 +4,7 @@ Music::Lyrics::LRC - Manipulate LRC karaoke timed lyrics files # VERSION -Version 0.10 +Version 0.11 # DESCRIPTION @@ -170,8 +170,6 @@ Fractional seconds of any length can be parsed, and preserved in the millisecond count return by `lyrics()`, but any resolution beyond 2 decimal places is lost on `save()`. -The test suite is skeletal, and needs a lot of fleshing out. - # AUTHOR Tom Ryder `<tom@sanctum.geek.nz>` diff --git a/lib/Music/Lyrics/LRC.pm b/lib/Music/Lyrics/LRC.pm index 4f8d3fb..842702d 100644 --- a/lib/Music/Lyrics/LRC.pm +++ b/lib/Music/Lyrics/LRC.pm @@ -13,7 +13,7 @@ use Carp; use English '-no_match_vars'; # Declare package version -our $VERSION = '0.10'; +our $VERSION = '0.11'; # Patterns to match elements of the LRC file; these are somewhat tolerant our %RE = ( @@ -272,7 +272,7 @@ Music::Lyrics::LRC - Manipulate LRC karaoke timed lyrics files =head1 VERSION -Version 0.10 +Version 0.11 =head1 DESCRIPTION @@ -454,8 +454,6 @@ Fractional seconds of any length can be parsed, and preserved in the millisecond count return by C<lyrics()>, but any resolution beyond 2 decimal places is lost on C<save()>. -The test suite is skeletal, and needs a lot of fleshing out. - =head1 AUTHOR Tom Ryder C<< <tom@sanctum.geek.nz> >> @@ -8,7 +8,7 @@ use Test::More tests => 9; use Music::Lyrics::LRC; -our $VERSION = '0.10'; +our $VERSION = '0.11'; my $lrc = Music::Lyrics::LRC->new(); ok( defined $lrc, 'constructed' ); diff --git a/t/japh.lrc b/t/japh.lrc new file mode 100644 index 0000000..83ad9e4 --- /dev/null +++ b/t/japh.lrc @@ -0,0 +1,10 @@ +[ar:J A Phacker] +[ti:Just Another Perl Hacker] + +[01:53.53] I'm just another Perl hacker, +this line should get skipped + +[01:59]And you know the world's my oyster, +[01:56.560]Matchin' up the world. + +[02:02.4]And my language is its pearl. diff --git a/t/load.t b/t/load.t new file mode 100644 index 0000000..17242f2 --- /dev/null +++ b/t/load.t @@ -0,0 +1,37 @@ +#!perl -T + +use strict; +use warnings; +use utf8; + +use 5.006; + +use English qw(-no_match_vars); +use Test::More tests => 11; + +use Music::Lyrics::LRC; + +our $VERSION = '0.11'; + +my $lrc = Music::Lyrics::LRC->new(); + +open my $fh, '<', 't/japh.lrc' or die "$ERRNO\n"; +ok( $lrc->load($fh), 'loaded' ); +close $fh or die "$ERRNO\n"; + +my %tags = %{ $lrc->tags }; +ok( keys %tags == 2, 'tags_count' ); + +my @lyrics = @{ $lrc->lyrics }; +ok( @lyrics == 4, 'lines_count' ); + +ok( $lyrics[0]{text} eq q{I'm just another Perl hacker,}, 'line_text_1' ); +ok( $lyrics[1]{text} eq q{Matchin' up the world.}, 'line_text_2' ); +ok( $lyrics[2]{text} eq q{And you know the world's my oyster,}, 'line_text_3' ); +ok( $lyrics[3]{text} eq q{And my language is its pearl.}, 'line_text_4' ); + +## no critic (ProhibitMagicNumbers) +ok( $lyrics[0]{time} == 113_530, 'line_time_1' ); +ok( $lyrics[1]{time} == 116_560, 'line_time_2' ); +ok( $lyrics[2]{time} == 119_000, 'line_time_3' ); +ok( $lyrics[3]{time} == 122_400, 'line_time_4' ); diff --git a/t/save.t b/t/save.t new file mode 100644 index 0000000..ad55df8 --- /dev/null +++ b/t/save.t @@ -0,0 +1,26 @@ +#!perl -T + +use strict; +use warnings; +use utf8; + +use 5.006; + +use English qw(-no_match_vars); +use File::Temp qw(tempfile); +use Test::More tests => 2; + +use Music::Lyrics::LRC; + +our $VERSION = '0.11'; + +my $lrc = Music::Lyrics::LRC->new(); +$lrc->set_tag( 'foo', 'bar' ); +$lrc->add_lyric( 0, 'lalala' ); +$lrc->add_lyric( 10, 'doremi' ); + +my ( $fh, $fn ) = tempfile(); +ok( $lrc->save($fh), 'save' ); +close $fh + or die "$ERRNO\n"; +ok( -s $fn == 44, 'length' ); ## no critic (ProhibitMagicNumbers) |