#!/usr/bin/env perl use strict; use warnings; use Test::More; my $warnings; $SIG{__WARN__} = sub { $warnings .= $_[0] }; $warnings = ''; { package MyApp; use OX; router as { mount '/' => sub { }; route '/foo' => sub { }; }; } like($warnings, qr{^The application mounted at / will shadow the route declared at /foo[^\n]*\n$}, "got the right warning"); $warnings = ''; { package MyApp2; use OX; router as { route '/foo' => sub { }; mount '/' => sub { }; }; } like($warnings, qr{^The application mounted at / will shadow the route declared at /foo[^\n]*\n$}, "got the right warning"); $warnings = ''; { package MyApp3; use OX; router as { mount '/bar' => sub { }; route '/bar/quux' => sub { }; route '/foo/bar' => sub { }; route '/foo/baz/quux' => sub { }; mount '/foo' => sub { }; }; } like($warnings, qr{^The application mounted at /bar will shadow the route declared at /bar/quux[^\n]*\nThe application mounted at /foo will shadow the route declared at /foo/bar[^\n]*\nThe application mounted at /foo will shadow the route declared at /foo/baz/quux[^\n]*\n$}, "got the right warning"); done_testing;