The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use warnings;
use strict;

my $data_dir = "data";
$data_dir = "t/$data_dir" unless -d $data_dir;

use Test::More qw(no_plan);
use Log::Log4perl qw(:easy);
use File::Temp qw(tempfile);
use XML::Simple;

# Log::Log4perl->easy_init($DEBUG);

my($fh, $outfile) = tempfile(CLEANUP => 1);

use XML::RSS::FromHTML::Simple;

my $f = XML::RSS::FromHTML::Simple->new({
    html_file => "$data_dir/art_eng.html",
    base_url  => "http://perlmeister.com",
    rss_file  => $outfile,
});

$f->link_filter( sub {
    my($url, $text) = @_;
    # print "URL=$url\n";
    if($url =~ m#linux-magazine\.com/#) {
        return 1;
    } else {
        return 0;
    }
});

$f->make_rss();

ok(-s $outfile, "RSS file created");

  # Read XML file back in
my $data = XMLin($outfile);

is($data->{item}->[0]->{link}, 
   'http://www.linux-magazine.com/issue/71/Perl_Link_Spam.pdf', 
   "Check RSS (first item)");

my %urls = map { $_->{link} => 1 } 
           @ { $data->{item} };

ok(!exists $urls{'http://www.perl.com/pub/a/2002/09/11/log4perl.html'},
   "Non linux-magazine url doesn't exist");

# Try rss_attrs

$f->link_filter( sub {
    my($url, $text, $processor) = @_;

#print "Found $url $text\n";

    if($url =~ m#issue/51#) {
        $processor->rss_attrs({
            description => 'This is cool stuff',
            title       => 'Where it all began',
        });
        return 1;
    } else {
        return 0;
    }
});

$f->make_rss();

  # Read XML file back in
$data = XMLin($outfile);

is($data->{item}->{title}, 'Where it all began', "Modified title");
is($data->{item}->{description}, 'This is cool stuff', "Modified desc");
is($data->{item}->{link}, 'http://www.linux-magazine.com/issue/51/Perl_Collecting_News_Headlines.pdf', "url check");

#use Data::Dumper;
#print Dumper($data);