BBCode-Parser

 view release on metacpan or  search on metacpan

t/common.ph  view on Meta::CPAN

# Defines some Perl functions for the *.t scripts
use strict;
use warnings;

sub P() {
	no strict 'refs';
	return ${(caller(1))[0].'::p'};
}

sub bbtest($$;$) {
	my($src,$bbexpect,$htmlexpect);
	if(@_ == 3) {
		($src,$bbexpect,$htmlexpect) = @_;
	} else {
		($src,$htmlexpect) = @_;
		$bbexpect = $src;
	}

	my $msg = $src;
	$msg =~ s/\t/\\t/g;
	$msg =~ s/\n/\\n/g;

	my $tree = P->parse($src);

	is($tree->toBBCode, $bbexpect, "$msg (BBCode)");

	my $html = $tree->toHTML;
	$html =~ s/'/'/g;
	$html =~ s#^<div class="bbcode-body">\s*##;
	$html =~ s#\s*</div>\s*$##;
	$htmlexpect =~ s/^\s+|\s+$//g;
	$htmlexpect =~ s/&apos;/&#39;/g;

	is($html, $htmlexpect, "$msg (HTML)");
}

sub bbfail($) {
	my($src) = @_;

	my $msg = $src;
	$msg =~ s/\t/\\t/g;
	$msg =~ s/\n/\\n/g;

	eval {
		P->parse($src);
	};

	isnt("$@", "", "$msg (Failure)");
}

1;
# vim:set ft=perl:



( run in 2.055 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )