]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - t/meta.t
Test many behaviors of the meta directive.
[git.ikiwiki.info.git] / t / meta.t
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use Test::More;
5 use IkiWiki;
7 my $tmp = 't/tmp';
8 my $srcdir = "$tmp/in";
9 my $destdir = "$tmp/out";
11 my @command = (qw(./ikiwiki.out --plugin meta --disable-plugin htmlscrubber));
12 push @command, qw(-underlaydir=underlays/basewiki);
13 push @command, qw(-set underlaydirbase=underlays);
14 push @command, qw(--templatedir=templates);
15 push @command, $srcdir, $destdir;
17 sub write_build_read_compare {
18         my ($pagename, $input, $expected_output) = @_;
19         ok(! system("mkdir -p $srcdir"), q{setup});
20         writefile("$pagename.mdwn", $srcdir, $input);
21         ok(! system(@command), q{build});
22         like(readfile("$destdir/$pagename/index.html"), $expected_output);
23         ok(! system("rm -rf $tmp"), q{teardown});
24 }
26 write_build_read_compare(
27         'title',
28         q{[[!meta title="a page about bar"]]},
29         qr{<title>a page about bar</title>},
30 );
32 write_build_read_compare(
33         'description',
34         q{[[!meta description="a page about bar"]]},
35         qr{<meta name="description" content="a page about bar" />},
36 );
38 write_build_read_compare(
39         'guid',
40         q{[[!meta guid="12345"]]},
41         qr{<meta name="guid" content="12345" />},
42 );
44 write_build_read_compare(
45         'license',
46         q{[[!meta license="you get to keep both pieces"]]},
47         qr{<div class="pagelicense">},
48 );
50 write_build_read_compare(
51         'copyright',
52         q{[[!meta copyright="12345"]]},
53         qr{<div class="pagecopyright">},
54 );
56 write_build_read_compare(
57         'enclosure',
58         q{[[!meta enclosure="ikiwiki/login-selector/wordpress.png"]]},
59         qr{<meta name="enclosure" content="/ikiwiki/login-selector/wordpress.png" />},
60 );
62 write_build_read_compare(
63         'author',
64         q{[[!meta author="Noodly J. Appendage"]]},
65         qr{<meta name="author" content="Noodly J. Appendage" />},
66 );
68 write_build_read_compare(
69         'authorurl',
70         q{[[!meta authorurl="http://noodly.appendage"]]},
71         qr{<meta name="authorurl" content="http://noodly.appendage" />},
72 );
74 write_build_read_compare(
75         'permalink',
76         q{[[!meta permalink="http://noodly.appendage"]]},
77         qr{<link rel="bookmark" href="http://noodly.appendage" />},
78 );
80 write_build_read_compare(
81         'date',
82         q{[[!meta date="12345"]]},
83         qr{<meta name="date" content="12345" />},
84 );
86 write_build_read_compare(
87         'updated',
88         q{[[!meta updated="12345"]]},
89         qr{<meta name="updated" content="12345" />},
90 );
92 #write_build_read_compare(
93 #       'stylesheet',
94 #       q{[[!meta stylesheet="wonka.css"]]},
95 #       qr{<link href="wonka.css"},
96 #);
98 #write_build_read_compare(
99 #       'script',
100 #       q{[[!meta script="wonka.js"]]},
101 #       qr{<link href="wonka.js"},
102 #);
104 write_build_read_compare(
105         'openid',
106         q{[[!meta openid="wonka.openid.example"]]},
107         qr{<link href="wonka\.openid\.example" rel="openid\.delegate" />},
108 );
110 write_build_read_compare(
111         'foaf',
112         q{[[!meta foaf="wonka.foaf.example"]]},
113         qr{<link rel="meta" type="application/rdf\+xml" title="FOAF"},
114 );
116 write_build_read_compare(
117         'redir',
118         q{[[!meta redir="http://wonka.redir.example"]]},
119         qr{<meta http-equiv="refresh" content="0; URL=http://wonka\.redir\.example" />},
120 );
122 #write_build_read_compare(
123 #       'link',
124 #       q{[[!meta link="http://wonka.link.example"]]},
125 #       qr{<link href="http://wonka\.link\.example" />},
126 #);
128 # XXX buggy? is this my bug? maybe twitter:foo would just work if this worked
129 #write_build_read_compare(
130 #       'name',
131 #       q{[[!meta name="thingy" value1="hi" value2="hello"]]},
132 #       qr{<meta name="thingy" value1="hi" value2="hello" />},
133 #);
135 write_build_read_compare(
136         'keywords',
137         q{[[!meta keywords="word1,word2,word3"]]},
138         qr{<meta name="keywords" content="word1,word2,word3" />},
139 );
141 write_build_read_compare(
142         'arbitrary',
143         q{[[!meta moo="mooooo"]]},
144         qr{<meta name="moo" content="mooooo" />},
145 );
147 #write_build_read_compare(
148 #       'twittercard1',
149 #       '[[!meta twitter:card="player"]]',
150 #       qr{<meta name="twitter:card" content="player" />},
151 #);
153 #write_build_read_compare(
154 #       'twittercard2',
155 #       '[[!meta name="twitter:card" content="player"]]',
156 #       qr{<meta name="twitter:card" content="player" />},
157 #);
159 done_testing();