Blame t/03_text.t

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
    [   "
  1. one
  2. two
  3. three
",
Packit 20a882
        "     1. one\n\n     2. two\n\n     3. three\n",
Packit 20a882
        "Numbered list"
Packit 20a882
    ],
Packit 20a882
    [ "
  • one
  • two
  • three
", " * 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();