use Socket qw(SO_KEEPALIVE IPPROTO_TCP TCP_NODELAY);
use File::Temp qw/tempdir/;
use Net::NNTP;
+use Sys::Hostname;
my $tmpdir = tempdir('pi-nntpd-XXXXXX', TMPDIR => 1, CLEANUP => 1);
my $home = "$tmpdir/pi-home";
Cc: $addr
Message-Id: <nntp\@example.com>
Content-Type: text/plain; charset=utf-8
-Subject: Testing for =?utf-8?Q?El=C3=A9anor?=
+Subject: Testing for =?utf-8?Q?El=C3=A9anor?=
Date: Thu, 01 Jan 1970 06:06:06 +0000
Content-Transfer-Encoding: 8bit
+References: <ref tab squeezed>
This is a test message for El\xc3\xa9anor
EOF
'from' => "El\xc3\xa9anor <me\@example.com>",
'to' => "El\xc3\xa9anor <you\@example.com>",
'cc' => $addr,
- 'xref' => "example.com $group:1"
+ 'xref' => hostname . " $group:1",
+ 'references' => '<reftabsqueezed>',
);
my $s = IO::Socket::INET->new(%opts);
sysread($s, my $buf, 4096);
- is($buf, "201 server ready - post via email\r\n", 'got greeting');
+ is($buf, "201 " . hostname . " ready - post via email\r\n",
+ 'got greeting');
$s->autoflush(1);
ok(syswrite($s, " \r\n"), 'wrote spaces');
$s = IO::Socket::INET->new(%opts);
sysread($s, $buf, 4096);
- is($buf, "201 server ready - post via email\r\n", 'got greeting');
+ is($buf, "201 " . hostname . " ready - post via email\r\n",
+ 'got greeting');
$s->autoflush(1);
syswrite($s, "NEWGROUPS 19990424 000000 GMT\r\n");
"El\xc3\xa9anor <me\@example.com>",
'Thu, 01 Jan 1970 06:06:06 +0000',
'<nntp@example.com>',
- '',
+ '<reftabsqueezed>',
$len,
- '1' ] }, "XOVER range works");
+ '1',
+ 'Xref: '. hostname . ' test-nntpd:1'] },
+ "XOVER range works");
is_deeply($n->xover('1'), {
'1' => ["Testing for El\xc3\xa9anor",
"El\xc3\xa9anor <me\@example.com>",
'Thu, 01 Jan 1970 06:06:06 +0000',
'<nntp@example.com>',
- '',
+ '<reftabsqueezed>',
$len,
- '1' ] }, "XOVER by article works");
+ '1',
+ 'Xref: '. hostname . ' test-nntpd:1'] },
+ "XOVER by article works");
is_deeply($n->head(1), $n->head('<nntp@example.com>'), 'HEAD OK');
is_deeply($n->body(1), $n->body('<nntp@example.com>'), 'BODY OK');
is($r[1], "0\tTesting for El\xc3\xa9anor\t" .
"El\xc3\xa9anor <me\@example.com>\t" .
"Thu, 01 Jan 1970 06:06:06 +0000\t" .
- "$mid\t\t$len\t1", 'OVER by Message-ID works');
+ "$mid\t<reftabsqueezed>\t$len\t1" .
+ "\tXref: " . hostname . " test-nntpd:0",
+ 'OVER by Message-ID works');
is($r[2], '.', 'correctly terminated response');
}
is_deeply($n->xhdr(qw(Cc 1-)), { 1 => 'test-nntpd@example.com' },
'XHDR Cc 1- works');
- is_deeply($n->xhdr(qw(References 1-)), { 1 => '' },
- 'XHDR References 1- works (empty string)');
+ is_deeply($n->xhdr(qw(References 1-)), { 1 => '<reftabsqueezed>' },
+ 'XHDR References 1- works)');
is_deeply($n->xhdr(qw(list-id 1-)), {},
'XHDR on invalid header returns empty');