Test::More::UTF8 - Enhancing Test::More for UTF8-based projects


Test-More-UTF8 documentation Contained in the Test-More-UTF8 distribution.

Index


Code Index:

NAME

Top

Test::More::UTF8 - Enhancing Test::More for UTF8-based projects

VERSION

Top

Version 0.02

SYNOPSIS

Top

	use Test::More;
	use Test::More::UTF8;

	# now we can easily use flagged strings without warnings like "Wide character in print ..."
	is("\x{410}","\x{420}"); # got a failure message without warnings

LIMITATIONS

Top

	This module have reason only for perl 5.8 and higher

FEATURES

Top

This module also switch on by default utf8 pragma. To disable this, add "-utf8" option

	use Test::More::UTF8 qw(-utf8);

By default binmode ':utf8' will be done on all output handles: failure_output, todo_output, output. It is possible to choose only some of them

	use Test::More::UTF8 qw(failure); # enable :utf8 only on failure_output
	use Test::More::UTF8 qw(todo); # enable :utf8 only on todo_output
	use Test::More::UTF8 qw(out); # enable :utf8 only on output

AUTHOR

Top

Mons Anderson, <mons@cpan.org>

BUGS

Top

None known

COPYRIGHT & LICENSE

Top


Test-More-UTF8 documentation Contained in the Test-More-UTF8 distribution.
package Test::More::UTF8;

use warnings;
use strict;
use Test::More ();
use Carp;

our $VERSION = '0.02';

sub import {
	my $pkg = shift;
	my %args = map {$_ => 1} @_;
	my ($do_utf8,@h) = (1);
	push @h, 'failure_output' if delete $args{failure} or delete $args{failure_output};
	push @h, 'todo_output' if delete $args{todo} or delete $args{todo_output};
	push @h, 'output' if delete $args{out} or delete $args{output};
	$do_utf8 = 0 if delete $args{-utf8} or delete $args{-utf};
	%args and croak "Unsupported options to $pkg: ".join ', ', keys %args;
	@h or @h = qw(failure_output todo_output output);
	binmode Test::More->builder->$_, ':utf8' for @h;
	if ($do_utf8) {
		require utf8;
		@_ = ('utf8');
		goto &utf8::import;
	}
	return;
}

1; # End of Test::More::UTF8