diff options
Diffstat (limited to 't/Helper.t')
-rw-r--r-- | t/Helper.t | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/t/Helper.t b/t/Helper.t deleted file mode 100644 index 4578594..0000000 --- a/t/Helper.t +++ /dev/null @@ -1,184 +0,0 @@ -use v5.22; -use warnings; -use utf8; - -use Test::More; - -use Encode 'decode'; -use MIME::Words 'decode_mimewords'; - -use JWebmail::Plugin::Helper; - - -subtest 'print_size10' => sub { - my %TESTS = ( - 1 => '1 Byte', - 10 => '10 Byte', - 100 => '100 Byte', - 1000 => '1 kByte', - 10000 => '10 kByte', - 100000 => '100 kByte', - 1000000 => '1 MByte', - 10 * 10**6 => '10 MByte', - 10 * 2**20 => '10 MByte', - 800 => '800 Byte', - 9999 => '10 kByte', - 9500 => '10 kByte', - 1024 => '1 kByte', - 1023 => '1 kByte', - ); - - plan tests => scalar keys %TESTS; - - while (my ($input, $want) = each %TESTS) { - is(JWebmail::Plugin::Helper::print_sizes10($input), $want); - } -}; - - -subtest 'vaild_mail_line' => sub { - my %TESTS = ( - 'abc@example.com' => 1, - 'ABC Ex <abc@example.com>' => 1, - '"ABC Ex" <abc@example.com>' => 1, - '"A@B.V Ex" <abc@example.com>' => 1, - '"A@B.V Ex\"" <abc@example.com>' => 1, - 'ABC Ex abc@example.com' => 0, - ); - - plan tests => scalar keys %TESTS; - - while (my ($input, $want) = each %TESTS) { - cmp_ok(JWebmail::Plugin::Helper->mail_line('', $input), '!=', $want); - } -}; - - -subtest 'mime_word_decode' => sub { - my $input = "=?utf-8?Q?Jannis=20wir=20vermissen=20dich!=20Komm=20zur=C3=BCck=20und=20spare=20mit=20uns=20beim=20shoppen=20deiner=20Lieblingsmarken?="; - my $want = "Jannis wir vermissen dich! Komm zurück und spare mit uns beim shoppen deiner Lieblingsmarken"; - my $got = scalar decode_mimewords $input; - - isnt $want, $got; - is $want, _to_perl_enc(decode_mimewords $input); - is $want, decode('MIME-Header', $input); - - done_testing 3; -}; - -sub _to_perl_enc { - my $out = ''; - for (@_) { - if ($_->[1]) { - $out .= decode($_->[1], $_->[0]); - } - else { - $out .= $_->[0]; - } - } - return $out; -} - - -subtest 'pagination' => sub { - my %res; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 0, page_size => 10, total_items => 55)->%*; - - is $res{first_item}, 0; - is $res{last_item}, 9; - is $res{total_items}, 55; - - is $res{page_size}, 10; - is $res{total_pages}, 6; - is $res{current_page}, 0; - - is_deeply $res{first_page}, [0, 10], 'first'; - is_deeply $res{prev_page}, [0, 10], 'prev'; - is_deeply $res{next_page}, [10, 20], 'next'; - is_deeply $res{last_page}, [50, 55], 'last'; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 10, page_size => 10, total_items => 55)->%*; - - is $res{first_item}, 10; - is $res{last_item}, 19; - is $res{total_items}, 55; - - is $res{page_size}, 10; - is $res{total_pages}, 6; - is $res{current_page}, 1; - - is_deeply $res{first_page}, [0, 10], 'first'; - is_deeply $res{prev_page}, [0, 10], 'prev'; - is_deeply $res{next_page}, [20, 30], 'next'; - is_deeply $res{last_page}, [50, 55], 'last'; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 20, page_size => 10, total_items => 55)->%*; - - is $res{first_item}, 20; - is $res{last_item}, 29; - is $res{total_items}, 55; - - is $res{page_size}, 10; - is $res{total_pages}, 6; - is $res{current_page}, 2; - - is_deeply $res{first_page}, [0, 10], 'first'; - is_deeply $res{prev_page}, [10, 20], 'prev'; - is_deeply $res{next_page}, [30, 40], 'next'; - is_deeply $res{last_page}, [50, 55], 'last'; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 50, page_size => 10, total_items => 55)->%*; - - is $res{first_item}, 50; - is $res{last_item}, 54; - is $res{total_items}, 55; - - is $res{page_size}, 10; - is $res{total_pages}, 6; - is $res{current_page}, 5; - - is_deeply $res{first_page}, [0, 10], 'first'; - is_deeply $res{prev_page}, [40, 50], 'prev'; - is_deeply $res{next_page}, [50, 55], 'next'; - is_deeply $res{last_page}, [50, 55], 'last'; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 0, page_size => 10, total_items => 0)->%*; - - ok !defined $res{first_item}; - ok !defined $res{last_item}; - is $res{total_items}, 0; - - is $res{page_size}, 10; - is $res{total_pages}, 0; - is $res{current_page}, 0; - - is_deeply $res{first_page}, [0, 0], 'first'; - is_deeply $res{prev_page}, [0, 0], 'prev'; - is_deeply $res{next_page}, [0, 0], 'next'; - is_deeply $res{last_page}, [0, 0], 'last'; - - SKIP: { - skip 'The first_item does not align with page boundaries and behaiviour is not specified.'; - - %res = JWebmail::Plugin::Helper::_paginate(first_item => 19, page_size => 10, total_items => 55)->%*; - - is $res{first_item}, 20; - is $res{last_item}, 29; - is $res{total_items}, 55; - - is $res{page_size}, 10; - is $res{total_pages}, 6; - is $res{current_page}, 3; - - is_deeply $res{first_page}, [1, 10], 'first'; - is_deeply $res{prev_page}, [11, 20], 'prev'; - is_deeply $res{next_page}, [31, 40], 'next'; - is_deeply $res{last_page}, [51, 55], 'last'; - } - - done_testing; -}; - - -done_testing; |