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 108
|
# This code is part of Perl distribution Mail-Message version 4.01.
# The POD got stripped from this file by OODoc version 3.05.
# For contributors see file ChangeLog.
# This software is copyright (c) 2001-2025 by Mark Overmeer.
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
# SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later
package Mail::Message::Test;{
our $VERSION = '4.01';
}
use parent 'Exporter';
use strict;
use warnings;
use Log::Report 'mail-message', import => [ qw// ];
use File::Copy qw/copy/;
use List::Util qw/first/;
use IO::File; # to overrule open()
use Test::More;
our @EXPORT = qw/compare_message_prints reproducable_text $raw_html_data $crlf_platform/;
our $crlf_platform = $^O =~ m/mswin32/i;
#
# Compare the text of two messages, rather strict.
# On CRLF platforms, the Content-Length may be different.
#
sub compare_message_prints($$$)
{ my ($first, $second, $label) = @_;
if($crlf_platform)
{ s/Content-Length: (\d+)/Content-Length: <removed>/g for $first, $second;
}
is($first, $second, $label);
}
#
# Strip message text down the things which are the same on all
# platforms and all situations.
#
sub reproducable_text($)
{ my $text = shift;
my @lines = split /^/m, $text;
foreach (@lines)
{ s/((?:references|message-id|date|content-length)\: ).*/$1<removed>/i;
s/boundary-\d+/boundary-<removed>/g;
}
join '', @lines;
}
#
# A piece of HTML text which is used in some tests.
#
our $raw_html_data = <<'TEXT';
<HTML>
<HEAD>
<TITLE>My home page</TITLE>
</HEAD>
<BODY BGCOLOR=red>
<H1>Life according to Brian</H1>
This is normal text, but not in a paragraph.<P>New paragraph
in a bad way.
And this is just a continuation. When texts get long, they must be
auto-wrapped; and even that is working already.
<H3>Silly subsection at once</H3>
<H1>and another chapter</H1>
<H2>again a section</H2>
<P>Normal paragraph, which contains an <IMG
SRC=image.gif>, some
<I>italics with linebreak
</I> and <TT>code</TT>
<PRE>
And now for the preformatted stuff
it should stay as it was
even with strange blanks
and indentations
</PRE>
And back to normal text...
<UL>
<LI>list item 1
<OL>
<LI>list item 1.1
<LI>list item 1.2
</OL>
<LI>list item 2
</UL>
</BODY>
</HTML>
TEXT
1;
|