#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Test::Path::Router;
use Path::Router;
my $router = Path::Router->new;
isa_ok($router, 'Path::Router');
# create some routes
$router->add_route('blog' => (
defaults => {
controller => 'blog',
action => 'index',
}
));
$router->add_route('blog/:year/:month/:day' => (
defaults => {
controller => 'blog',
action => 'show_date',
},
validations => {
year => qr/\d{4}/,
month => qr/\d{1,2}/,
day => qr/\d{1,2}/,
}
));
$router->add_route('blog/:action/:id' => (
defaults => {
controller => 'blog',
},
validations => {
action => qr/\D+/,
id => qr/\d+/
}
));
path_ok($router, $_, '... matched path (' . $_ . ')')
foreach qw[
/blog/
/blog/edit/15/
/blog/2006/31/20/
/blog/2006/31/2/
/blog/2006/3/2/
/blog/2006/3/20/
];
path_not_ok($router, $_, '... could not match path (' . $_ . ')')
foreach qw[
foo/
/foo
/blog/index
/blog/foo
/blog/foo/bar
/blog/10/bar
blog/10/1000
/blog/show_date/2006/31/2
/blog/06/31/2
/blog/20063/31/2
/blog/2006/31/200
/blog/2006/310/1
];
done_testing;