Here is a new test script for Pod::ParseUtils.

I was mainly concerned with the link parsing. There is a good chance that 
Pod::ParseUtils is currently doing the wrong thing in some cases.

Most obvious to me is that 

  L<some text|manpage>

does not print "some text". I have not put in a test for that case since I 
do not have enough time to fix the problem in Pod::ParseUtils - if Russ 
patches Pod::ParseUtils to use Pod::ParseLink then I will add the more 
stringent tests.

This test could also be added to the PodParser distribution (hence the 
cc).

-- 
Tim Jenness
JAC software
http://www.jach.hawaii.edu/~timj

--- /dev/null   Fri Mar 23 18:37:44 2001
+++ lib/Pod/t/utils.t   Tue Nov 20 14:28:31 2001
@@ -0,0 +1,92 @@
+
+# Test hyperlinks et al from Pod::ParseUtils
+
+BEGIN {
+        chdir 't' if -d 't';
+        @INC = '../lib';
+        require Test; import Test;
+        plan(tests => 22);
+}
+
+use strict;
+use Pod::ParseUtils;
+
+# First test the hyperlinks
+
+my @links = qw{
+  name
+  name/ident
+  name/"sec"
+  "sec"
+  /"sec"
+  http://www.perl.org/
+  text|name
+  text|name/ident
+  text|name/"sec"
+  text|"sec"
+};
+
+my @results = (
+              "the P<name> manpage",
+              "the Q<ident> entry in the P<name> manpage",
+              "the section on Q<sec> in the P<name> manpage",
+              "the section on Q<sec> elsewhere in this document",
+              "the section on Q<sec> elsewhere in this document",
+              "Q<http://www.perl.org/>",
+              "Q<text>",
+              "Q<text>",
+              "Q<text>",
+              "Q<text>",
+             );
+
+ok(@results,@links);
+
+for my $i( 0..@links ) {
+  my $link = new Pod::Hyperlink( $links[$i] );
+  ok($link->markup, $results[$i]);
+}
+
+# Now test lists
+# This test needs to be better
+my $list = new Pod::List( -indent => 4,
+                         -start  => 52,
+                         -file   => "itemtest.t",
+                         -type   => "OL",
+                       );
+
+ok($list);
+
+ok($list->indent, 4);
+ok($list->start, 52);
+ok($list->type, "OL");
+
+
+# Pod::Cache
+
+# also needs work
+
+my $cache = new Pod::Cache;
+
+# Store it in the cache
+$cache->item(
+            -page => "Pod::ParseUtils",
+            -description => "A description",
+            -file => "file.t",
+ );
+
+# Now look for an item of this name
+my $item = $cache->find_page("Pod::ParseUtils");
+ok($item);
+
+# and a failure
+ok($cache->find_page("Junk"), undef);
+
+# Make sure that the item we found is the same one as the
+# first in the list
+my @i = $cache->item;
+ok($i[0], $item);
+
+# Check the contents
+ok($item->page, "Pod::ParseUtils");
+ok($item->description, "A description");
+ok($item->file, "file.t");

Reply via email to