/usr/share/perl5/Test/HTML/Lint.pm is in libhtml-lint-perl 2.20+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | package Test::HTML::Lint;
use warnings;
use strict;
use Test::Builder;
use Exporter;
use HTML::Lint;
use vars qw( @ISA $VERSION @EXPORT );
@ISA = qw( HTML::Parser Exporter );
=head1 NAME
Test::HTML::Lint - Test::More-style wrapper around HTML::Lint
=head1 VERSION
Version 2.20
=cut
$VERSION = '2.20';
my $Tester = Test::Builder->new;
=head1 SYNOPSIS
use Test::HTML::Lint tests => 4;
my $table = build_display_table();
html_ok( $table, 'Built display table properly' );
=head1 DESCRIPTION
This module provides a few convenience methods for testing exception
based code. It is built with L<Test::Builder> and plays happily with
L<Test::More> and friends.
If you are not already familiar with L<Test::More> now would be the time
to go take a look.
=head1 EXPORT
C<html_ok>
=cut
@EXPORT = qw( html_ok );
sub import {
my $self = shift;
my $pack = caller;
$Tester->exported_to($pack);
$Tester->plan(@_);
$self->export_to_level(1, $self, @EXPORT);
return;
}
=head2 html_ok( [$lint, ] $html, $name )
Checks to see that C<$html> contains valid HTML.
Checks to see if C<$html> contains valid HTML. C<$html> being blank is OK.
C<$html> being undef is not.
If you pass an HTML::Lint object, C<html_ok()> will use that for its
settings.
my $lint = new HTML::Lint( only_types => STRUCTURE );
html_ok( $lint, $content, "Web page passes structural tests only" );
Otherwise, it will use the default rules.
html_ok( $content, "Web page passes ALL tests" );
Note that if you pass in your own HTML::Lint object, C<html_ok()>
will clear its errors before using it.
=cut
sub html_ok {
my $lint;
if ( ref($_[0]) eq 'HTML::Lint' ) {
$lint = shift;
$lint->newfile();
$lint->clear_errors();
}
else {
$lint = HTML::Lint->new;
}
my $html = shift;
my $name = shift;
my $ok = defined $html;
if ( !$ok ) {
$Tester->ok( 0, $name );
}
else {
$lint->parse( $html );
my $nerr = scalar $lint->errors;
$ok = !$nerr;
$Tester->ok( $ok, $name );
if ( !$ok ) {
my $msg = 'Errors:';
$msg .= " $name" if $name;
$Tester->diag( $msg );
$Tester->diag( $_->as_string ) for $lint->errors;
}
}
return $ok;
}
=head1 BUGS
All bugs and requests are now being handled through GitHub.
https://github.com/petdance/html-lint/issues
DO NOT send bug reports to http://rt.cpan.org/ or http://code.google.com/
=head1 TO DO
There needs to be a C<html_table_ok()> to check that the HTML is a
self-contained, well-formed table, and then a comparable one for
C<html_page_ok()>.
If you think this module should do something that it doesn't do at the
moment please let me know.
=head1 ACKNOWLEDGEMENTS
Thanks to chromatic and Michael G Schwern for the excellent Test::Builder,
without which this module wouldn't be possible.
Thanks to Adrian Howard for writing Test::Exception, from which most of
this module is taken.
=head1 COPYRIGHT & LICENSE
Copyright 2005-2012 Andy Lester.
This program is free software; you can redistribute it and/or modify
it under the terms of the Artistic License v2.0.
http://www.opensource.org/licenses/Artistic-2.0
Please note that these modules are not products of or supported by the
employers of the various contributors to the code.
=head1 AUTHOR
Andy Lester, C<andy@petdance.com>
=cut
1;
|