|
Packit |
20a882 |
use strict;
|
|
Packit |
20a882 |
use warnings;
|
|
Packit |
20a882 |
use FindBin;
|
|
Packit |
20a882 |
use File::Spec; # try to keep pathnames neutral
|
|
Packit |
20a882 |
use Test::More 0.96;
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
use lib 't/lib';
|
|
Packit |
20a882 |
use Test::HTML::Formatter;
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
Test::HTML::Formatter->test_files(
|
|
Packit |
20a882 |
class_suffix => 'FormatText',
|
|
Packit |
20a882 |
filename_extension => 'txt',
|
|
Packit |
20a882 |
callback_test_file => sub {
|
|
Packit |
20a882 |
my ( $self, $infile, $expfile ) = @_;
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
# read file content - use older style slurp
|
|
Packit |
20a882 |
local (*FH);
|
|
Packit |
20a882 |
open( FH, $expfile ) or die "Unable to open expected file $expfile - $!\n";
|
|
Packit |
20a882 |
my $exp_text = do { local ($/); <FH> };
|
|
Packit |
20a882 |
my $exp_lines = [ split( /\n/, $exp_text ) ];
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
# read and convert file
|
|
Packit |
20a882 |
my $text = HTML::FormatText->format_file( $infile, leftmargin => 5, rightmargin => 50 );
|
|
Packit |
20a882 |
my $got_lines = [ split( /\n/, $text ) ];
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
ok( length($text), " $infile: Returned a string from conversion" );
|
|
Packit |
20a882 |
is_deeply( $got_lines, $exp_lines, " $infile: Correct text string returned" );
|
|
Packit |
20a882 |
}
|
|
Packit |
20a882 |
);
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
# build a set of tests
|
|
Packit |
20a882 |
my @test_fragments = (
|
|
Packit |
20a882 |
[ "", "\n", "Empty paragraph" ],
|
|
Packit |
20a882 |
[ "", "\n", "Double empty paragraph" ],
|
|
Packit |
20a882 |
[ "This is paragraph ", " This is paragraph\n", "Minimal paragraph" ],
|
|
Packit |
20a882 |
[ "Two Paragraphs ", " Two\n\n Paragraphs\n", "Two Paragraphs" ],
|
|
Packit |
20a882 |
[ "An italicised paragraph ", " An italicised paragraph\n", "Em Formatted paragraph" ],
|
|
Packit |
20a882 |
[ "A bold paragraph ", " A bold paragraph\n", "Strong Formatted paragraph" ],
|
|
Packit |
20a882 |
[ "- one
- two
- three
",
|
|
Packit |
20a882 |
" 1. one\n\n 2. two\n\n 3. three\n",
|
|
Packit |
20a882 |
"Numbered list"
|
|
Packit |
20a882 |
],
|
|
Packit |
20a882 |
[ "", " * one\n\n * two\n\n * three\n", "Bullet list" ],
|
|
Packit |
20a882 |
);
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
# and step through them
|
|
Packit |
20a882 |
ok( scalar(@test_fragments), 'Fragment tests' );
|
|
Packit |
20a882 |
foreach my $frags (@test_fragments) {
|
|
Packit |
20a882 |
my $fmt = HTML::FormatText->new();
|
|
Packit |
20a882 |
is( $fmt->format_from_string( $frags->[0] ), $frags->[1], ( ' ' . $frags->[2] ) );
|
|
Packit |
20a882 |
}
|
|
Packit |
20a882 |
|
|
Packit |
20a882 |
# finish up
|
|
Packit |
20a882 |
done_testing();
|