Test::HTML::Tidy - Test::More-style wrapper around HTML::Tidy


Test-HTML-Tidy documentation Contained in the Test-HTML-Tidy distribution.

Index


Code Index:

NAME

Top

Test::HTML::Tidy - Test::More-style wrapper around HTML::Tidy

VERSION

Top

Version 1.28

    $Header: /home/cvs/test-html-tidy/Tidy.pm,v 1.4 2004/02/26 06:12:36 andy Exp $

SYNOPSIS

Top

    use Test::HTML::Tidy tests => 4;

    my $page = build_a_web_page();
    html_tidy_ok( $page, 'Built page properly' );

DESCRIPTION

Top

Handy way to check that HTML is valid, according to HTML::Tidy. It is built with Test::Builder and plays happily with Test::More and friends.

If you are not already familiar with Test::More now would be the time to go take a look.

EXPORT

Top

html_tidy_ok

html_tidy_ok( [$tidy, ] $html, $name )

Checks to see if $html contains valid HTML. $html being blank is OK. $html being undef is not.

If you pass an HTML::Tidy object, html_tidy_ok() will use that for its settings. The $html will get passed through $tidy.

    my $tidy = new HTML::Tidy;
    $tidy->ignore( type => TIDY_WARNING );
    html_tidy_ok( $tidy, $content, "Web page passes without errors" );

Otherwise, html_tidy_ok will use the default rules.

    html_tidy_ok( $content, "Web page passes ALL tests" );

Note that if you pass in your own HTML::Tidy object, html_tidy_ok() will clear its errors before using it.

Bugs

Top

Please report any bugs or feature requests to bug-test-html-tidy@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

Author

Top

Andy Lester, <andy@petdance.com>

Copyright & License

Top


Test-HTML-Tidy documentation Contained in the Test-HTML-Tidy distribution.
package Test::HTML::Tidy;

use strict;

use Test::Builder;
use Exporter;

use HTML::Tidy 1.00;

use vars qw( @ISA $VERSION @EXPORT );

@ISA = qw( Exporter );

$VERSION = '1.00';

my $Tester = Test::Builder->new;

@EXPORT = qw( html_tidy_ok );

sub import {
    my $self = shift;
    my $pack = caller;

    $Tester->exported_to($pack);
    $Tester->plan(@_);

    $self->export_to_level(1, $self, @EXPORT);
}

sub html_tidy_ok {
    my $tidy;

    if ( ref($_[0]) eq "HTML::Tidy" ) {
        $tidy = shift;
        $tidy->clear_messages();
    } else {
        $tidy = HTML::Tidy->new;
    }
    my $html = shift;
    my $name = shift;

    my $ok = defined $html;
    if ( !$ok ) {
        $Tester->ok( 0, $name );
    } else {
        $tidy->parse( $0, $html );
        my $nerr = scalar $tidy->messages;
        $ok = !$nerr;
        $Tester->ok( $ok, $name );
        if ( !$ok ) {
            my $msg = "Messages:";
            $msg .= " $name" if $name;
            $Tester->diag( $msg );
            $Tester->diag( $_->as_string ) for $tidy->messages;
        }
    }

    return $ok;
}

1;