Add plugin_dir and plugin_list test cases.
[matthijs/upstream/blosxom.git] / t / 04_plugin_dir.t
diff --git a/t/04_plugin_dir.t b/t/04_plugin_dir.t
new file mode 100644 (file)
index 0000000..c27c35b
--- /dev/null
@@ -0,0 +1,35 @@
+# blosxom standard $plugin_dir testing
+
+use strict;
+use Test::More tests => 1;
+use Test::Differences;
+use Cwd;
+use IO::File;
+
+my $blosxom_root = 'plugin_dir';
+$blosxom_root = "t/$blosxom_root" if -d "t/$blosxom_root";
+$blosxom_root = cwd . "/$blosxom_root";
+die "cannot find root '$blosxom_root'" 
+  unless -d $blosxom_root;
+
+my $blosxom_config_dir = "$blosxom_root/config";
+die "cannot find blosxom config dir '$blosxom_config_dir'" unless -d $blosxom_config_dir;
+$ENV{BLOSXOM_CONFIG_DIR} = $blosxom_config_dir;
+
+my $blosxom_cgi = "$blosxom_root/../../blosxom.cgi";
+die "cannot find blosxom.cgi '$blosxom_cgi'" unless -f $blosxom_cgi;
+die "blosxom.cgi '$blosxom_cgi' is not executable" unless -x $blosxom_cgi;
+
+my $fh = IO::File->new("$blosxom_root/expected.html", 'r')
+  or die "cannot open expected output file '$blosxom_root/expected.html': $!";
+my $expected;
+{
+  local $/ = undef;
+  $expected = <$fh>;
+  $fh->close;
+}
+
+my $output = qx($blosxom_cgi);
+
+eq_or_diff($output, $expected, 'html output ok');
+