From e2bf369633c19d2845302677dbad613e428f63c1 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 18:19:45 -0500 Subject: [PATCH] Document that last enclosure wins. --- IkiWiki/Plugin/meta.pm | 1 + t/podcast.t | 37 ++++++++++++------- .../attempted_multiple_enclosures.mdwn | 4 ++ 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 t/tinypodcast/attempted_multiple_enclosures.mdwn diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index c77837e3c..70233decf 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -130,6 +130,7 @@ sub preprocess (@) { $value=urlto($link, $page); $pagestate{$page}{meta}{enclosure}=$value; + # fallthrough } elsif ($key eq 'author') { $pagestate{$page}{meta}{author}=$value; diff --git a/t/podcast.t b/t/podcast.t index 993814742..3125a7e55 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 => 78}; + eval q{use Test::More tests => 81}; } } @@ -25,8 +25,10 @@ sub simple_podcast { push @command, qw(-set underlaydirbase=underlays -templatedir=templates); push @command, "-url=$baseurl", qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir $tmp"), q{setup}); - ok(! system(@command), q{build}); + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); my %media_types = ( 'simplepost' => undef, @@ -97,21 +99,28 @@ sub single_page_html { 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}); + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); my $html = "$tmp/out/pianopost/index.html"; - - my $body = _extract_html_content($html, 'content'); - like($body, qr/article has content and/m, q{html body text}); - - my $enclosure = _extract_html_content($html, 'enclosure'); - like($enclosure, qr/Download this episode/m, q{html enclosure}); - + like(_extract_html_content($html, 'content'), qr/has content and/m, + q{html body text}); + like(_extract_html_content($html, 'enclosure'), qr/this episode/m, + q{html enclosure}); my ($href) = _extract_html_links($html, 'piano'); - ok(-f $href, q{html enclosure exists}); + ok(-f $href, + q{html enclosure exists}); - # XXX die if more than one enclosure is specified + $html = "$tmp/out/attempted_multiple_enclosures/index.html"; + like(_extract_html_content($html, 'content'), qr/has content and/m, + q{html body text}); + like(_extract_html_content($html, 'enclosure'), qr/this episode/m, + q{html enclosure}); + ($href) = _extract_html_links($html, 'walter'); + ok(-f $href, + q{html enclosure exists}); ok(! system("rm -rf $tmp $statedir"), q{teardown}); } diff --git a/t/tinypodcast/attempted_multiple_enclosures.mdwn b/t/tinypodcast/attempted_multiple_enclosures.mdwn new file mode 100644 index 000000000..ea7bae8d0 --- /dev/null +++ b/t/tinypodcast/attempted_multiple_enclosures.mdwn @@ -0,0 +1,4 @@ +[[!meta enclosure="piano.mp3" enclosure="scroll.3gp"]] +[[!meta enclosure="walter.ogg"]] + +this article has content _and_ only one enclosure!