Changes URL to eztv.ag and tries to fix DOM parsing.
[cascardo/www-eztv.git] / t / 01-series.t
1 #!/usr/bin/env perl
2
3 use strict;
4 use Test::More;
5
6 BEGIN { use_ok( 'WWW::EZTV' ); }
7
8 ok( my $eztv = WWW::EZTV->new, 'Build eztv crawler' );
9
10 subtest 'Can retrieve shows' => sub {
11     ok( $eztv->has_shows, 'Can fetch shows list' );
12     isa_ok( $eztv->shows, 'Mojo::Collection' );
13     isa_ok( $eztv->shows->[0], 'WWW::EZTV::Show' );
14 };
15
16 subtest 'All shows has name and URL' => sub {
17     my $has_year = 0;
18     $eztv->shows->each(sub {
19         my $show = shift;
20         ok( $show->name, 'Found show ' . $show->name );
21         ok( $show->url, 'Has url ' . $show->url );
22         ok( $show->status, 'Has status ' . $show->status );
23         $has_year++ if $show->year;
24     });
25     ok( $has_year, "Some shows has year info" );
26 };
27
28 subtest 'Show object' => sub {
29     ok( my $show = $eztv->shows->[0], 'Pick first show' );
30     diag( $show->name . ' was choosen!' );
31     ok( $show->has_episodes, 'Has episodes' );
32     ok( $show->episodes, 'Retrieve episodes' );
33     $show->episodes->each(sub{
34         my $ep = shift;
35         diag( 'Title:   '. $ep->title );
36         diag( 'Name:    '. $ep->name );
37         diag( 'Season:  '. $ep->season );
38         diag( 'Number:  '. $ep->number );
39         diag( 'Version: '. $ep->version );
40         diag( 'Size:    '. $ep->size );
41         ok( $ep->season >= 1, 'Has season' );
42         ok( $ep->number >= 1, 'Has number' );
43
44         ok( my $link = $ep->links->[0], 'Get first link' );
45         ok( $link->url, 'Link has url' );
46     });
47 };
48
49 done_testing();