Almost-minimal filesystem based blog.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

126 lines
2.6 KiB

#!/usr/bin/perl
=pod
=head1 NAME
test.pl - a set of basic tests for display
=head1 SYNOPSIS
Given a working installation and configuration file:
./test.pl
=head1 DESCRIPTION
This section to-come.
=head1 MISSING TESTS
These items aren't tested at all, at the moment. A number of them aren't
particularly trivial to test.
sub get_diff
sub get_latest_diff_date
sub write_page
sub add_to_page
sub log_page_edit
sub parse_cookies
sub write_cookies_to_browser
sub setup
sub parse_parameters
sub write_diff
sub merge_diff
=head1 SEE ALSO
validate.pl in the WalaWiki distribution.
=cut
use strict;
use warnings;
use lib 'lib';
#use Test::HTML::W3C 'show_detail';
use Test::Simple tests => 10;
use Wala qw(%WalaConf %DISPLAY_CONF);
# TESTS
section ('configuration');
ok (Wala::eval_file("p1k3.conf.pl"), "eval_file on p1k3.conf.pl");
ok (defined %WalaConf, 'External configuration hash defined.');
section ('individual subroutine tests');
# This will turn off stuff that breaks testing.
$WalaConf{TestMode} = 1;
ok (Wala::get_username eq $WalaConf{'DefaultUserName'},
"get_username returns default.");
ok (Wala::get_mtime('Wala.pm') =~ m/\d+/,
'get_mtime returns digits.');
ok (Wala::mygmtime(0) eq 'Thu, 01-Jan-1970 00:00:00 GMT',
'mygmtime(0) returns epoch');
# Hack. Depends on ./log
LOGFILE: {
local $WalaConf{RootDir} = "./";
ok (Wala::recent_changes(1) =~ m/\d+ \w+ \w+.*$/,
'recent_changes(1) returns an appropriate logfile line.');
}
ok (Wala::spamcheck("http://spamcheckfunction.com", "TEST", "TEST") == 1,
'spamcheck trips on a URL');
section ('starting link code testing');
ok (
Wala::make_links_of_wiki_words('TestWord')
=~ m/<a href="$WalaConf{ScriptName}\?.*?TestWord"/,
'Return link for TestWord'
);
ok (
Wala::get_bracketed_link("[http://p1k3.com/ p1k3]")
eq "<a href=\"http://p1k3.com/\" class=\"external\">p1k3</a>",
'Return bracketed link'
);
# this isn't doing what I'd like it to.
ok (
Wala::pagelinks('PageLink [other page link]'),
'Pagelinks sub finds ' . Wala::pagelinks('PageLink [other page link]') . ' links'
);
# END OF TESTS
# Utility routines.
sub hash_print {
my %hash = @_;
my $string;
for my $key (keys %hash) {
$string .= "\n$key: $hash{$key}";
}
return $string;
}
sub pause {
my $time = shift;
#print " pausing $time seconds\n";
sleep $time;
}
sub section {
my $msg = shift;
print "\n-- $msg --\n\n";
}