use strict;
use Test::More;
use vars qw(%modules);
BEGIN {
$modules{pureperl} = \&run_pureperl;
eval { require XML::XPath; $XML::XPath::VERSION >= 1.13 and $modules{xpath} = \&run_xpath };
eval { require XML::LibXML; $modules{libxml} = \&run_libxml };
};
sub main::runtests {
my ($count,$code) = @_;
my @candidates = (sort keys %modules);
plan( tests => 1+ $count * scalar @candidates );
use_ok('Test::HTML::Content');
for my $implementation (@candidates) {
my $test = $modules{$implementation};
$test->($count,$code);
};
};
sub run_libxml {
my ($count,$code) = @_;
Test::HTML::Content::install_libxml();
$code->('XML::LibXML');
};
sub run_xpath {
my ($count,$code) = @_;
Test::HTML::Content::install_xpath();
$code->('XML::XPath');
};
sub run_pureperl {
my ($count,$code) = @_;
Test::HTML::Content::install_pureperl();
$code->('PurePerl');
};
1;