diff options
author | Eric Wong <e@80x24.org> | 2015-09-23 02:21:24 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-09-23 06:38:55 +0000 |
commit | d901e7842e13ff5dbf316eb79961732b607ebb1c (patch) | |
tree | 6469127c3acf4ccf294131e891b47a03fc45e810 /t | |
parent | e41a7b0db983b38f77f535b432e33a021b5bab38 (diff) | |
download | public-inbox-d901e7842e13ff5dbf316eb79961732b607ebb1c.tar.gz |
This is similar to XHDR, but differs in how it handles Message-ID lookups.
Diffstat (limited to 't')
-rw-r--r-- | t/nntpd.t | 29 |
1 files changed, 26 insertions, 3 deletions
@@ -59,7 +59,7 @@ To: You <you\@example.com> Cc: $addr Message-Id: <nntp\@example.com> Subject: hihi -Date: Thu, 01 Jan 1970 00:00:00 +0000 +Date: Thu, 01 Jan 1970 06:06:06 +0000 nntp EOF @@ -96,21 +96,44 @@ EOF is_deeply($list, { $group => [ qw(1 1 n) ] }, 'LIST works'); is_deeply([$n->group($group)], [ qw(0 1 1), $group ], 'GROUP works'); + %opts = ( + PeerAddr => $host_port, + Proto => 'tcp', + Type => SOCK_STREAM, + Timeout => 1, + ); my $mid = '<nntp@example.com>'; my %xhdr = ( 'message-id' => $mid, 'subject' => 'hihi', - 'date' => 'Thu, 01 Jan 1970 00:00:00 +0000', + 'date' => 'Thu, 01 Jan 1970 06:06:06 +0000', 'from' => 'Me <me@example.com>', 'to' => 'You <you@example.com>', 'cc' => $addr, 'xref' => "example.com $group:1" ); + + my $s = IO::Socket::INET->new(%opts); + sysread($s, my $buf, 4096); + is($buf, "201 server ready - post via email\r\n", 'got greeting'); + $s->autoflush(1); + while (my ($k, $v) = each %xhdr) { is_deeply($n->xhdr("$k $mid"), { $mid => $v }, - "$k by message-id works"); + "XHDR $k by message-id works"); is_deeply($n->xhdr("$k 1"), { 1 => $v }, "$k by article number works"); + is_deeply($n->xhdr("$k 1-"), { 1 => $v }, + "$k by article range works"); + next; + $buf = ''; + syswrite($s, "HDR $k $mid\r\n"); + do { + sysread($s, $buf, 4096, length($buf)); + } until ($buf =~ /^[^2]../ || $buf =~ /\r\n\.\r\n\z/); + my @r = split("\r\n", $buf); + like($r[0], qr/\A224 /, '224 response for HDR'); + is($r[1], "0 $v", 'got expected response for HDR'); } { |