1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
use strict;
use Test::More tests => 3;
use Wiki::Toolkit::Formatter::UseMod;
eval { require Wiki::Toolkit; require DBD::SQLite; };
my $test_wiki_available = $@ ? 0 : 1;
SKIP: {
skip "Either Wiki::Toolkit or DBD::SQLite not installed", 2
unless $test_wiki_available;
my $dbname = "./t/sqlite.db";
require Wiki::Toolkit::Setup::SQLite; require Wiki::Toolkit::Store::SQLite;
Wiki::Toolkit::Setup::SQLite::cleardb( $dbname );
Wiki::Toolkit::Setup::SQLite::setup( $dbname );
my $store = Wiki::Toolkit::Store::SQLite->new( dbname => $dbname );
my $wiki = Wiki::Toolkit->new( store => $store );
$wiki->write_node( "A state51 Node That Exists", "foo" )
or die "Can't write test node";
my $wikitext = <<WIKITEXT;
[[A state51 node that exists]]
[[A nonexistent state51 node]]
WIKITEXT
my $formatter = Wiki::Toolkit::Formatter::UseMod->new(
extended_links => 1,
munge_urls => 1,
munge_node_name => sub {
my $node_name = shift;
$node_name =~ s/State51/state51/g;
return $node_name;
},
);
my $html = $formatter->format( $wikitext, $wiki );
like( $html, qr|<a href="wiki.pl\?A_state51_Node_That_Exists">A state51 node that exists</a>|, "->format works with munge_node_name and existing links" );
like( $html, qr|<a href="wiki.pl\?action=edit;id=A_Nonexistent_state51_Node">\?</a>|, "->format works with munge_node_name and nonexistent links" );
}
my $wikitext = "[[A state51 node]]";
my $formatter = Wiki::Toolkit::Formatter::UseMod->new(
extended_links => 1,
munge_urls => 1,
munge_node_name => sub {
my $node_name = shift;
$node_name =~ s/State51/state51/g;
return $node_name;
},
);
my @nodes = $formatter->find_internal_links( $wikitext );
is_deeply( \@nodes, [ "A state51 Node" ],
"->find_internal_links works with munge_node_name" );
|