From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use 5.012;
use lib 't/lib'; use MyTest;
catch_run('[methods]');
subtest "method configure in path" => sub {
my $r = URI::Router->new(
"OPTIONS/path1" => 11,
"GET/path2" => 22,
"HEAD/path3" => 33,
"POST/path4" => 44,
"PUT/path5" => 55,
"DELETE/path6" => 66,
"TRACE/path7" => 77,
"CONNECT/path8" => 88,
);
is $r->route("/path1", METHOD_OPTIONS), 11;
is $r->route("/path1", METHOD_GET), undef;
is $r->route("/path2", METHOD_GET), 22;
is $r->route("/path2", METHOD_HEAD), undef;
is $r->route("/path3", METHOD_HEAD), 33;
is $r->route("/path3", METHOD_POST), undef;
is $r->route("/path4", METHOD_POST), 44;
is $r->route("/path4", METHOD_PUT), undef;
is $r->route("/path5", METHOD_PUT), 55;
is $r->route("/path5", METHOD_DELETE), undef;
is $r->route("/path6", METHOD_DELETE), 66;
is $r->route("/path6", METHOD_TRACE), undef;
is $r->route("/path7", METHOD_TRACE), 77;
is $r->route("/path7", METHOD_CONNECT), undef;
is $r->route("/path8", METHOD_CONNECT), 88;
is $r->route("/path8", METHOD_OPTIONS), undef;
};
done_testing();