about summary refs log tree commit homepage
path: root/t/psgi_v2.t
diff options
context:
space:
mode:
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-03-23 02:24:03 +0000
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-03-23 02:39:56 +0000
commit0f5b6cfca5c040162ff06ee1185eb6e4bad4b69c (patch)
tree1a0e7b90413c8c0e6fc1cd70eef8383884b17031 /t/psgi_v2.t
parent107123dd03f38b97579ce5976f31ae3fd5f22903 (diff)
downloadpublic-inbox-0f5b6cfca5c040162ff06ee1185eb6e4bad4b69c.tar.gz
Some test coverage is better than none, here.
Diffstat (limited to 't/psgi_v2.t')
-rw-r--r--t/psgi_v2.t22
1 files changed, 22 insertions, 0 deletions
diff --git a/t/psgi_v2.t b/t/psgi_v2.t
index 6a2ea5ba..73897985 100644
--- a/t/psgi_v2.t
+++ b/t/psgi_v2.t
@@ -43,6 +43,7 @@ $mime->body_set("hello world!\n");
 
 my @warn;
 local $SIG{__WARN__} = sub { push @warn, @_ };
+$mime->header_set(Date => 'Fri, 02 Oct 1993 00:01:00 +0000');
 ok($im->add($mime), 'added duplicate-but-different message');
 is(scalar(@warn), 1, 'got one warning');
 my @mids = $mime->header_obj->header_raw('Message-Id');
@@ -71,6 +72,12 @@ test_psgi(sub { $www->call(@_) }, sub {
         like($raw, qr/^hello world!$/m, 'second message with new Message-Id');
         @from_ = ($raw =~ m/^From /mg);
         is(scalar(@from_), 1, 'only one From_ line');
+
+        # Atom feed should sort by Date: (if Received is missing)
+        $res = $cb->(GET('/v2test/new.atom'));
+        my @bodies = ($res->content =~ />(hello [^<]+)</mg);
+        is_deeply(\@bodies, [ "hello world!\n", "hello world\n" ],
+                'Atom ordering is chronological');
 });
 
 $mime->header_set('Message-Id', 'a-mid@b');
@@ -99,6 +106,21 @@ test_psgi(sub { $www->call(@_) }, sub {
         like($raw, qr/^hello ghosts$/m, 'got third message');
         @from_ = ($raw =~ m/^From /mg);
         is(scalar(@from_), 3, 'three From_ lines');
+
+        SKIP: {
+                eval { require IO::Uncompress::Gunzip };
+                skip 'IO::Uncompress::Gunzip missing', 4 if $@;
+
+                $res = $cb->(GET('/v2test/a-mid@b/t.mbox.gz'));
+                my $out;
+                my $in = $res->content;
+                my $status = IO::Uncompress::Gunzip::gunzip(\$in => \$out);
+                like($out, qr/^hello world$/m, 'got first in t.mbox.gz');
+                like($out, qr/^hello world!$/m, 'got second in t.mbox.gz');
+                like($out, qr/^hello ghosts$/m, 'got third in t.mbox.gz');
+                @from_ = ($raw =~ m/^From /mg);
+                is(scalar(@from_), 3, 'three From_ lines in t.mbox.gz');
+        };
 });
 
 done_testing();