1#!/usr/bin/perl -wT
2
3use Test::More tests => 11;
4use Error qw(:try);
5BEGIN { use_ok('Mail::OpenDKIM') };
6
7#########################
8
9my $msg = <<'EOF';
10DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=example.com; h=from:to:subject; s=example; bh=TozDQdcuD/NljOIYtF7AyqaxB8s=; b=dMk1p8wJdpHEFOk2pbtSScD3c2spKGkEo917Plae1weNhdrPvZOWvpZYnQL4/S9iQQtXpUByhjU0ObbWE/SgOhpFS216C847c+3RJCESNMJqxSzf65cuGPLffKQg4dboVKS759wC3hDhIMIPmdLABaK4crFAZcBnl+AQP1QpV4H9jUydiU1CqLURpZgeRd3uqhtua/wJTz3t7ad7YfPhQst7pYD7m97xp0PZURjPTYEKTHSJfhfT4zVDXl1+/HeNc3SV+nT9trpIj9ZOfmhotPYGE1PLX5ZyhZmskff7jQDALJxj6z2jICTCKhwLOtuENf9tCYiyYlMcYuij+hTSBg==
11From: Nigel Horne <njh@bandsman.co.uk>
12To: Tester <dktest@blackops.org>
13Subject: Testing D
14
15Can you hear me, Mother?
16EOF
17
18GETSIGNATURE: {
19
20	my $o = new_ok('Mail::OpenDKIM');
21	ok($o->dkim_init());
22
23	my $d;
24
25	try {
26		$d = $o->dkim_verify({
27			id => 'MLM',
28		});
29
30		ok(defined($d));
31
32		# d is a Mail::OpenDKIM::DKIM object
33	} catch Error with {
34		my $ex = shift;
35		fail($ex->stringify);
36	};
37
38	isa_ok($d, 'Mail::OpenDKIM::DKIM');
39
40	$msg =~ s/\n/\r\n/g;
41
42	ok($d->dkim_chunk({ chunkp => $msg, len => length($msg)}) == DKIM_STAT_OK);
43
44	ok($d->dkim_chunk({ chunkp => '', len => 0}) == DKIM_STAT_OK);
45
46	my $sig = $d->dkim_getsignature();
47
48	ok(!defined($sig));
49
50	ok($d->dkim_eom() == DKIM_STAT_NOKEY);
51
52	$sig = $d->dkim_getsignature();
53
54	ok(defined($sig));
55
56	ok($d->dkim_free() == DKIM_STAT_OK);
57
58	$o->dkim_close();
59}
60