about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-23 02:21:24 +0000
committerEric Wong <e@80x24.org>2015-09-23 06:38:55 +0000
commitd901e7842e13ff5dbf316eb79961732b607ebb1c (patch)
tree6469127c3acf4ccf294131e891b47a03fc45e810 /t
parente41a7b0db983b38f77f535b432e33a021b5bab38 (diff)
downloadpublic-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.t29
1 files changed, 26 insertions, 3 deletions
diff --git a/t/nntpd.t b/t/nntpd.t
index 28d84910..04444e48 100644
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -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');
         }
 
         {