#!/usr/bin/perl use strict; use warnings; use utf8; use ChordPro::Testing; use ChordPro::Songbook; plan tests => 12; # Prevent a dummy {body} for chord grids. $config->{diagrams}->{show} = 0; my $s = ChordPro::Songbook->new; # Tites flush left. my $data = <<EOD; {title: Swing Low Sweet Chariot} {titles: left} EOD eval { $s->parse_file(\$data) } or diag("$@"); ok( scalar( @{ $s->{songs} } ) == 1, "One song" ); isa_ok( $s->{songs}->[0], 'ChordPro::Song', "It's a song" ); #use Data::Dumper; warn(Dumper($s)); my $song = { 'settings' => { 'titles' => 'left' }, 'title' => 'Swing Low Sweet Chariot', 'source' => { file => "__STRING__", line => 1 }, 'structure' => 'linear', 'system' => 'common', 'meta' => { 'songindex' => 1, 'title' => [ 'Swing Low Sweet Chariot' ] }, }; is_deeply( { %{ $s->{songs}->[0] } }, $song, "Titles flush left" ); $s = ChordPro::Songbook->new; # Titles flush right. $data = <<EOD; {title: Swing Low Sweet Chariot} {titles: right} EOD eval { $s->parse_file(\$data) } or diag("$@"); ok( scalar( @{ $s->{songs} } ) == 1, "One song" ); isa_ok( $s->{songs}->[0], 'ChordPro::Song', "It's a song" ); #use Data::Dumper; warn(Dumper($s)); $song = { 'settings' => { 'titles' => 'right' }, 'title' => 'Swing Low Sweet Chariot', 'source' => { file => "__STRING__", line => 1 }, 'structure' => 'linear', 'system' => 'common', 'chordsinfo' => {}, 'meta' => { 'songindex' => 1, 'title' => [ 'Swing Low Sweet Chariot' ] }, }; is_deeply( { %{ $s->{songs}->[0] } }, $song, "Titles flush right" ); $s = ChordPro::Songbook->new; # Chord grids. Added automatically. $data = <<EOD; {title: Swing Low Sweet Chariot} {titles: center} EOD eval { $s->parse_file(\$data) } or diag("$@"); ok( scalar( @{ $s->{songs} } ) == 1, "One song" ); isa_ok( $s->{songs}->[0], 'ChordPro::Song', "It's a song" ); #use Data::Dumper; warn(Dumper($s)); $song = { 'settings' => { 'titles' => 'center', }, 'title' => 'Swing Low Sweet Chariot', 'source' => { file => "__STRING__", line => 1 }, 'structure' => 'linear', 'system' => 'common', 'chordsinfo' => {}, 'meta' => { 'songindex' => 1, 'title' => [ 'Swing Low Sweet Chariot' ] }, }; is_deeply( { %{ $s->{songs}->[0] } }, $song, "Titles centered" ); $s = ChordPro::Songbook->new; # Chord grids. Added automatically. $data = <<EOD; {title: Swing Low Sweet Chariot} {titles: centre} EOD eval { $s->parse_file(\$data) } or diag("$@"); ok( scalar( @{ $s->{songs} } ) == 1, "One song" ); isa_ok( $s->{songs}->[0], 'ChordPro::Song', "It's a song" ); #use Data::Dumper; warn(Dumper($s)); $song = { 'settings' => { 'titles' => 'center', }, 'title' => 'Swing Low Sweet Chariot', 'source' => { file => "__STRING__", line => 1 }, 'structure' => 'linear', 'system' => 'common', 'chordsinfo' => {}, 'meta' => { 'songindex' => 1, 'title' => [ 'Swing Low Sweet Chariot' ] }, }; is_deeply( { %{ $s->{songs}->[0] } }, $song, "Titles centred" );