X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c3f94f18040a7905d4bf615684b6d51d85a959b1..dc3f6120f9bbacaa028e554d7fa71e481d4497b4:/t/request/post_multipart.t diff --git a/t/request/post_multipart.t b/t/request/post_multipart.t new file mode 100644 index 000000000..767807b90 --- /dev/null +++ b/t/request/post_multipart.t @@ -0,0 +1,107 @@ +use strict; +use utf8; + +use lib 't'; +use lib 'modules/fallback'; +BEGIN { + unshift @INC, 'modules/override'; +} + +use Support::TestSetup; +use Test::More tests => 2; +use Data::Dumper; +require Test::Deep; +use Encode; + +use SL::Request; + +Support::TestSetup::login(); + +open my $fh, '<', 't/request/post_multipart_1' or die "can't load test"; +my $data = do { $/ = undef; <$fh> }; + +my $t = {}; +my $tt = {}; + +local $ENV{CONTENT_TYPE} = 'multipart/form-data; boundary=---------------------------23281168279961'; +SL::Request::_parse_multipart_formdata($t, $tt, $data); + + +my $blob = Encode::encode('utf-8', qq|\x{feff}Stunde;Montag;Dienstag;Mittwoch;Donnerstag;Freitag +1;Mathe;Deutsch;Englisch;Mathe;Kunst +2;Sport;Französisch;Geschichte;Sport;Geschichte +3;Sport;"Religion ev;kath";Kunst;;Kunst|); + +my $t_cmp = { + 'profile' => { + 'name' => undef, + 'type' => undef + }, + 'quote_char' => undef, + 'file' => $blob, + 'custom_sep_char' => undef, + 'sep_char' => undef, + 'settings' => { + 'article_number_policy' => undef, + 'sellprice_places' => undef, + 'charset' => undef, + 'apply_buchungsgruppe' => undef, + 'full_preview' => undef, + 'parts_type' => undef, + 'default_unit' => undef, + 'default_buchungsgruppe' => undef, + 'duplicates' => undef, + 'numberformat' => undef, + 'sellprice_adjustment_type' => undef, + 'shoparticle_if_missing' => undef, + 'sellprice_adjustment' => undef + }, + 'custom_escape_char' => undef, + 'action_test' => undef, + 'custom_quote_char' => undef, + 'escape_char' => undef, + 'action' => undef + }; +$t_cmp->{ATTACHMENTS}{file}{data} = \$t_cmp->{'file'}; + + +is_deeply $t, $t_cmp; + +is_deeply $tt, + { + 'profile' => { + 'name' => '', + 'type' =>'parts', + }, + 'file' => undef, + 'quote_char' => 'quote', + 'custom_sep_char' => '', + 'sep_char' => 'semicolon', + 'settings' => { + 'article_number_policy' => 'update_prices', + 'sellprice_places' => 2, + 'charset' => 'UTF-8', + 'apply_buchungsgruppe' => 'all', + 'full_preview' => '0', + 'parts_type' => 'part', + 'default_unit' => 'g', + 'default_buchungsgruppe' => '815', + 'duplicates' => 'no_check', + 'numberformat' => '1.000,00', + 'sellprice_adjustment_type' => 'percent', + 'shoparticle_if_missing' => '0', + 'sellprice_adjustment' =>'0' + }, + 'custom_escape_char' => '', + 'action_test' => 'Test und Vorschau', + 'ATTACHMENTS' => { + 'file' => { + 'filename' => 'from_wikipedia.csv' + } + }, + 'custom_quote_char' => '', + 'escape_char' => 'quote', + 'action' => 'CsvImport/dispatch', + 'FILENAME' => 'from_wikipedia.csv' + }; +