<?php /** * EGroupware Api: HTML handling tests * * @link http://egroupware.org * @package api * @subpackage mail * @author Nathan Gray * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License */ namespace EGroupware\Api\Mail; use EGroupware\Api; use PHPUnit\Framework\TestCase; /** * Tests for HTML handling * * @author nathan */ class HtmlTest extends TestCase { /** * Test how HTML lists (ol & ul) get converted to a plain text equivalent * * @dataProvider listDataProvider */ public function testListToText($html, $expected_text) { $replaced = Html::replaceLists($html); $this->assertEquals($expected_text, $replaced); } /** * Data for checking HTML list conversion to plain text * * HTML first, then expected text */ public function listDataProvider() { return array( // HTML // Plaintext ['', ''], ['Not actually HTML', 'Not actually HTML'], ['HTML, but <b>NO</b> list here', 'HTML, but <b>NO</b> list here'], ["<p>Unordered list:<ul><li>First</li>\r\n<li>Second</li>\r\n<li>Third</li>\r\n</ul>\r\nPost text</p>", "<p>Unordered list:</p>\r\n * First\r\n * Second\r\n * Third\r\n<p>\r\nPost text</p>\n"], ["Ordered list:". "<ol><li>First</li>\r\n" . "<li>Second</li>\r\n" . "<li>Third</li>\r\n" . "</ol>Post text", "<p>Ordered list:</p>\r\n" . " 1. First\r\n" . " 2. Second\r\n" . " 3. Third\r\n" . "<p>Post text</p>\n"], [ ' <ol> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">Nummerierung </span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">zweitens</span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">drittens</span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">viertens</span></li> </ol> <p><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">dann normaler Text</span></p> <ul> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">aufzählung</span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">mit verschiedenen punkten</span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">dritter spiegelstrich</span></li> <li><span style="width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;">vierter strich</span></li> </ul> <pre> </pre>', "\r\n 1. Nummerierung \r 2. zweitens\r 3. drittens\r 4. viertens\r <p><span style=\"width: 100%; display: inline; font-family: arial, helvetica, sans-serif; font-size: 12pt;\">dann normaler Text</span></p>\r * aufzählung\r * mit verschiedenen punkten\r * dritter spiegelstrich\r * vierter strich\r\n<pre> </pre>\n" ] ); } }