X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Fhelper%2Fcsv.t;h=088ed68ab3b447339e6c9a368c9903bb1d4d8197;hb=5e85b3263587809713a24e2cfe832940c60d2c3c;hp=63fc858c95d5cb3b8640d6b7fb34ffbf53f7542c;hpb=93d494952f69bfad31e5d887b57609cbf8e41d43;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index 63fc858c9..088ed68ab 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,11 +1,11 @@ -use Test::More tests => 41; +use Test::More tests => 47; use lib 't'; +use utf8; use Data::Dumper; -use utf8; +use Support::TestSetup; -use_ok 'Support::TestSetup'; use_ok 'SL::Helper::Csv'; Support::TestSetup::login(); @@ -278,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'; @@ -285,9 +287,11 @@ is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive hea ##### $csv = SL::Helper::Csv->new( -file => \"Kaffee", -header => [ 'Description' ], -class => 'SL::DB::Part', + 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'; @@ -295,11 +299,61 @@ is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive hea ##### $csv = SL::Helper::Csv->new( - file => \"\x{FEFF}description\nKaffee", + 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