summaryrefslogtreecommitdiff
path: root/t/dsl/uri_for.t
diff options
context:
space:
mode:
Diffstat (limited to 't/dsl/uri_for.t')
-rw-r--r--t/dsl/uri_for.t48
1 files changed, 48 insertions, 0 deletions
diff --git a/t/dsl/uri_for.t b/t/dsl/uri_for.t
new file mode 100644
index 00000000..7712ce5c
--- /dev/null
+++ b/t/dsl/uri_for.t
@@ -0,0 +1,48 @@
+use strict;
+use warnings;
+use Test::More 'tests' => 2;
+use Plack::Test;
+use Plack::Builder;
+use HTTP::Request::Common;
+
+{
+ package App;
+ use Dancer2;
+ get '/' => sub { return uri_for('/foo'); };
+}
+
+{
+ package MountedApp;
+ use Dancer2;
+ get '/' => sub { return uri_for('/bar'); };
+}
+
+my $prefix = 'http://localhost';
+
+subtest 'Non-mounted app' => sub {
+ my $app = Plack::Test->create( App->to_app );
+ my $res;
+
+ $res = $app->request( GET "$prefix/" );
+ ok( $res->is_success, 'Successful request' );
+ is( $res->content, "$prefix/foo", 'Correct regular path' );
+};
+
+subtest 'Mounted app' => sub {
+ my $app = Plack::Test->create(
+ builder {
+ mount '/mount' => MountedApp->to_app;
+ mount '/' => App->to_app;
+ }
+ );
+
+ my $res;
+
+ $res = $app->request( GET "$prefix/" );
+ ok( $res->is_success, 'Successful request' );
+ is( $res->content, "$prefix/foo", 'Correct mounted regular path' );
+
+ $res = $app->request( GET "$prefix/mount" );
+ ok( $res->is_success, 'Successful request' );
+ is($res->content, "$prefix/mount/bar", 'Correct mounted regular path');
+};