use Test::More;
use lib qw( ../lib ./lib );
use Egg::Helper;
eval{ require Jcode };
if ($@) { plan skip_all=> "Jcode is not installed." } else {
plan tests=> 16;
my $s= '£Í£Ö£Ã¥Õ¥ì¡¼¥à¥ï¡¼¥¯';
my $e= Egg::Helper->run( Vtest=> {
vtest_plugins=> [qw/ Encode /],
character_in=> 'utf8',
} );
can_ok $e, 'encode';
can_ok $e, 'create_encode';
isa_ok $e->encode, 'Jcode';
can_ok $e, 'utf8_conv';
can_ok $e, 'sjis_conv';
can_ok $e, 'euc_conv';
can_ok $e->request, 'parameters';
isa_ok $e->request->parameters, 'HASH';
isa_ok tied(%{$e->request->parameters}), 'Egg::Plugin::Encode::TieHash';
is $e->request->parameters, $e->request->params,
q{$e->request->parameters, $e->request->params};
tie my %param, 'Egg::Plugin::Encode::TieHash', $e, 'utf8', { test=> $s };
ok $param{test}, q{$param{test}};
is Jcode::getcode($param{test}), 'utf8',
q{Jcode::getcode($param{test}), 'utf8'};
%param= ();
tie %param, 'Egg::Plugin::Encode::TieHash', $e, 'sjis', { test=> $s };
ok $param{test}, q{$param{test}};
is Jcode::getcode($param{test}), 'sjis',
q{Jcode::getcode($param{test}), 'sjis'};
%param= ();
tie %param, 'Egg::Plugin::Encode::TieHash', $e, 'euc', { test=> $s };
ok $param{test}, q{$param{test}};
is Jcode::getcode($param{test}), 'euc',
q{Jcode::getcode($param{test}), 'euc'};
}