#!perl use strict; use warnings; use Test::More tests => 13; use Text::WikiFormat; my $wikitext =<This should be a list.!m, 'unordered lists should be rendered correctly' ); like( $htmltext, qr!
  • This should be an ordered list.
  • !m, '...and ordered lists too' ); # Redefine all the list regexps to what they were to start with. my %tags = ( lists => { ordered => qr/([\dA-Za-z]+)\.\s*/, unordered => qr/\*\s*/, code => qr/ /, }, ); $htmltext = Text::WikiFormat::format($wikitext, \%tags, {} ); like( $htmltext, qr!
  • This should be a list.
  • !m, 'unordered should remain okay when we redefine all list regexps' ); like( $htmltext, qr!
  • This should be an ordered list.
  • !m, '... and so should ordered' ); # Redefine again, set one of them to something different. %tags = ( blocks => { ordered => qr/([\dA-Za-z]+)\.\s*/, unordered => qr/^\s*!\s*/, code => qr/ /, }, ); $htmltext = Text::WikiFormat::format($wikitext, \%tags, {} ); like( $htmltext, qr!
  • But marked differently
  • !m, 'unordered should still work when redefined' ); like( $htmltext, qr!
  • This should be an ordered list.
  • !m, '...and ordered should be unaffected' ); # Now try redefining just one list type. %tags = ( blocks => { unordered => qr/\s*!\s*/ }, ); $htmltext = Text::WikiFormat::format($wikitext, \%tags, {} ); like( $htmltext, qr!
  • This is like the default unordered list
  • !m, 'redefining just one list type should work for that type' ); like( $htmltext, qr!
  • This should be an ordered list.
  • !m, '...and should not affect other types too' ); # now test overriding strong and emphasized tags # don't use // to mark emphasized tags unless you /like/ this lookbehind %tags = ( strong_tag => qr/\*(.+?)\*/, emphasized_tag => qr|(?strong!, '... overriding strong tag' ); like( $htmltext, qr!emphasized!, '... overriding emphasized tag' ); like( $htmltext, qr!em.+ng!, '... and both at once' ); # Test redefining just one list type after using import with a list definition. package Bar; Text::WikiFormat->import( as => 'wf', blocks => { unordered => qr/^\s*!\s*/ }, ); $htmltext = wf(" !1. Ordered list\n ! Unordered list", { blocks => { ordered => qr/^\s*!([\d]+)\.\s*/ } }, {} ); ::like( $htmltext, qr!
  • Ordered list
  • !m, 'redefining a single list type after import should work for that type' ); ::like( $htmltext, qr!
  • Unordered list
  • !m, '...and also for a different type defined on import' );