Re: index files do not work on 2.20 if allow_path_info is not set
Oliver Paukstadt <[email protected]> Tue, 08 Jan 2013 00:47:06 +0100
| Newsgroups | gmane.comp.web.mason.user |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/mason-users
Interp-order.patch
(text/x-patch, 746 B)
--- 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 ) )
ResolveURI-test.patch
(text/x-patch, 1.4 KB)
--- 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 {