---
name: "Test::HTML::Lint"
section: "3pm"
platform: "linux"
package: "libhtml-lint-perl"
version: "2.32+dfsg-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::HTML::Lint"
---

# Test::HTML::Lint(3pm)

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

## NAME

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

## VERSION

Version 2.32

## SYNOPSIS

```
    use Test::HTML::Lint tests => 4;
    my $table = build_display_table();
    html_ok( $table, 'Built display table properly' );
```

## DESCRIPTION

This module provides a few convenience methods for testing exception based code. 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

`"html_ok"`

### html\_ok( \[$lint, \] $html, $name )

Checks to see if `$html` is a valid HTML document, including checks for having `"<html>"`, `"<head>"`, `"<title>>"` and `"<body>"` tags.

If you're checking something that is only a fragment of an HTML document, use `"html_fragment_ok()"`.

If you pass an HTML::Lint object, `"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, `"html_ok()"` will clear its errors before using it.

### html\_fragment\_ok( \[$lint, \] $html, $name )

Checks that `$fragment` is valid HTML, but not necessarily a valid HTML document.

For example, this is a valid fragment, but not a valid HTML document:

```
    <body>
        <p>Lorem ipsum</p>
    </body>
```

because it doesn't contain `"<html>"` and `"<head>"` tags.  If you want to check that it is a valid document, use `"html_ok()"`.

If you pass an HTML::Lint object, `"html_fragment_ok()"` will use that for its settings.

```
    my $lint = new HTML::Lint( only_types => STRUCTURE );
    html_fragment_ok( $lint, $content, 'Web page passes structural tests only' );
```

Otherwise, it will use the default rules.

```
    html_fragment_ok( $content, 'Fragment passes ALL tests' );
```

Note that if you pass in your own HTML::Lint object, `"html_fragment_ok()"` will clear its errors before using it.

## 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/.

## TO DO

There needs to be a `"html_table_ok()"` to check that the HTML is a self-contained, well-formed table, and then a comparable one for `"html_page_ok()"`.

If you think this module should do something that it doesn't do at the moment please let me know.

## 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.

## COPYRIGHT & LICENSE

Copyright 2005-2018 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.

## AUTHOR

Andy Lester, `"andy@petdance.com"`
