1#!/usr/bin/perl -wT
2
3use Test::More tests => 15;
4use Error qw(:try);
5BEGIN { use_ok('Mail::OpenDKIM') };
6
7#########################
8
9GETDOMAIN: {
10
11	my $o = new_ok('Mail::OpenDKIM');
12	ok($o->dkim_init());
13
14	my ($d1, $d2);
15
16	try {
17		$d1 = $o->dkim_verify({
18			id => 'MLM',
19		});
20
21		ok(defined($d1));
22
23		$d2 = $o->dkim_verify({
24			id => 'MLM',
25		});
26
27		ok(defined($d2));
28	} catch Error with {
29		my $ex = shift;
30		fail($ex->stringify);
31	};
32
33	ok(!defined($d1->dkim_getdomain()));
34
35	my $header = 'From: Nigel Horne <njh@example.com>';
36	ok($d1->dkim_header({ header => $header, len => length($header) }) == DKIM_STAT_OK);
37
38	$header = 'From: Nigel Horne <njh@xyzzy.com>';
39	ok($d2->dkim_header({ header => $header, len => length($header) }) == DKIM_STAT_OK);
40
41	$header = 'To: Tester <dktest@blackops.org>';
42	ok($d1->dkim_header({ header => $header, len => length($header) }) == DKIM_STAT_OK);
43	ok($d2->dkim_header({ header => $header, len => length($header) }) == DKIM_STAT_OK);
44
45	$d1->dkim_eoh();
46
47	ok(!defined($d2->dkim_getdomain()));
48
49	$d2->dkim_eoh();
50
51	ok($d1->dkim_getdomain() eq 'example.com');
52	ok($d2->dkim_getdomain() eq 'xyzzy.com');
53
54	ok($d2->dkim_free() == DKIM_STAT_OK);
55	ok($d1->dkim_free() == DKIM_STAT_OK);
56
57	$o->dkim_close();
58}
59