diff --git a/CRM/Utils/String.php b/CRM/Utils/String.php index 9289125691bbd5303919f3307a88d14e9b016237..05fd8fd59e8f62a720f69fa7efe2d3af745a9954 100644 --- a/CRM/Utils/String.php +++ b/CRM/Utils/String.php @@ -409,8 +409,8 @@ class CRM_Utils_String { * @static */ static function htmlToText($html) { - require_once 'packages/html2text/class.html2text.inc'; - $converter = new html2text($html); + require_once 'packages/html2text/rcube_html2text.php'; + $converter = new rcube_html2text($html); return $converter->get_text(); } diff --git a/tests/phpunit/CRM/Utils/HtmlToTextTest.php b/tests/phpunit/CRM/Utils/HtmlToTextTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ecce076452f29059214be03f37571f25d738e751 --- /dev/null +++ b/tests/phpunit/CRM/Utils/HtmlToTextTest.php @@ -0,0 +1,46 @@ +<?php + +require_once 'CiviTest/CiviUnitTestCase.php'; + +class CRM_Utils_HtmlToTextTest extends CiviUnitTestCase { + protected $_testInput = array( + '<br><p>' => '', // empty test + ' +<p> +This is a paragraph with <b>Bold</b> and <i>italics</i> +Also some <a href="http://www.example.com">hrefs</a> and a +few <mailto:"info@example.org">mailto</mailto> tags. +This is also a really long long line' => ' +This is a paragraph with BOLD and _italics_ Also some hrefs [1] and a few +mailto tags. This is also a really long long line + +Links: +------ +[1] http://www.example.com +' + ); + + function get_info() { + return array( + 'name' => 'HtmlToText Test', + 'description' => 'Test htmlToText Function', + 'group' => 'CiviCRM BAO Tests', + ); + } + + function setUp() { + parent::setUp(); + } + + function testHtmlToText() { + foreach ($this->_testInput as $html => $text) { + $output = CRM_Utils_String::htmlToText($html); + $this->assertEquals( + trim($output), + trim($text), + "Text Output did not match for $html" + ); + } + } +} +