]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - t/meta.t
Add ikistrap plugin for ikistrap theme.
[git.ikiwiki.info.git] / t / meta.t
old mode 100644 (file)
new mode 100755 (executable)
index ab25c2f..7f26a95
--- a/t/meta.t
+++ b/t/meta.t
@@ -1,6 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
+use Cwd qw(getcwd);
 use Test::More;
 use IkiWiki;
 
@@ -8,19 +9,30 @@ my $tmp = 't/tmp';
 my $srcdir = "$tmp/in";
 my $destdir = "$tmp/out";
 
-my @command = (qw(./ikiwiki.out --plugin meta --disable-plugin htmlscrubber));
-push @command, qw(-underlaydir=underlays/basewiki);
-push @command, qw(-set underlaydirbase=underlays);
-push @command, qw(--templatedir=templates);
+my $installed = $ENV{INSTALLED_TESTS};
+
+my @command;
+if ($installed) {
+       @command = qw(ikiwiki);
+}
+else {
+       ok(! system("make -s ikiwiki.out"));
+       @command = ("perl", "-I".getcwd, qw(./ikiwiki.out
+               --underlaydir=underlays/basewiki
+               --set underlaydirbase=underlays
+               --templatedir=templates));
+}
+
+push @command, qw(--plugin meta --disable-plugin htmlscrubber);
 push @command, $srcdir, $destdir;
 
 sub write_build_read_compare {
        my ($pagename, $input, $expected_output) = @_;
+       ok(! system("rm -rf $tmp"), q{setup});
        ok(! system("mkdir -p $srcdir"), q{setup});
        writefile("$pagename.mdwn", $srcdir, $input);
        ok(! system(@command), q{build});
        like(readfile("$destdir/$pagename/index.html"), $expected_output);
-       ok(! system("rm -rf $tmp"), q{teardown});
 }
 
 write_build_read_compare(
@@ -53,12 +65,6 @@ write_build_read_compare(
        qr{<div class="pagecopyright">},
 );
 
-write_build_read_compare(
-       'enclosure',
-       q{[[!meta enclosure="ikiwiki/login-selector/wordpress.png"]]},
-       qr{<meta name="enclosure" content="/ikiwiki/login-selector/wordpress.png" />},
-);
-
 write_build_read_compare(
        'author',
        q{[[!meta author="Noodly J. Appendage"]]},
@@ -79,14 +85,14 @@ write_build_read_compare(
 
 write_build_read_compare(
        'date',
-       q{[[!meta date="12345"]]},
-       qr{<meta name="date" content="12345" />},
+       q{[[!meta date="2000-01-23"]]},
+       qr{<meta name="date" content="2000-01-23" />},
 );
 
 write_build_read_compare(
        'updated',
-       q{[[!meta updated="12345"]]},
-       qr{<meta name="updated" content="12345" />},
+       q{[[!meta updated="2018-03-21"]]},
+       qr{<meta name="updated" content="2018-03-21" />},
 );
 
 #write_build_read_compare(
@@ -125,12 +131,11 @@ write_build_read_compare(
 #      qr{<link href="http://wonka\.link\.example" />},
 #);
 
-# XXX buggy? is this my bug? maybe twitter:foo would just work if this worked
-#write_build_read_compare(
-#      'name',
-#      q{[[!meta name="thingy" value1="hi" value2="hello"]]},
-#      qr{<meta name="thingy" value1="hi" value2="hello" />},
-#);
+write_build_read_compare(
+       'name',
+       q{[[!meta name="thingy" value1="hi" value2="hello"]]},
+       qr{<meta name="thingy" value[0-9]{1}=".+?" value[0-9]{1}=".+?" />},
+);
 
 write_build_read_compare(
        'keywords',
@@ -149,11 +154,23 @@ write_build_read_compare(
 #      '[[!meta twitter:card="player"]]',
 #      qr{<meta name="twitter:card" content="player" />},
 #);
-#
-#write_build_read_compare(
-#      'twittercard2',
-#      '[[!meta name="twitter:card" content="player"]]',
-#      qr{<meta name="twitter:card" content="player" />},
-#);
+
+write_build_read_compare(
+       'twittercard2',
+       '[[!meta name="twitter:card" content="player"]]',
+       qr{<meta name="twitter:card" content="player" />},
+);
+
+write_build_read_compare(
+       'malformed_ISO-8601',
+       '[[!meta date="2018-02-281T12:00:00-0500"]]',
+       qr{Error: cannot parse date/time: 2018-02-281T12:00:00-0500},
+);
+
+write_build_read_compare(
+       'nonsense_month',
+       '[[!meta date="2018-14-22T14:22:45-0500"]]',
+       qr{Error: cannot parse date/time: 2018-14-22T14:22:45-0500},
+);
 
 done_testing();