1# -*- cperl -*- 2use strict; 3use warnings; 4use utf8; 5no warnings 'utf8'; 6 7use Test::More tests => 4; 8use Test::Differences; 9unified_diff; 10 11use Biber; 12use Biber::Output::bbl; 13use Log::Log4perl; 14chdir("t/tdata"); 15 16# Set up Biber object 17my $biber = Biber->new(noconf => 1); 18my $LEVEL = 'ERROR'; 19my $l4pconf = qq| 20 log4perl.category.main = $LEVEL, Screen 21 log4perl.category.screen = $LEVEL, Screen 22 log4perl.appender.Screen = Log::Log4perl::Appender::Screen 23 log4perl.appender.Screen.utf8 = 1 24 log4perl.appender.Screen.Threshold = $LEVEL 25 log4perl.appender.Screen.stderr = 0 26 log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout 27|; 28Log::Log4perl->init(\$l4pconf); 29 30Biber::Config->setoption('fastsort', 1); 31Biber::Config->setoption('sortlocale', 'C'); 32$biber->parse_ctrlfile("general1.bcf"); 33$biber->set_output_obj(Biber::Output::bbl->new()); 34 35# Options - we could set these in the control file but it's nice to see what we're 36# relying on here for tests 37 38# Biblatex options 39Biber::Config->setblxoption('labelnamespec', [ {content => 'shortauthor'}, 40 {content => 'author'}, 41 {content => 'shorteditor'}, 42 {content => 'editor'}, 43 {content => 'translator'}]); 44Biber::Config->setblxoption('labelnamespec', [ {content => 'editor'}, 45 {content => 'translator'}], 'PER_TYPE', 'book'); 46Biber::Config->setblxoption('labelnamespec', [ {content => 'namea'}, 47 {content => 'author' }], 'PER_TYPE', 'misc'); 48 49# Now generate the information 50$biber->prepare; 51my $bibentries = $biber->sections->get_section(0)->bibentries; 52 53eq_or_diff($bibentries->entry('angenendtsa')->get_labelname_info, 'shortauthor', 'global shortauthor' ); 54eq_or_diff($bibentries->entry('stdmodel')->get_labelname_info, 'author', 'global author' ); 55eq_or_diff($bibentries->entry('aristotle:anima')->get_labelname_info, 'editor', 'type-specific editor' ); 56eq_or_diff($bibentries->entry('lne1')->get_labelname_info, 'namea', 'type-specific exotic name' ); 57