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