This is an extension for PHPUnit that uses online services for markup validation.
Class | Validates | Service |
---|---|---|
AssertHTML5 | HTML5 | http://html5.validator.nu/ |
-
Install Composer.
-
composer require kevintweber/phpunit-markup-validators
or add it to your composer.json file. -
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
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:
-
isValidMarkup(string $markup, string $message = '', Connector $connector = null)
Passes test if $markup is valid markup. -
isValidFile(string $pathToFile, string $message = '', Connector $connector = null)
Passes test if file at $pathToFile has valid markup. -
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.
Kevin Weber - [email protected]
phpunit-markup-validators is licensed under the MIT license. See LICENSE
for more details.
Parts were inspired from xvoland/html-validate.