From: Amitai Schlair <schmonz-web-ikiwiki@schmonz.com>
Date: Mon, 18 Feb 2013 23:19:45 +0000 (-0500)
Subject: Document that last enclosure wins.
X-Git-Tag: 3.20130904~88^2~21^2~3
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/c3b17740aed9e7f2697999163e1a1c4f84b6ef8f?ds=inline;hp=--cc

Document that last enclosure wins.
---

c3b17740aed9e7f2697999163e1a1c4f84b6ef8f
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});
-
-	# XXX die if more than one enclosure is specified
+	ok(-f $href,
+		q{html enclosure exists});
+
+	$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!