X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Fhelper%2Fcsv.t;h=088ed68ab3b447339e6c9a368c9903bb1d4d8197;hb=61cdba5d566357f3beabe0e7f3f0cb2d7bdccd73;hp=a78a6a96048b4d50a517d88317fb4abb4af136c7;hpb=76e3efe63976405fd9478eac0711a7c127ddba41;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index a78a6a960..088ed68ab 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,12 +1,16 @@ -use Test::More tests => 39; -use SL::Dispatcher; -use Data::Dumper; +use Test::More tests => 47; + +use lib 't'; use utf8; +use Data::Dumper; +use Support::TestSetup; + use_ok 'SL::Helper::Csv'; -my $csv; -$csv = SL::Helper::Csv->new( +Support::TestSetup::login(); + +my $csv = SL::Helper::Csv->new( file => \"Kaffee\n", header => [ 'description' ], class => 'SL::DB::Part', @@ -17,20 +21,11 @@ isa_ok $csv->_io, 'IO::File'; isa_ok $csv->parse, 'SL::Helper::Csv', 'parsing returns self'; is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'simple case works'; - is $csv->get_objects->[0]->description, 'Kaffee', 'get_object works'; #### -{ -no warnings 'once'; -$::dispatcher = SL::Dispatcher->new; -$::dispatcher->pre_startup_setup(); -} - -$::form = Form->new; $::myconfig{numberformat} = '1.000,00'; $::myconfig{dateformat} = 'dd.mm.yyyy'; -$::locale = Locale->new('de'); $csv = SL::Helper::Csv->new( file => \"Kaffee;0.12;12,2;1,5234\n", @@ -283,6 +278,8 @@ is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'eol bug at the end o $csv = SL::Helper::Csv->new( file => \"Description\nKaffee", class => 'SL::DB::Part', + case_insensitive_header => 1, + profile => { description => 'description' }, ); $csv->parse; is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive header from csv works'; @@ -293,8 +290,70 @@ $csv = SL::Helper::Csv->new( file => \"Kaffee", header => [ 'Description' ], class => 'SL::DB::Part', + case_insensitive_header => 1, + profile => { description => 'description' }, ); $csv->parse; is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive header as param works'; +##### + +$csv = SL::Helper::Csv->new( + file => \"\x{EF}\x{BB}\x{BF}description\nKaffee", + class => 'SL::DB::Part', + encoding => 'utf8', +); +$csv->parse; +is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'utf8 BOM works (bug 1872)'; + +##### + +$csv = SL::Helper::Csv->new( + file => \"Kaffee", + header => [ 'Description' ], + class => 'SL::DB::Part', +); +$csv->parse; +is_deeply $csv->get_data, undef, 'case insensitive header without flag ignores'; + +##### + +$csv = SL::Helper::Csv->new( + file => \"Kaffee", + header => [ 'foo' ], + class => 'SL::DB::Part', + profile => { foo => '' }, +); +$csv->parse; + +is_deeply $csv->get_data, [ { foo => 'Kaffee' } ], 'empty path still gets parsed into data'; +ok $csv->get_objects->[0], 'empty path gets ignored in object creation'; + +##### + +$csv = SL::Helper::Csv->new( + file => \"Kaffee", + header => [ 'foo' ], + class => 'SL::DB::Part', + strict_profile => 1, + profile => { foo => '' }, +); +$csv->parse; + +is_deeply $csv->get_data, [ { foo => 'Kaffee' } ], 'empty path still gets parsed into data (strict profile)'; +ok $csv->get_objects->[0], 'empty path gets ignored in object creation (strict profile)'; + +$csv = SL::Helper::Csv->new( + file => \"Phil", + header => [ 'CVAR_grOUnDHog' ], + class => 'SL::DB::Part', + strict_profile => 1, + case_insensitive_header => 1, + profile => { cvar_Groundhog => '' }, +); +$csv->parse; + +is_deeply $csv->get_data, [ { cvar_Groundhog => 'Phil' } ], 'using empty path to get cvars working'; +ok $csv->get_objects->[0], '...and not destorying the objects'; + # vim: ft=perl