File: 02_phases.t

package info (click to toggle)
libperlanet-perl 2.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 444 kB
  • sloc: xml: 1,177; perl: 757; sh: 6; makefile: 5
file content (40 lines) | stat: -rw-r--r-- 1,088 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use strict;
use warnings;
use Test::More;
use FindBin qw($Bin);
use_ok('Perlanet::Simple');

chdir $Bin;
ok(my $p = Perlanet::Simple->new_with_config(
  configfile => 'testrc_no_opml',
),
   'Object created');
isa_ok($p, 'Perlanet');

is(@{$p->feeds}, 1, 'One feed');
my $feeds = $p->fetch_feeds($p->feeds);
is(@$feeds, 1, 'One fetchable feed');
my $selected = $p->select_entries($feeds);
is(@$selected, 1, 'One selected entry');
my $sorted = $p->sort_entries($selected);
is(@$sorted, 1, 'One sorted entry');
my $cleaned = $p->clean_entries($sorted);
is(@$cleaned, 1, 'One cleaned entry');
my $feed = $p->build_feed($cleaned);
isa_ok($feed, 'Perlanet::Feed', 'Got a feed');

{
    no warnings qw( redefine once );
    local *XML::Feed::parse = sub { die "Can't parse\n" };
    my @warnings;
    local $SIG{__WARN__} = sub {
        push @warnings, @_;
    };
    $p->fetch_feeds($p->feeds);

    is(scalar @warnings, 2, 'Two warnings');
    like($warnings[0], qr/Errors parsing/, 'Warning from Perlanet');
    like($warnings[1], qr/Can't parse/, 'Original exception');
}

done_testing();