File: 01mbox.t

package info (click to toggle)
libemail-folder-perl 0.860-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 348 kB
  • sloc: perl: 632; makefile: 2
file content (107 lines) | stat: -rw-r--r-- 2,920 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!perl -w
use strict;
my %boxes;
BEGIN {
  %boxes = (
    'testmbox'      => "\x0a",
    'testmbox.mac'  => "\x0d",
    'testmbox.dos'  => "\x0d\x0a"
  )
}

use Test::More tests => 17 + 3 * keys %boxes;

use_ok("Email::Folder");

for my $box (sort keys %boxes) {
  my $folder;
  ok(
    $folder = Email::Folder->new("t/mboxes/$box", eol => $boxes{$box}),
    "opened $box"
  );

  my @messages = $folder->messages;
  is(@messages, 10, "grabbed 10 messages");

  my @subjects = sort map { $_->header('Subject') }  @messages;

  my @known = (
    'R: [p5ml] karie kahimi binge...help needed',
    'RE: [p5ml] Re: karie kahimi binge...help needed',
    'Re: January\'s meeting',
    'Re: January\'s meeting',
    'Re: January\'s meeting',
    'Re: [p5ml] karie kahimi binge...help needed',
    'Re: [p5ml] karie kahimi binge...help needed',
    'Re: [rt-users] Configuration Problem',
    '[p5ml] Re: karie kahimi binge...help needed',
    '[rt-users] Configuration Problem',
  );

  is_deeply(\@subjects, \@known, "they're the messages we expected");
}


my $folder;
ok($folder = Email::Folder->new('t/mboxes/testmbox.empty'), "opened testmbox.empty");
is($folder->messages, 0);

ok($folder = Email::Folder->new('t/mboxes/mboxcl2'), "opened mboxcl2");
my @messages = $folder->messages;

is(@messages, 3);
is_deeply( [ sort map { $_->header('Subject') } @messages ],
           [ 'Fifteenth anniversary of Perl.',
             'Re: Fifteenth anniversary of Perl.',
             'Re: Fifteenth anniversary of Perl.',
            ],
           "they're the messages we expected");

# mboxcl2 with a lying Content-Length header
ok($folder = Email::Folder->new('t/mboxes/mboxcl2.lies'), "opened mboxcl2.lies");
@messages = $folder->messages;

is(@messages, 3);
is_deeply( [ sort map { $_->header('Subject') } @messages ],
           [ 'Fifteenth anniversary of Perl.',
             'Re: Fifteenth anniversary of Perl.',
             'Re: Fifteenth anniversary of Perl.',
            ],
           "they're the messages we expected");

my $r = Email::Folder->new('t/mboxes/mboxcl2');
is( $r->next_message->header('Subject'), 'Fifteenth anniversary of Perl.',
    'iterate first message' );

# take the offset and close it
my $offset = $r->reader->tell;
undef $r;

ok( $r = Email::Folder->new('t/mboxes/mboxcl2', seek_to => $offset), "reopened");
is( $r->next_message->header('Subject'), 'Re: Fifteenth anniversary of Perl.',
    'second message' );

undef $r;

$r = Email::Folder->new('t/mboxes/mboxcl3');
my @m = $r->messages;
is @m, 2, 'there are two messages in the mbox mboxcl2';

is(
  $m[0]->header('X-Test'),
  'Just a bwahaha',
 'one more line after Content-Length'
);

is(
  $m[0]->header_names(),
  11,
  'with Content-Length all headers are in place'
);

is(
  $m[1]->header('X-Test'),
  'Just another bwahaha',
  'one more line after Lines'
);
is( $m[1]->header_names(), 11, 'with Lines all headers are in place' );