CRM-12766
authorDonald A. Lobo <lobo@civicrm.org>
Wed, 5 Jun 2013 15:50:04 +0000 (08:50 -0700)
committerDonald A. Lobo <lobo@civicrm.org>
Wed, 5 Jun 2013 15:50:04 +0000 (08:50 -0700)
----------------------------------------
* CRM-12766: Upgrade html2text to version shipped by roundcube
  http://issues.civicrm.org/jira/browse/CRM-12766

CRM/Utils/String.php
tests/phpunit/CRM/Utils/HtmlToTextTest.php [new file with mode: 0644]

index 9289125691bbd5303919f3307a88d14e9b016237..05fd8fd59e8f62a720f69fa7efe2d3af745a9954 100644 (file)
@@ -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 (file)
index 0000000..ecce076
--- /dev/null
@@ -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"
+      );
+    }
+  }
+}
+