X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fview.t;h=4ce3c7739018ddf3f5d060471043d729320ef55c;hb=4af9fd9c5e46eed341a535f37d54cf228303326c;hp=325f509c0660e83d6f7c03a81809fd3b6552c13b;hpb=f76f265a851944b5dedcc3be5f3b5224b6ebda89;p=public-inbox.git
diff --git a/t/view.t b/t/view.t
index 325f509c..4ce3c773 100644
--- a/t/view.t
+++ b/t/view.t
@@ -5,6 +5,30 @@ use warnings;
use Test::More;
use Email::MIME;
use PublicInbox::View;
+use Plack::Util;
+
+# FIXME: make this test less fragile
+my $ctx = {
+ env => { HTTP_HOST => 'example.com', 'psgi.url_scheme' => 'http' },
+ -inbox => Plack::Util::inline_object(
+ name => 'test',
+ search => sub { undef },
+ cloneurl => sub {[]},
+ description => sub { '' }),
+};
+$ctx->{-inbox}->{-primary_address} = 'test@example.com';
+
+sub msg_html ($) {
+ my ($mime) = @_;
+
+ my $s = '';
+ my $body = PublicInbox::View::msg_html($ctx, $mime);
+ while (defined(my $buf = $body->getline)) {
+ $s .= $buf;
+ }
+ $body->close;
+ $s;
+}
# plain text
{
@@ -41,26 +65,12 @@ EOF
body => $body,
)->as_string;
my $mime = Email::MIME->new($s);
- my $html = PublicInbox::View::msg_html(undef, $mime);
+ my $html = msg_html($mime);
# ghetto tests
- like($html, qr!]+><\/a>> Long and wordy/,
- "long quoted text is anchored");
-
- # short page
- my $pfx = "../hello%40example.com/f/";
- $mime = Email::MIME->new($s);
- my $short = PublicInbox::View::msg_html(undef, $mime, $pfx);
- like($short, qr!]+>Long and wordy/,
- "long quoted text is made into a link");
- ok(length($short) < length($html), "short page is shorter");
}
# multipart crap
@@ -85,8 +95,8 @@ EOF
parts => $parts,
);
- my $html = PublicInbox::View::msg_html(undef, $mime);
- like($html, qr/hi\n-+ part #2 -+\nbye\n/, "multipart split");
+ my $html = msg_html($mime);
+ like($html, qr/hi\n.*-- Attachment #2.*\nbye\n/s, "multipart split");
}
# multipart email with attached patch
@@ -114,8 +124,8 @@ EOF
parts => $parts,
);
- my $html = PublicInbox::View::msg_html(undef, $mime);
- like($html, qr!see attached patch\n-+ foo\.patch -+\n--- a/file\n!,
+ my $html = msg_html($mime);
+ like($html, qr!.*Attachment #2: foo\.patch --!,
"parts split with filename");
}
@@ -140,18 +150,20 @@ EOF
);
my $orig = $mime->body_raw;
- my $html = PublicInbox::View::msg_html(undef, $mime);
+ my $html = msg_html($mime);
like($orig, qr/hi =3D bye=/, "our test used QP correctly");
like($html, qr/\bhi = bye\b/, "HTML output decoded QP");
}
+{
+ use PublicInbox::MID qw/id_compress/;
-{ # XXX dirty hack
- use PublicInbox::MID qw/mid_compress/;
- like(mid_compress('foo%bar@wtf'), qr/\A[a-f0-9]{40}\z/,
+ # n.b: this is probably invalid since we dropped CGI for PSGI:
+ like(id_compress('foo%bar@wtf'), qr/\A[a-f0-9]{40}\z/,
"percent always converted to sha1 to workaround buggy httpds");
- is(mid_compress('foobar@wtf'), 'foobar@wtf',
- 'regular MID not compressed');
+
+ is(id_compress('foobar-wtf'), 'foobar-wtf',
+ 'regular ID not compressed');
}
done_testing();