The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

#!/usr/bin/perl -w
use strict;
use warnings;
use Sub::Override;
use Test::More tests => 16; 
my $CLASS;

BEGIN {
    chdir 't' if -d 't';
    unshift @INC => '../lib';
    $CLASS = 'HTML::TokeParser::Simple';
    use_ok($CLASS) || die;
}

my $test_html_file = 'data/test.html';
my $parser1 = $CLASS->new(file => $test_html_file);
my $token1;
for (0 .. 16) {
    $token1 = $parser1->get_token;
}
my $parser2 = $CLASS->new(file => $test_html_file);
my $token2  = $parser2->get_tag('body');

can_ok($token1, '_get_text');
can_ok($token2, '_get_text');
is($token1->_get_text, $token2->_get_text,
    '... and _get_text should return the same value regardless of source');

# <body alink="#0000ff" bgcolor="#ffffff">
can_ok($token1, '_get_attrseq');
can_ok($token2, '_get_attrseq');
is_deeply($token1->_get_attrseq, $token2->_get_attrseq,
    '... and _get_attrseq should return the same value regardless of source');

my @attrseq = qw/alink bgcolor/;
is_deeply($token1->_get_attrseq, \@attrseq,
    '... and it should match the correct attribute sequence');

can_ok($token1, '_get_attr');
can_ok($token2, '_get_attr');
is_deeply($token1->_get_attr, $token2->_get_attr,
    '... and _get_attr should return the same value regardless of source');

my %attr = (
    alink   => '#0000ff',
    bgcolor => '#ffffff',
);
is_deeply($token1->_get_attr, \%attr,
    '... and it should match the correct attributes');

can_ok($token1, '_get_tag');
can_ok($token2, '_get_tag');
is_deeply($token1->_get_tag, $token2->_get_tag,
    '... and _get_tag should return the same value regardless of source');

is($token1->_get_tag, 'body',
    '... and it should match the correct tag');