Skip to content

Commit

Permalink
more tests for documentation browser
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Sep 21, 2013
1 parent fc254e0 commit 9368fc7
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
11 changes: 4 additions & 7 deletions lib/Mojolicious/Plugin/PODRenderer.pm
Expand Up @@ -8,9 +8,6 @@ use Mojo::Util qw(slurp url_escape);
use Pod::Simple::HTML;
use Pod::Simple::Search;

# Paths to search
my @PATHS = map { $_, "$_/pods" } @INC;

sub register {
my ($self, $app, $conf) = @_;

Expand All @@ -31,10 +28,9 @@ sub register {

# Perldoc browser
return if $conf->{no_perldoc};
my $defaults = {module => 'Mojolicious/Guides', format => 'html'};
my $constraints = [module => qr/[^.]+/, format => [qw(html txt)]];
my $defaults = {module => 'Mojolicious/Guides', format => 'html'};
return $app->routes->any(
'/perldoc/:module' => $defaults => $constraints => \&_perldoc);
'/perldoc/:module' => $defaults => [module => qr/[^.]+/] => \&_perldoc);
}

sub _html {
Expand Down Expand Up @@ -94,7 +90,8 @@ sub _perldoc {
# Find module or redirect to CPAN
my $module = $self->param('module');
$module =~ s!/!::!g;
my $path = Pod::Simple::Search->new->find($module, @PATHS);
my $path
= Pod::Simple::Search->new->find($module, map { $_, "$_/pods" } @INC);
return $self->redirect_to("http://metacpan.org/module/$module")
unless $path && -r $path;

Expand Down
16 changes: 13 additions & 3 deletions t/mojolicious/pod_renderer_lite_app.t
Expand Up @@ -57,16 +57,26 @@ $t->get_ok('/perldoc/')->status_is(200)->text_is('h1 a[id="NAME"]', 'NAME')
->text_is('a[id="GUIDES"]', 'GUIDES')->content_like(qr/galaxy/)
->content_unlike(qr/Gray/);

# Perldoc browser (Mojolicious)
# Perldoc browser (Mojolicious documentation)
$t->get_ok('/perldoc/Mojolicious')->status_is(200)
->text_is('h1 a[id="NAME"]', 'NAME')->text_is('a[id="handler"]', 'handler')
->text_like('p', qr/Mojolicious/)->content_like(qr/Sebastian Riedel/);

# Perldoc browser (Mojolicious source)
# Perldoc browser (Mojolicious documentation with format)
$t->get_ok('/perldoc/Mojolicious.html')->status_is(200)
->text_is('h1 a[id="NAME"]', 'NAME')->text_is('a[id="handler"]', 'handler')
->text_like('p', qr/Mojolicious/)->content_like(qr/Sebastian Riedel/);

# Perldoc browser (negotiated Mojolicious documentation)
$t->get_ok('/perldoc/Mojolicious' => {Accept => 'text/html'})->status_is(200)
->text_is('h1 a[id="NAME"]', 'NAME')->text_is('a[id="handler"]', 'handler')
->text_like('p', qr/Mojolicious/)->content_like(qr/Sebastian Riedel/);

# Perldoc browser (Mojolicious source with format)
$t->get_ok('/perldoc/Mojolicious.txt')->status_is(200)
->content_type_is('text/plain;charset=UTF-8')->content_like(qr/\$VERSION/);

# Perldoc browser (negotiated Mojolicious source)
# Perldoc browser (negotiated Mojolicious source again)
$t->get_ok('/perldoc/Mojolicious' => {Accept => 'text/plain'})->status_is(200)
->content_type_is('text/plain;charset=UTF-8')->content_like(qr/\$VERSION/);

Expand Down

0 comments on commit 9368fc7

Please sign in to comment.