Commit | Line | Data |
08122a3c |
1 | #!/usr/bin/env perl |
2 | use FindBin qw/$Bin/; |
df629266 |
3 | BEGIN { |
0556ab26 |
4 | my $env = "$FindBin::Bin/../script/env"; |
df629266 |
5 | if (-r $env) { |
6 | do $env or die $@; |
7 | } |
8 | } |
9 | |
08122a3c |
10 | use lib "$Bin/lib"; |
11 | use TestGitalist; |
aebe9a0e |
12 | plan 'skip_all' => "One or more of the following modules aren't present: Test::WWW::Mechanize::Catalyst WWW::Mechanize::TreeBuilder HTML::TreeBuilder::XPath" unless MECH(); |
08122a3c |
13 | |
14 | MECH->get_ok('/'); |
d2510bc5 |
15 | { |
3dddff36 |
16 | my $nodeset = MECH->findnodes('/html/body//tr[@class="repository"]'); |
d2510bc5 |
17 | foreach my $row ($nodeset->get_nodelist) { |
18 | my $uri = $row->findnodes('.//a')->[0]->attr('href'); |
3dddff36 |
19 | my ($repos_name) = $uri =~ m{^http://localhost/([\w\.]+)}; |
d2510bc5 |
20 | ok $repos_name, "Repos name $repos_name"; |
2d376b54 |
21 | like $row->findnodes('.//a')->[1]->as_text, qr{^[\w\s/;',\.]+$}, 'Have description' |
d2510bc5 |
22 | unless $repos_name eq 'nodescription'; |
3dddff36 |
23 | like $row->findnodes('.//td[@class="time-since"')->[0]->as_text, qr/^(never|\d+\s+(years|months)\s+ago)$/, |
d2510bc5 |
24 | 'Last change looks ok'; |
3dddff36 |
25 | my ($shortlog, $log, $tree) = $row->findnodes('.//td[@class="action-list"]/a')->get_nodelist; |
26 | $uri =~ s{/summary}{}; |
27 | like $shortlog->as_text, qr/short log/i, 'shortlog text ok'; |
d2510bc5 |
28 | is $shortlog->attr('href'), "$uri/shortlog", 'shortlog href ok'; |
29 | like $log->as_text, qr/log/, 'log text ok'; |
30 | is $log->attr('href'), "$uri/log", 'log href ok'; |
31 | like $tree->as_text, qr/tree/, 'tree text ok'; |
3dddff36 |
32 | is $tree->attr('href'), "$uri/HEAD/tree", 'tree href ok'; |
d2510bc5 |
33 | } |
34 | } |
08122a3c |
35 | |
36 | done_testing; |