use Test::More tests => 11; BEGIN { use_ok('Locale::Maketext'); }; package MyTestLocale; @MyTestLocale::ISA = qw(Locale::Maketext); %MyTestLocale::Lexicon = (); %MyTestLocale::Lexicon = (); # to avoid warnings package MyTestLocale::fr; @MyTestLocale::fr::ISA = qw(MyTestLocale); %MyTestLocale::fr::Lexicon = ( '_AUTO' => 1, 'Hello World' => 'Bonjour Monde', ); package main; my $lh = MyTestLocale->get_handle('fr'); $lh->{'use_external_lex_cache'} = 1; ok(exists $MyTestLocale::fr::Lexicon{'Hello World'} && !ref $MyTestLocale::fr::Lexicon{'Hello World'}, 'lex value not a ref'); is($lh->maketext('Hello World'), 'Bonjour Monde', 'renders correctly first time'); ok(exists $lh->{'_external_lex_cache'}{'Hello World'} && ref $lh->{'_external_lex_cache'}{'Hello World'}, 'compiled into lex_cache'); ok(exists $MyTestLocale::fr::Lexicon{'Hello World'} && !ref $MyTestLocale::fr::Lexicon{'Hello World'}, 'lex value still not a ref'); is($lh->maketext('Hello World'), 'Bonjour Monde', 'renders correctly second time time'); ok(exists $lh->{'_external_lex_cache'}{'Hello World'} && ref $lh->{'_external_lex_cache'}{'Hello World'}, 'still compiled into lex_cache'); ok(exists $MyTestLocale::fr::Lexicon{'Hello World'} && !ref $MyTestLocale::fr::Lexicon{'Hello World'}, 'lex value still not a ref'); is($lh->maketext('This is not a key'), 'This is not a key', '_AUTO renders correctly first time'); ok(exists $lh->{'_external_lex_cache'}{'This is not a key'} && ref $lh->{'_external_lex_cache'}{'This is not a key'}, '_AUTO compiled into lex_cache'); ok(!exists $MyTestLocale::fr::Lexicon{'This is not a key'}, '_AUTO lex value not added to lex');