fixed problem with overlapping server path and request path when testing on a non...
Kieren Diment [Wed, 4 Apr 2007 00:42:00 +0000 (00:42 +0000)]
lib/Catalyst/Test.pm

index 9f2f7be..3aa9878 100644 (file)
@@ -136,6 +136,21 @@ sub remote_request {
 
     if ( $server->path =~ m|^(.+)?/$| ) {
         $server->path("$1");    # need to be quoted
+        }
+
+    # the request path needs to be sanitised if $server is using a
+    # non-root path due to potential overlap between request path and
+    # response path.
+    if ($server->path) {
+        my @sp = split '/', $server->path;
+        my @rp = split '/', $request->uri->path;
+        shift @sp;shift @rp; # leading /
+        if (@rp) {
+            foreach my $sp (@sp) {
+                shift @rp if $sp eq $rp[0];
+            }
+        }
+        $request->uri->path(join '/', @rp);
     }
 
     # the request path needs to be sanitised if $server is using a