use strict;
use warnings;
use Test::More;
BEGIN {
delete $ENV{ANSI_COLORS_DISABLED};
delete $ENV{DATAPRINTERRC};
use File::HomeDir::Test; # avoid user's .dataprinter
use_ok ('Term::ANSIColor');
use_ok (
'Data::Printer',
return_value => 'dump',
colored => 1,
print_escapes => 1,
);
};
my $string = "L\x{e9}on likes to build a m\x{f8}\x{f8}se \x{2603} with \x{2744}\x{2746}";
my %hash = ( $string => $string );
sub col(@) {
my $return = color('bright_red');
$return .= '\\x{' . shift . '}' while @_;
$return .= color('bright_yellow');
return $return;
}
sub str($) {
return color('reset')
. '"'
. color('bright_yellow')
. shift
. color('reset')
. '"';
}
### none ###
is(
p( $string ),
str($string),
"Testing 'none'"
);
### nonascii ###
use_ok (
'Data::Printer',
colored => 1,
print_escapes => 1,
escape_chars => "nonascii",
);
is(
p( $string ),
str "L@{[col 'e9']}on likes to build a m@{[col 'f8','f8']}se @{[col '2603']} with @{[col '2744','2746']}",
"Testing 'nonascii'"
);
### nonlatin1 ###
use_ok (
'Data::Printer',
colored => 1,
print_escapes => 1,
escape_chars => "nonlatin1",
);
is(
p( $string ),
str "L\x{e9}on likes to build a m\x{f8}\x{f8}se @{[col '2603']} with @{[col '2744','2746']}",
"Testing 'nonlatin1'"
);
### all ###
use_ok (
'Data::Printer',
colored => 1,
print_escapes => 1,
escape_chars => "all",
);
is(
p( $string ),
str(
color('bright_red')
. join('',map { (sprintf '\x{%02x}', ord($_)) } split //, $string)
. color('bright_yellow')
),
"Testing 'all'"
);
done_testing;