On Mon, 2013-01-07 at 17:34 +0000, Pedro Melo wrote:
> Completed.
>
> https://github.com/jonswar/perl-mason/pull/16#commits-pushed-bdd2292
>
> Docs, tests and code. It should fix all reported problems, and the
> behaviour is actually much saner than before.
>
> Comments?
>
I think there are some testcases missing about resolving order:
$try->( '/news/sports', ['/news/sports/index','/news/sports.mc'],
'/news/sports.mc', '');
$try->( '/news/sports/', ['/news/sports/index','/news/sports.mc'],
'/news/sports/index', '');
$try->( '/news/sports/', ['/news/sports/index=1','/news/sports.mc'],
'/news/sports/index', '/');
This is what I expect of resolving order when I read the new docs.
The 2nd and 3rd test fail and return /news/sports.mc with latest code.
Same for dhandler: 2nd test fails:
$try->( '/news/sports', ['/news/sports/dhandler','/news/sports.mc'],
'/news/sports.mc', '');
$try->( '/news/sports/', ['/news/sports/dhandler','/news/sports.mc'],
'/news/sports/dhandler', '/');
As far as I can see, if we have $trailing_slash eq "/" we need to switch
order of autoextensions and index/dhandler block while building
candidate_paths.
I added some more tests to make sure nothing is broken and get better
coverage:
$try->( '/news/sports', ['/news/dhandler','/news/sports.mc'],
'/news/sports.mc', '');
$try->( '/news/sports/', ['/news/dhandler','/news/sports.mc'],
'/news/sports.mc', '');
$try->( '/news/sports/', ['/news/dhandler','/news/sports.mc=1'],
'/news/sports.mc', '/');
$try->( '/news/sports', ['/dhandler','/news.mc'], '/dhandler', 'news/sports');
$try->( '/news/sports/', ['/dhandler','/news.mc'], '/dhandler', 'news/sports/');
$try->( '/news/sports/', ['/dhandler','/news.mc=1'], '/news.mc', 'sports/');
Please check all tests against the documentation.
Patch for tests and proposed fix added.
regards,
Oliver
--
Oliver Paukstadt <pst...@sourcentral.org>
--- Mason-2.20.3/lib/Mason/Interp.pm 2013-01-08 00:07:34.000000000 +0100
+++ Mason-2.20/lib/Mason/Interp.pm 2013-01-07 23:40:29.343604404 +0100
@@ -488,6 +488,10 @@
my @candidate_paths =
( $path_info eq '' && !@autoextensions ) ? ($path)
: ( $path eq '/' ) ? ( @index_subpaths, @dhandler_subpaths )
+ : ( $trailing_slash eq '/' ) ? (
+ ( map { $path . $_ } ( @index_subpaths, @dhandler_subpaths ) ),
+ ( grep { !/$ignore_file_regex/ } map { $path . $_ } @autoextensions )
+ )
: (
( grep { !/$ignore_file_regex/ } map { $path . $_ } @autoextensions ),
( map { $path . $_ } ( @index_subpaths, @dhandler_subpaths ) )
--- Mason-2.20.3/lib/Mason/t/ResolveURI.pm 2013-01-08 00:07:34.440600960 +0100
+++ Mason-2.20/lib/Mason/t/ResolveURI.pm 2013-01-08 00:05:03.004606601 +0100
@@ -128,6 +128,17 @@
$try->( '/news/sports/', ['/news/dhandler'], '/news/dhandler', 'sports/');
$try->( '/news/sports/', ['/news.mc'], undef);
$try->( '/news/sports/', ['/news.mc=1'], '/news.mc', 'sports/');
+ $try->( '/news/sports', ['/news/sports/index','/news/sports.mc'], '/news/sports.mc', '');
+ $try->( '/news/sports/', ['/news/sports/index','/news/sports.mc'], '/news/sports/index', '');
+ $try->( '/news/sports/', ['/news/sports/index=1','/news/sports.mc'], '/news/sports/index', '/');
+ $try->( '/news/sports', ['/news/sports/dhandler','/news/sports.mc'], '/news/sports.mc', '');
+ $try->( '/news/sports/', ['/news/sports/dhandler','/news/sports.mc'], '/news/sports/dhandler', '/');
+ $try->( '/news/sports', ['/news/dhandler','/news/sports.mc'], '/news/sports.mc', '');
+ $try->( '/news/sports/', ['/news/dhandler','/news/sports.mc'], '/news/sports.mc', '');
+ $try->( '/news/sports/', ['/news/dhandler','/news/sports.mc=1'], '/news/sports.mc', '/');
+ $try->( '/news/sports', ['/dhandler','/news.mc'], '/dhandler', 'news/sports');
+ $try->( '/news/sports/', ['/dhandler','/news.mc'], '/dhandler', 'news/sports/');
+ $try->( '/news/sports/', ['/dhandler','/news.mc=1'], '/news.mc', 'sports/');
}
sub test_decline : Tests {
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users