The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Wiki::Toolkit::TestLib;
use Test::More;

if ( scalar @Wiki::Toolkit::TestLib::wiki_info == 0 ) {
    plan skip_all => "no backends configured";
} else {
    plan tests => ( 5 * scalar @Wiki::Toolkit::TestLib::wiki_info );
}

my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker;

while ( my $wiki = $iterator->new_wiki ) {
    $wiki->write_node("A Node", "Node content.") or die "Can't write node";

    # Test deletion of an existing node.
    eval { $wiki->delete_node("A Node") };
    is( $@, "", "delete_node doesn't die when deleting an existing node" );
    is( $wiki->retrieve_node("A Node"), "",
	"...and retrieving a deleted node returns the empty string" );
    ok( ! $wiki->node_exists("A Node"),
	    "...and ->node_exists now returns false" );
    SKIP: {
        skip "No search configured for this combination", 1
          unless $wiki->search_obj;
        my %results = $wiki->search_nodes("content");
        is_deeply( \%results, { }, "...and a search does not find the node" );
    }

    # Test deletion of a nonexistent node.
    eval { $wiki->delete_node("idonotexist") };
    is( $@, "",
	"delete_node doesn't die when deleting a non-existent node" );
}