46 lines
1.1 KiB
Perl
46 lines
1.1 KiB
Perl
use strict;
|
|
use warnings;
|
|
use Setup;
|
|
use Data::Dumper;
|
|
use Test2::V0;
|
|
use Hydra::Helper::Escape;
|
|
|
|
subtest "checking individual attribute set elements" => sub {
|
|
my %values = (
|
|
"" => '""',
|
|
"." => '"."',
|
|
"foobar" => '"foobar"',
|
|
"foo.bar" => '"foo.bar"',
|
|
"🌮" => '"🌮"',
|
|
'foo"bar' => '"foo\"bar"',
|
|
'foo\\bar' => '"foo\\\\bar"',
|
|
'$bar' => '"\\$bar"',
|
|
);
|
|
|
|
for my $input (keys %values) {
|
|
my $value = $values{$input};
|
|
is(escapeString($input), $value, "Escaping the value: " . $input);
|
|
}
|
|
};
|
|
|
|
subtest "escaping path components of a nested attribute" => sub {
|
|
my %values = (
|
|
"" => '""',
|
|
"." => '"".""',
|
|
"...." => '""."".""."".""',
|
|
"foobar" => '"foobar"',
|
|
"foo.bar" => '"foo"."bar"',
|
|
"🌮" => '"🌮"',
|
|
'foo"bar' => '"foo\"bar"',
|
|
'foo\\bar' => '"foo\\\\bar"',
|
|
'$bar' => '"\\$bar"',
|
|
);
|
|
|
|
for my $input (keys %values) {
|
|
my $value = $values{$input};
|
|
is(escapeAttributePath($input), $value, "Escaping the attribute path: " . $input);
|
|
}
|
|
};
|
|
|
|
done_testing;
|