Add expire.t
[libquvi-scripts.git] / tests / t / expire.t
blob1d6e2b8cc0ed9a715d25dc17a5175c2e811ba6dd
1 # libquvi-scripts
2 # Copyright (C) 2011  Toni Gundogdu <legatvs@gmail.com>
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 # 02110-1301, USA.
19 use warnings;
20 use strict;
22 use Test::More;
24 eval "use LWP::UserAgent";
25 plan skip_all => "LWP::UserAgent required for testing" if $@;
27 use Test::Quvi;
29 my $q = Test::Quvi->new;
30 plan skip_all => "TEST_SKIP rule" if $q->test_skip("expire");
32 my $ua = new LWP::UserAgent;
33 $ua->env_proxy;
35 my %h = (
36   "http://videos.arte.tv" => sub {
37     my $qr = qr|<h2><a href="/(\w\w)/videos/(.*?)"|;
38     my ($page) = @_;
39     "http://videos.arte.tv/$1/videos/$2" if $page =~ /$qr/;
40   },
41   "http://www.pluzz.fr/" => sub {
42     my ($page, $url) = @_;
43     my $rx_href = qr|href="(.*?)"|i;
44     my $rx_url  = qr|$url|;
45     for my $c ($page =~ /$rx_href/g)
46     {
47       return $c if $c =~ /$rx_url/;
48     }
49   }
52 plan tests => scalar(keys %h) * 2;
54 foreach (keys %h)
56   note "fetching $_ ...";
57   my $r = $ua->request(HTTP::Request->new(GET => $_));
58   is($r->is_success, 1, "request is success") or diag $r->status_line;
59 SKIP:
60   {
61     skip 'request failed', 1 unless $r->is_success;
62     note "matching...";
63     my $url = $h{$_}($r->decoded_content, $_);
64   SKIP:
65     {
66       skip 'no match: url', 1 unless $url;
67       note "querying media...";
68       ($r) = $q->run($url, "-qr");
69       is($r, 0x00, "quvi exit status == QUVI_OK")
70         or diag $url;
71     }
72   }
75 # vim: set ts=2 sw=2 tw=72 expandtab: