File: ParserPreamble.t

package info (click to toggle)
libmime-tools-perl 5.428-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,604 kB
  • ctags: 525
  • sloc: perl: 6,454; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 1,150 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
#!/usr/bin/perl -w

use strict;
use warnings;
use Test::More;

plan tests => 2;

main: {
    my ($fh, $mail_text, $entity, $parser);

    #-- Check whether Digest::MD5 is available
    my $has_md5 = eval "require Digest::MD5";

    #-- Load MIME::Parser
    use_ok("MIME::Parser");

    #-- Prepare parser
    $parser = MIME::Parser->new();
    $parser->output_to_core(1);
    $parser->decode_bodies(0);

    #-- Parse quoted-printable encoded file
    $entity = parse_empty_preamble_file($parser);

    #-- Check if MD5 resp. length match as expected
    $mail_text = $entity->as_string;

    if ( $has_md5 ) {
        my $md5 = Digest::MD5::md5_hex($mail_text);
        ok($md5 eq "7e32c04607e2bc47774b0f9f025e0d39", "Encoded MD5 match");
    } else {
        my $len = length($mail_text);
        ok($len == 930, "Encoded length match");
    }
}

#-- Parse quoted printable file and return MIME::Entity
sub parse_empty_preamble_file {
    my ($parser) = @_;
    open (my $fh, "testmsgs/empty-preamble.msg")
        or die "can't open testmsgs/empty-preamble.msg: $!";
    my $entity = $parser->parse($fh);
    close $fh;
    return $entity;
}

1;