subtest
'escaped-in-to_string'
=>
sub
{
my
$ps
=
'/`a/b`/`c/d`/0'
;
my
$p1
= Path->new(
$ps
);
is
"$p1"
,
$ps
;
};
subtest
'escape-in-path-object'
=>
sub
{
my
$p1
= Path->new(
'/v1:`a/b`/v2:`c/d`/v3:0'
);
is_deeply
$p1
->components, [
''
,
'a/b'
,
'c/d'
, 0];
my
$p2
= Path->new(
'/v1:`a///b/`/v2:`c/d`/v3:0'
);
is_deeply
$p2
->components, [
''
,
'a///b/'
,
'c/d'
, 0];
};
subtest
'simple-escaping'
=>
sub
{
my
$data
= {
'a/b'
=> {
'c/d'
=> [5] }
};
my
$p1
= validator(
$data
)->_expand_routes(
'/v1:*/v2:*/v3:0'
)->[0];
is
$p1
->value(
$data
), 5,
'got 5'
;
my
$p2
= validator(
$data
)->_expand_routes(
'/v1:`a/b`/v2:`c/d`/v3:0'
)->[0];
is
$p2
->value(
$data
), 5,
'got 5'
;
is
"$p1"
,
"$p2"
;
};
subtest
'escape-in-expression'
=>
sub
{
my
$paths
= validator([10,20,30])->_expand_routes(
'/`*[index == 2]`'
);
is
@$paths
, 1;
is
$paths
->[0],
"/2"
;
};
done_testing;