The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

#######################
# TESTING starts here #
#######################
use Test::More tests => 8;

###########################
# General module tests... #
###########################

my $module = 'EBook::MOBI';
use_ok( $module );

my $obj = $module->new();

isa_ok($obj, $module);

can_ok($obj, 'new');
can_ok($obj, 'add_content');
can_ok($obj, 'make');
can_ok($obj, 'print_mhtml');

my $in  = '';
my $out = '';
my $expected = '';

$in = <<EXAMPLE;
!h! head
! ! normal text
!b! bold text
! ! now that is simple line based markup!
EXAMPLE

$expected = <<EXAMPLE;
<html>
<head>
</head>
<body>
<h1>head</h1>
normal text<br />
<b>bold text</b><br />
now that is simple line based markup!<br />
</body>
</html>
EXAMPLE

$obj->add_content(data => $in, driver => 'EBook::MOBI::Driver::Example');
$obj->make();
$out = $obj->print_mhtml(1);

is($out, $expected, 'Tested EBook::MOBI::Driver::Example');
$obj->reset();

$in = <<POD;
=head1 head

normal text

B<bold text>

this is POD
POD

$expected = <<POD;
<html>
<head>
</head>
<body>
<h1>head</h1>
<p>normal text</p>
<p><b>bold text</b></p>
<p>this is POD</p>
</body>
</html>
POD

$obj->add_content(data => $in, driver => 'EBook::MOBI::Driver::POD');
$obj->make();
$out = $obj->print_mhtml(1);

is($out, $expected, 'Tested EBook::MOBI::Driver::POD');
$obj->reset();