diff --git a/t/color.t b/t/color.t new file mode 100755 index 000000000..c5c14f6aa --- /dev/null +++ b/t/color.t @@ -0,0 +1,49 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More; +use Encode; + +BEGIN { use_ok("IkiWiki"); } +BEGIN { use_ok("IkiWiki::Render"); } + +%config=IkiWiki::defaultconfig(); +$config{srcdir}=$config{destdir}="/dev/null"; + +sub render { + my $content = shift; + $IkiWiki::pagesources{foo} = "foo.mdwn"; + $IkiWiki::pagemtime{foo} = 42; + $IkiWiki::pagectime{foo} = 42; + $content = IkiWiki::filter("foo", "foo", $content); + $content = IkiWiki::preprocess("foo", "foo", $content); + $content = IkiWiki::linkify("foo", "foo", $content); + $content = IkiWiki::htmlize("foo", "foo", "mdwn", $content); + $content = IkiWiki::genpage("foo", $content); + return $content; +} + +foreach my $scrub (0, 1) { + if ($scrub) { + $config{add_plugins}=[qw(color htmlscrubber)]; + } + else { + $config{add_plugins}=[qw(color)]; + } + + IkiWiki::loadplugins(); + IkiWiki::checkconfig(); + + like(render('[[!color foreground="fuchsia" background="lime" text="Alert"]]'), + qr{(?s)Alert}); + like(render('[[!color foreground="#336699" text="Hello"]]'), + qr{(?s)Hello}); + like(render('[[!color background="#123" text="[Over there](http://localhost/)"]]'), + qr{(?s)Over there}); + like(render('[[!color background="censored()" text="Hi"]]'), + qr{(?s)Hi}); + like(render('[[!color foreground="x; pwned: exploit" text="Hi"]]'), + qr{(?s)Hi}); +} + +done_testing();