package tests::DocBookParserTest;

use strict;

use base qw/Lire::Test::TestCase /;

use Lire::DocBookParser;

sub new {
    my $self =  shift->SUPER::new( @_ );

    $self->{'parser'} = new Lire::DocBookParser();
    return $self;
}

sub set_up {
    my $self = $_[0];
    $self->SUPER::set_up();

    return;
}

sub tear_down {
    my $self = $_[0];
    $self->SUPER::tear_down();

    return;
}

sub test_parse_para {
    my $self = $_[0];

    my $dbk = "<para>This is multi-line\n\ttest.</para>";
    $self->assert_str_equals( $dbk, $self->{'parser'}->parse( $dbk ) );
}

sub test_parse_variablelist {
    my $self = $_[0];

    my $dbk = <<EOD;
<para>
  <variablelist>
    <title>A title</title>
    <varlistentry>
      <term>A term</term>
      <term><acronym>A.T.E.R.M</acronym></term>
      <listitem>
        <para>A definition.</para>
        <para>With more explanation.</para>
      </listitem>
    </varlistentry>
  </variablelist>
</para>
EOD
    chomp $dbk;
    $self->assert_str_equals( $dbk, $self->{'parser'}->parse( $dbk ) );
}

sub test_parse_warning {
    my $self = $_[0];
    my $dbk = <<EOD;
<para>
  <warning>
    <title>These are the <emphasis>real</emphasis> warnings</title>
    <itemizedlist>
      <listitem><para>First warning.</para></listitem>
      <listitem><para>Second warning.</para></listitem>
    </itemizedlist>
    <para><tip><para>You can ignore the warning.</para></tip></para>
  </warning>
</para>
EOD
    chomp $dbk;
    $self->assert_str_equals( $dbk, $self->{'parser'}->parse( $dbk ) );

}

1;


syntax highlighted by Code2HTML, v. 0.9.1