File: Test_LinkParser.pm

package info (click to toggle)
libpod-xhtml-perl 1.61-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 240 kB
  • sloc: perl: 916; makefile: 7
file content (55 lines) | stat: -rw-r--r-- 1,316 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#$Revision: 1.5 $
package Test_LinkParser;
use Pod::ParseUtils;
use strict;
use vars '@ISA', '$VERSION';
@ISA = 'Pod::Hyperlink';
$VERSION = ('$Revision: 1.5 $' =~ /([\d\.]+)/)[0];

# Override Pod::Hyperlink for the unit tests since different versions behave
# differently WRT decorating links (e.g. '... elsewhere in this document')

TRACE("\$Pod::ParseUtils::VERSION: " . $Pod::ParseUtils::VERSION);

if (1) { # Set to '0' to test against Pod::Hyperlink
	*markup = *markup = \&_markup;
	*text = *text = \&_text;
}

sub _markup {
	my $self = shift;
	my $page = $self->page;
	my $node = $self->node;
	my $type = $self->type;
	$self->SUPER::markup(@_);
	my $text = $self->text(@_);
	DUMP($self);

	return $type eq 'hyperlink' ? $text
		: $self->alttext ? "Q<" . $self->alttext . ">"
		: $page && $node ? "Q<$node> in P<$page>"
		: !$page ? "Q<$node>"
		: $page && ! $node ?
			$page =~ /^(\w+)\((\d)\)/ ? "P<$1>($2)"  # manpages
			: "P<$page>"
		: 'XXX';
}

sub _text {
	my $self = shift;
	my $page = $self->page;
	my $node = $self->node;
	my $type = $self->type;
	my $text = $self->SUPER::text(@_);
	DUMP($self);

	return $type eq 'hyperlink' ? $text
		: $self->alttext ? $self->alttext
		: $page && $node ? "$node in $page"
		: !$page ? "$node"
		: $page && ! $node ? $page
		: 'XXX';
}

sub TRACE {}
sub DUMP  {}