PDF converter * distributed under the OSL-3.0 License * * @package Html2pdf * @author Laurent MINGUET * @copyright 2017 Laurent MINGUET */ namespace Spipu\Html2Pdf\Tests\Exception; use Spipu\Html2Pdf\Exception\ExceptionFormatter; use Spipu\Html2Pdf\Exception\Html2PdfException; use Spipu\Html2Pdf\Exception\HtmlParsingException; use Spipu\Html2Pdf\Exception\ImageException; use Spipu\Html2Pdf\Exception\LongSentenceException; /** * Class ExceptionFormaterTest */ class ExceptionFormatterTest extends \PHPUnit_Framework_TestCase { /** * Test the formatter / generic exception */ public function testGeneric() { $exception = new Html2PdfException('My Message'); $formatter = new ExceptionFormatter($exception); $messages = [ $formatter->getMessage(), $formatter->getHtmlMessage() ]; foreach ($messages as $message) { $this->assertContains('Html2Pdf Error ['.Html2PdfException::ERROR_CODE.']', $message); $this->assertContains('My Message', $message); } } /** * Test the formatter / parsing exception */ public function testParsing() { $exception = new HtmlParsingException('My Message'); $exception->setInvalidTag('my_tag'); $exception->setHtmlLine(42); $formatter = new ExceptionFormatter($exception); $messages = [ $formatter->getMessage(), $formatter->getHtmlMessage() ]; foreach ($messages as $message) { $this->assertContains('Html2Pdf Error ['.HtmlParsingException::ERROR_CODE.']', $message); $this->assertContains('My Message', $message); $this->assertContains('my_tag', $message); $this->assertContains('42', $message); } } /** * Test the formatter / image exception */ public function testImage() { $exception = new ImageException('My Message'); $exception->setImage('my_image.png'); $formatter = new ExceptionFormatter($exception); $messages = [ $formatter->getMessage(), $formatter->getHtmlMessage() ]; foreach ($messages as $message) { $this->assertContains('Html2Pdf Error ['.ImageException::ERROR_CODE.']', $message); $this->assertContains('My Message', $message); $this->assertContains('my_image.png', $message); } } /** * Test the formatter / long sentence exception */ public function testLongSentence() { $exception = new LongSentenceException('My Message'); $exception->setSentence('my sentence'); $exception->setLength(142); $exception->setWidthBox(242); $formatter = new ExceptionFormatter($exception); $messages = [ $formatter->getMessage(), $formatter->getHtmlMessage() ]; foreach ($messages as $message) { $this->assertContains('Html2Pdf Error ['.LongSentenceException::ERROR_CODE.']', $message); $this->assertContains('My Message', $message); $this->assertContains('my sentence', $message); $this->assertContains('142', $message); $this->assertContains('242', $message); } } }