use strict; use Wiki::Toolkit::Setup::SQLite; use OpenGuides; use OpenGuides::Test; use Test::More; eval { require DBD::SQLite; }; if ( $@ ) { my ($error) = $@ =~ /^(.*?)\n/; plan skip_all => "DBD::SQLite could not be used - no database to test with ($error)"; } plan tests => 12; OpenGuides::Test::refresh_db(); my $config = OpenGuides::Test->make_basic_config; $config->script_name( "wiki.cgi" ); $config->script_url( "http://example.com/" ); my $guide = OpenGuides->new( config => $config ); isa_ok( $guide, "OpenGuides" ); my $wiki = $guide->wiki; isa_ok( $wiki, "Wiki::Toolkit" ); # Add 3 different pages, one of which with two versions OpenGuides::Test->write_data( guide => $guide, node => "Test Page", categories => "Alpha", return_output => 1 ); OpenGuides::Test->write_data( guide => $guide, node => "Test Page 2", categories => "Alpha", return_output => 1 ); OpenGuides::Test->write_data( guide => $guide, node => "Locale Bar", categories => "Locales", return_output => 1 ); OpenGuides::Test->write_data( guide => $guide, node => "Locale Bar", categories => "Locales", return_output => 1 ); # Test the tt vars my %ttvars = eval { $guide->display_admin_interface( return_tt_vars=> 1 ); }; is( $@, "", "->display_admin_interface doesn't die" ); is( scalar @{$ttvars{'nodes'}}, 2, "Right number of nodes" ); is( scalar @{$ttvars{'locales'}}, 1, "Right number of locales" ); is( scalar @{$ttvars{'categories'}}, 2, "Right number of categories" ); my @node_names = map { $_->{name}; } @{$ttvars{nodes}}; is_deeply( [ sort @node_names ], [ "Test Page", "Test Page 2" ], "Right nodes" ); is( $ttvars{'locales'}->[0]->{name}, "Bar", "Right locale, right name" ); # Test the normal, HTML version my $output = eval { $guide->display_admin_interface( return_output=>1 ); }; is( $@, "", "->display_admin_interface doesn't die" ); like( $output, qr|Site Administration|, "Right page" ); like( $output, qr|Test Page|, "Has nodes" ); like( $output, qr|Bar|, "Has locales" );