Skip to content
This repository has been archived by the owner on Jan 25, 2020. It is now read-only.

A collection of PHPUnit extensions designed to use the validation services provided by the W3C.

License

Notifications You must be signed in to change notification settings

kevintweber/phpunit-markup-validators

Repository files navigation

Markup Validation for PHPUnit

This is an extension for PHPUnit that uses online services for markup validation.

ClassValidatesService
AssertHTML5HTML5http://html5.validator.nu/

Installation

  1. Install Composer.

  2. composer require kevintweber/phpunit-markup-validators
    or add it to your composer.json file.

  3. Install PHPUnit.

Note: I have removed PHPUnit as a composer dependency for folks who run PHPUnit globally. To install PHPUnit locally, use: composer require phpunit/phpunit

Usage

Here is an example of a minimal test case that will pass.

<?php

require_once("vendor/autoload.php");

use Kevintweber\PhpunitMarkupValidators\Assert\AssertHtml5;

class HtmlTest extends PHPUnit_Framework_TestCase
{
    public function testHTMLValidation()
    {
        AssertHTML5::isValidMarkup("<div>Whoa</div>", "Optional custom message.");
    }
}

Each assert class has three methods:

  1. isValidMarkup(string $markup, string $message = '', Connector $connector = null)
    Passes test if $markup is valid markup.

  2. isValidFile(string $pathToFile, string $message = '', Connector $connector = null)
    Passes test if file at $pathToFile has valid markup.

  3. isValidUrl(string $URL, string $message = '', Connector $connector = null)
    Passes test if webpage at $URL has valid markup.

In the event that a test fails, first the $message will be displayed, then a detailed error report will be listed.

(The third parameter is for custom connectors, in case you want to extend this library with your own services.)

Note: Each online service requests that API usage does not exceed 1 request per second. I have included a throttle class to limit requests. An easy workaround is to not use the same test class repeatedly, but rather alternate test classes.

Authors

Kevin Weber - [email protected]

License

phpunit-markup-validators is licensed under the MIT license. See LICENSE for more details.

Acknowledgements

Parts were inspired from xvoland/html-validate.

About

A collection of PHPUnit extensions designed to use the validation services provided by the W3C.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published