-# Copyright (C) 2014, Eric Wong <normalperson@yhbt.net> and all contributors
+# Copyright (C) 2014-2015 all contributors <meta@public-inbox.org>
# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
use strict;
use warnings;
use IPC::Run qw/run/;
use File::Temp qw/tempdir/;
my $have_xml_feed = eval { require XML::Feed; 1 };
+require 't/common.perl';
-my $tmpdir = tempdir(CLEANUP => 1);
+sub string_feed {
+ stream_to_string(PublicInbox::Feed::generate($_[0]));
+}
+
+my $tmpdir = tempdir('pi-feed-XXXXXX', TMPDIR => 1, CLEANUP => 1);
my $git_dir = "$tmpdir/gittest";
{
> I quote to much
> I quote to much
> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
msg $i
{
# check initial feed
{
- my $feed = PublicInbox::Feed->generate({
+ my $feed = string_feed({
git_dir => $git_dir,
max => 3
});
my $p = XML::Feed->parse(\$feed);
is($p->format, "Atom", "parsed atom feed");
is(scalar $p->entries, 3, "parsed three entries");
- is($p->id, 'public-inbox@example.com',
+ is($p->id, 'mailto:public-inbox@example.com',
"id is set to default");
}
- unlike($feed, qr/drop me/, "long quoted text dropped");
- like($feed, qr!/f/\d%40example\.com\.html\b!,
- "/f/ url generated for long quoted text");
+ like($feed, qr/drop me/, "long quoted text kept");
like($feed, qr/inline me here/, "short quoted text kept");
like($feed, qr/keep me/, "unquoted text saved");
}
# check spam shows up
{
- my $spammy_feed = PublicInbox::Feed->generate({
+ my $spammy_feed = string_feed({
git_dir => $git_dir,
max => 3
});
# spam no longer shows up
{
- my $feed = PublicInbox::Feed->generate({
+ my $feed = string_feed({
git_dir => $git_dir,
max => 3
});
# check pi_config
{
foreach my $addr (('a@example.com'), ['a@example.com','b@localhost']) {
- my $feed = PublicInbox::Feed->generate({
+ my $feed = string_feed({
git_dir => $git_dir,
max => 3,
listname => 'asdf',
SKIP: {
skip 'XML::Feed missing', 3 unless $have_xml_feed;
my $p = XML::Feed->parse(\$feed);
- is($p->id, 'a@example.com', "ID is set correctly");
+ is($p->id, 'mailto:a@example.com',
+ "ID is set correctly");
is($p->format, "Atom", "parsed atom feed");
is(scalar $p->entries, 3, "parsed three entries");
}