From: Amitai Schlair Date: Tue, 19 Feb 2013 00:34:20 +0000 (-0500) Subject: When inlining HTML pages, render enclosures. X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/aebd6c773c5c228f6fb960c5f02fed38ff1af6f7 When inlining HTML pages, render enclosures. --- diff --git a/t/podcast.t b/t/podcast.t index 3125a7e55..235c2e768 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -9,7 +9,7 @@ BEGIN { "XML::Feed and/or HTML::Parser not available"}; } else { - eval q{use Test::More tests => 81}; + eval q{use Test::More tests => 89}; } } @@ -125,6 +125,36 @@ sub single_page_html { ok(! system("rm -rf $tmp $statedir"), q{teardown}); } +sub inlined_pages_html { + my @command = (qw(./ikiwiki.out -plugin inline)); + push @command, qw(-underlaydir=underlays/basewiki); + push @command, qw(-set underlaydirbase=underlays -templatedir=templates); + push @command, qw(t/tinypodcast), "$tmp/out"; + + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); + + my $html = "$tmp/out/fancy/index.html"; + my $contents = _extract_html_content($html, 'content'); + like($contents, qr/has content and an/m, + q{html body text from pianopost}); + like($contents, qr/has content and only one/m, + q{html body text from attempted_multiple_enclosures}); + my $enclosures = _extract_html_content($html, 'inlineenclosure'); + like($enclosures, qr/this episode/m, + q{html enclosure}); + my ($href) = _extract_html_links($html, 'piano.mp3'); + ok(-f $href, + q{html enclosure from pianopost exists}); + ($href) = _extract_html_links($html, 'walter.ogg'); + ok(-f $href, + q{html enclosure from attempted_multiple_enclosures exists}); + + ok(! system("rm -rf $tmp $statedir"), q{teardown}); +} + sub _extract_html_content { my ($file, $desired_id, $desired_tag) = @_; $desired_tag = 'div' unless defined $desired_tag; @@ -141,11 +171,6 @@ sub _extract_html_content { my ($dtext) = @_; $content .= $dtext; }, "dtext"); - - $self->handler(end => sub { - my ($tag, $self) = @_; - $self->eof if $tag eq $desired_tag; - }, "tagname,self"); }, "tagname,self,attr"); $p->parse_file($file) || die $!; @@ -172,3 +197,4 @@ sub _extract_html_links { simple_podcast(); single_page_html(); +inlined_pages_html(); diff --git a/t/tinypodcast/fancy.mdwn b/t/tinypodcast/fancy.mdwn new file mode 100644 index 000000000..290f4c2fd --- /dev/null +++ b/t/tinypodcast/fancy.mdwn @@ -0,0 +1 @@ +[[!inline pages="pianopost or attempted_multiple_enclosures"]] diff --git a/templates/inlinepage.tmpl b/templates/inlinepage.tmpl index b0b53d041..cf0b6037e 100644 --- a/templates/inlinepage.tmpl +++ b/templates/inlinepage.tmpl @@ -23,6 +23,12 @@ +
+