package tests::ReportParserHTMLDocBookFormatterTest; use strict; use base qw/ Lire::Test::TestCase /; use Lire::ReportParser::HTMLDocBookFormatter qw/ dbk2html /; sub set_up { my $self = $_[0]; $self->SUPER::set_up(); return; } sub tear_down { my $self = $_[0]; $self->SUPER::tear_down(); return; } sub _element_is_normalized { my ( $self, $element ) = @_; $self->annotate( "_element_is_normalized: $element\n" ); my $dbk_text = "Wawa <$element>bobo zozo"; my $e_text = <Wawa bobo zozo EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text, 200 ) ); return; } sub _test_admonition { my ( $self, $admonition ) = @_; $self->annotate( "testing admonition '$admonition'\n" ); my $dbk_text = "<$admonition>test"; my $uc_admonition = ucfirst( $admonition ); my $e_text = <<_EOD;
$uc_admonition:
test
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); $dbk_text = "<$admonition>paragraph 1paragraph 2"; $e_text = <<_EOD;
$uc_admonition:
paragraph 1
paragraph 2
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } sub _test_autopcdata { my ( $self, $data ) = @_; $self->annotate( "testing autopcdata '$data'\n" ); $self->_element_is_normalized( $data ); return; } sub test_admonitions { my $self = $_[0]; my @admonitions = ( 'note', 'tip', 'important', 'caution', 'warning' ); foreach my $admonition ( @admonitions ) { $self->_test_admonition( $admonition ); } return; } sub test_all_autopcdata { my $self = $_[0]; foreach my $data ( qw/ phrase trademark wordasword action application command database errorcode errortype filename hardware interface keycap keycode keycombo keysym literal markup replaceable returnvalue sgmltag systemitem token productname productnumber / ) { $self->_test_autopcdata( $data ); } return; } sub test_orderedlist { my $self = $_[0]; my $dbk_text = 'test1test2'; my $e_text = <<_EOD;
  1. \t
    test1
  2. \t
    test2
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } sub test_itemizedlist { my $self = $_[0]; my $dbk_text = 'test1test2'; my $e_text = <<_EOD; _EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } # varlistentry and listitem are tested here too sub test_variablelist { my $self = $_[0]; my $dbk_text = <<_EOD; This is a title for our list A paragraph before the actual list term 1 definition 1 wawa term wawa super text _EOD my $e_text = <<_EOD;
This is a title for our list
A paragraph before the actual list
\t
term 1
\t
\t
definition 1
\t
\t
wawa term
\t
\t
wawa super text
\t
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } sub test_para { my $self = $_[0]; my $dbk_text = 'This is a very very very very very very very very very very very very very very very long paragraph'; my $e_text = <<_EOD;
This is a very very very very very very very very very very very very very very very long paragraph
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } sub test_ulink { my $self = $_[0]; my $dbk_text = 'Go to The LogReport Foundation website.'; my $e_text = <<_EOD;
Go to The LogReport Foundation website.
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } sub test_email { my $self = $_[0]; my $dbk_text = 'Wolfgang@logreport.org'; my $e_text = <<_EOD;
Wolfgang\@logreport.org
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text, 200 ) ); return; } sub _test_variable { my ( $self, $vartype ) = @_; my $dbk_text = "<$vartype>TERM"; my $e_text = <<_EOD;
TERM
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text, 200 ) ); return; } sub test_variables { my $self = $_[0]; foreach my $vartype ( qw/ varname envar constant structfield structname function option optional parameter classname symbol property type errorname / ) { $self->annotate( "testing variable type '$vartype'\n" ); $self->_test_variable( $vartype ); } } sub test_quote { my $self = $_[0]; my $dbk_text = 'Linux'; my $e_text = <<_EOD;
Linux
_EOD $self->assert_str_equals( $e_text, dbk2html( $dbk_text ) ); return; } 1;