The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use utf8;
use strict;
use warnings;
use Test::More;
use Test::Exception;

my $pkg1;
my $pkg2;
BEGIN {
    $pkg1 = 'Catmandu::Fix::uri_encode';
    use_ok $pkg1;
    $pkg2 = 'Catmandu::Fix::uri_decode';
    use_ok $pkg2;
}

my $obj = { name => 'café' };
my $obj2 = { name => 'ὁ τῶν Πέρσων βασιλεύς' };
my $fixer1 = $pkg1->new('name');
my $fixer2 = $pkg2->new('name');

is_deeply
    $fixer2->fix( $fixer1->fix($obj) ),
    { name => "café" },
    "escape and unescape French";

is_deeply
    $fixer2->fix( $fixer1->fix($obj2) ),
    { name => "ὁ τῶν Πέρσων βασιλεύς" },
    "escape and unescape Greek";

done_testing;