]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - t/color.t
dca0d865c69692582e5c976a8c773d991fa28537
[git.ikiwiki.info.git] / t / color.t
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use Test::More;
5 use Encode;
7 BEGIN { use_ok("IkiWiki"); }
8 BEGIN { use_ok("IkiWiki::Render"); }
10 %config=IkiWiki::defaultconfig();
11 $config{srcdir}=$config{destdir}="/dev/null";
13 sub render {
14         my $content = shift;
15         $IkiWiki::pagesources{foo} = "foo.mdwn";
16         $IkiWiki::pagemtime{foo} = 42;
17         $IkiWiki::pagectime{foo} = 42;
18         $content = IkiWiki::filter("foo", "foo", $content);
19         $content = IkiWiki::preprocess("foo", "foo", $content);
20         $content = IkiWiki::linkify("foo", "foo", $content);
21         $content = IkiWiki::htmlize("foo", "foo", "mdwn", $content);
22         $content = IkiWiki::genpage("foo", $content);
23         return $content;
24 }
26 foreach my $scrub (0, 1) {
27         if ($scrub) {
28                 $config{add_plugins}=[qw(color htmlscrubber toc)];
29         }
30         else {
31                 $config{add_plugins}=[qw(color toc)];
32         }
34         IkiWiki::loadplugins();
35         IkiWiki::checkconfig();
37         like(render('[[!color foreground="fuchsia" background="lime" text="Alert"]]'),
38                 qr{(?s)<span class="color" style="color: fuchsia; background-color: lime">Alert</span>});
39         like(render('[[!color foreground="#336699" text="Hello"]]'),
40                 qr{(?s)<span class="color" style="color: \#336699">Hello</span>});
41         like(render('[[!color background="#123" text="[Over there](http://localhost/)"]]'),
42                 qr{(?s)<span class="color" style="background-color: \#123"><a href="http://localhost/">Over there</a></span>});
43         like(render('[[!color background="censored()" text="Hi"]]'),
44                 qr{(?s)<span class="color" style="">Hi</span>});
45         like(render('[[!color foreground="x; pwned: exploit" text="Hi"]]'),
46                 qr{(?s)<span class="color" style="">Hi</span>});
48         like(render("[[!toc ]]\n\n## [[!color foreground=red text=Important]]"),
49                 qr{<a href="\#index1h2">Important</a>});
50 }
52 done_testing();