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.
 
 
 

124 lines
1.8 KiB

#!/usr/bin/perl
=pod
=head1 NAME
test.pl - a set of basic tests for Display.pm
=head1 SYNOPSIS
Given a working installation and configuration file:
./test.pl
./test.pl -v # to dump config values, etc.
=head1 SEE ALSO
=cut
use strict;
use warnings;
use lib 'lib';
use lib 'wala';
use Test::Simple tests => 6;
use Display qw(%WalaConf %DISPLAY_CONF &handle);
sub section;
# cheap options:
my $VERBOSE;
for (@ARGV) {
$VERBOSE = 1 if m/-v|--verbose/;
}
my $testlines = <<LINES;
<textile>h1. Hello
Some stuff.
</textile>
<freeverse>
Dogs
frolic in
moonlight.
</freeverse>
<list>
one
two
</list>
LINES
my $expectedlines = <<LINES;
<h3>Hello</h3>
<p>Some stuff.</p>
<p>Dogs<br />
frolic in</p>
<p>moonlight.</p>
<ul>
<li>one</li>
<li>two</li>
</ul>
LINES
# Tests
section 'configuration';
ok (do("conf.pl"), "ran conf file");
ok (defined %WalaConf, '%WalaConf defined');
hash_print(%WalaConf) if $VERBOSE;
ok (defined %DISPLAY_CONF, '%DISPLAY_CONF defined');
hash_print(%DISPLAY_CONF) if $VERBOSE;
section 'individual subroutine tests';
ok (Display::recent_month() =~ m/\d{4}\/\d{1,2}/,
'recent_month returns a month');
section 'markup';
ok (Display::line_parse($testlines, undef) eq $expectedlines,
'line_parse works');
print "\nline_parse result:\n" .
Display::line_parse('', $testlines) . "\n" if $VERBOSE;
ok (Display::line_parse("IS <perl>return 'TRUE';</perl>", '') eq 'IS TRUE',
'eval_perl in line_parse');
# Utility routines.
sub hash_print {
my %hash = @_;
my $string;
for my $key (sort keys %hash) {
$string .= "\n\t$key: $hash{$key}";
}
print $string . "\n\n";
return;
}
sub pause {
my $time = shift;
#print " pausing $time seconds\n";
sleep $time;
}
sub section {
my $msg = shift;
print "\n-- $msg --\n\n";
}