Merge pull request #5066 from deepak-srivastava/CRM-15490
[civicrm-core.git] / tests / phpunit / CRM / Utils / HtmlToTextTest.php
1 <?php
2
3 require_once 'CiviTest/CiviUnitTestCase.php';
4
5 /**
6 * Class CRM_Utils_HtmlToTextTest
7 */
8 class CRM_Utils_HtmlToTextTest extends CiviUnitTestCase {
9
10 public function setUp() {
11 parent::setUp();
12 }
13
14 /**
15 * @return array
16 */
17 public function htmlToTextExamples() {
18 $cases = array(); // array(0 => string $html, 1 => string $text)
19
20 $cases[] = array(
21 '<br/><p>',
22 '',
23 );
24
25 $cases[] = array(
26 "\n<p>\n" .
27 "This is a paragraph with <b>Bold</b> and <i>italics</i>\n" .
28 "Also some <a href=\"http://www.example.com\">hrefs</a> and a\n" .
29 "few <mailto:\"info@example.org\">mailto</mailto> tags.\n" .
30 "This is also a really long long line\n" .
31 "\n",
32 "This is a paragraph with BOLD and _italics_ Also some hrefs [1] and a few\n" .
33 "mailto tags. This is also a really long long line\n" .
34 "\n" .
35 "Links:\n" .
36 "------\n" .
37 "[1] http://www.example.com\n" .
38 "",
39 );
40
41 $cases[] = array(
42 "<p>\nA <a href=\"{action.do_something}\">token</a>\nis not treated as a relative URL",
43 "A token [1] is not treated as a relative URL\n" .
44 "\n" .
45 "Links:\n" .
46 "------\n" .
47 "[1] {action.do_something}\n",
48 );
49
50 return $cases;
51 }
52
53 /**
54 * @param string $html
55 * Example HTML input.
56 * @param string $text
57 * Expected text output.
58 * @dataProvider htmlToTextExamples
59 */
60 public function testHtmlToText($html, $text) {
61 $output = CRM_Utils_String::htmlToText($html);
62 $this->assertEquals(
63 trim($output),
64 trim($text),
65 "Text Output did not match for $html"
66 );
67 }
68
69 }