From 4af9fd9c5e46eed341a535f37d54cf228303326c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 17 Jun 2016 21:32:59 +0000 Subject: view: introduce WwwStream interface This will allow us to commonalize HTML generation in the future and is the start of moving existing HTML generation to a "pull" streaming model (from the existing "push" one). Using the getline/close pull model is superior to the existing $fh->write streaming as it allows us to throttle response generation based on backpressure from slow clients. --- t/view.t | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 't') diff --git a/t/view.t b/t/view.t index 6c085991..4ce3c773 100644 --- a/t/view.t +++ b/t/view.t @@ -5,12 +5,24 @@ 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(undef, $mime); + my $body = PublicInbox::View::msg_html($ctx, $mime); while (defined(my $buf = $body->getline)) { $s .= $buf; } -- cgit v1.2.3-24-ge0c7