package tests::ReportParserAsciiDocBookFormatterTest; use strict; use base qw/ Lire::Test::TestCase /; use Lire::ReportParser::AsciiDocBookFormatter qw/ dbk2txt /; 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 = <<_EOD; Wawa bobo zozo _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); 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, dbk2txt( $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/emphasis phrase trademark wordasword action application literal constant markup option optional parameter prompt property replaceable returnvalue sgmltag structfield structname symbol systemitem token type userinput varname/ ) { $self->_test_autopcdata( $data ); } return; } sub test_orderedlist { my $self = $_[0]; my $dbk_text = 'test1test2'; my $e_text = <<_EOD; 1. test1 2. test2 _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); return; } sub test_itemizedlist { my $self = $_[0]; my $dbk_text = 'test1test2'; my $e_text = <<_EOD; - test1 - test2 _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); return; } # varlistentry and listitem are tested here too sub test_variablelist { my $self = $_[0]; my $dbk_text = <<_EOD; The wawa generator Report store A folder containing report data _EOD my $e_text = <<_EOD; The wawa generator Report store \t A folder containing report data _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); $dbk_text = <<_EOD; A folder containing report data _EOD $e_text = <<_EOD; \t A folder containing report data _EOD $self->assert_str_equals( $e_text, dbk2txt( $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, dbk2txt( $dbk_text ) ); $self->assert_str_equals( " Test accentué.\n\n", dbk2txt( "Test accentué." ) ); 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 (http://www.logreport.org/) website. _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); return; } sub test_quote { my $self = $_[0]; my $dbk_text = 'Linux'; my $e_text = <<_EOD; "Linux" _EOD $self->assert_str_equals( $e_text, dbk2txt( $dbk_text ) ); return; } 1;