2019-11-08 19:42:25 +01:00
|
|
|
<?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>",
|
2019-11-22 17:44:27 +01:00
|
|
|
"<p>Unordered list:</p>\r\n * First\r\n * Second\r\n * Third\r\n<p>\r\nPost text</p>\n"],
|
2019-11-08 19:42:25 +01:00
|
|
|
["Ordered list:".
|
|
|
|
"<ol><li>First</li>\r\n"
|
|
|
|
. "<li>Second</li>\r\n"
|
|
|
|
. "<li>Third</li>\r\n"
|
|
|
|
. "</ol>Post text",
|
2019-11-22 17:44:27 +01:00
|
|
|
"<p>Ordered list:</p>\r\n"
|
2019-11-08 19:42:25 +01:00
|
|
|
. " 1. First\r\n"
|
|
|
|
. " 2. Second\r\n"
|
|
|
|
. " 3. Third\r\n"
|
2019-11-22 17:44:27 +01:00
|
|
|
. "<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"
|
|
|
|
]
|
2019-11-08 19:42:25 +01:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|