]> Sergey Matveev's repositories - public-inbox.git/blob - t/msg_iter.t
cc58b93fd6ffff9d8f3b0e81975a71533e6ae6f8
[public-inbox.git] / t / msg_iter.t
1 # Copyright (C) 2016 all contributors <meta@public-inbox.org>
2 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
3 use strict;
4 use warnings;
5 use Test::More;
6 use Email::MIME;
7 use_ok('PublicInbox::MsgIter');
8
9 {
10         my $parts = [ Email::MIME->create(body => 'a'),
11                         Email::MIME->create(body => 'b') ];
12         my $mime = Email::MIME->create(parts => $parts,
13                                 header_str => [ From => 'root@localhost' ]);
14         my @parts;
15         msg_iter($mime, sub {
16                 my ($part, $level, @ex) = @{$_[0]};
17                 push @parts, [ $part->body_str, $level, @ex ];
18         });
19         is_deeply(\@parts, [ [ qw(a 1 1) ], [ qw(b 1 2) ] ], 'order is fine');
20 }
21
22 {
23         my $parts = [ Email::MIME->create(body => 'a'),
24                         Email::MIME->create(body => 'b') ];
25         $parts = [ Email::MIME->create(parts => $parts,
26                                 header_str => [ From => 'sub@localhost' ]),
27                         Email::MIME->create(body => 'sig') ];
28         my $mime = Email::MIME->create(parts => $parts,
29                                 header_str => [ From => 'root@localhost' ]);
30         my @parts;
31         msg_iter($mime, sub {
32                 my ($part, $level, @ex) = @{$_[0]};
33                 push @parts, [ $part->body_str, $level, @ex ];
34         });
35         is_deeply(\@parts, [ [ qw(a 2 1 1)], [qw(b 2 1 2)], [qw(sig 1 2)] ],
36                 'nested part shows up properly');
37 }
38
39 done_testing();
40 1;