Permalink
Browse files

MDL-35206 Fix the links list enumeration in the html2text library

  • Loading branch information...
1 parent 32e550a commit 52d485c435cdaa621ef54324a516a74336478c55 @mudrd8mz mudrd8mz committed Jun 28, 2013
Showing with 27 additions and 1 deletion.
  1. +1 −1 lib/html2text.php
  2. +1 −0 lib/html2text_readme.txt
  3. +25 −0 lib/tests/html2text_test.php
View
@@ -584,7 +584,7 @@ function _build_link_list( $link, $display )
$index = count($this->_link_list);
}
- return $display . ' [' . ($index+1) . ']';
+ return $display . ' [' . ($index) . ']';
}
/**
View
@@ -12,6 +12,7 @@ Modifications
3. Use textlib, not crappy functions that break UTF-8, in the _strtoupper method. (Tim Hunt 2010-11-02)
4. Make sure html2text does not destroy '0'. (Tim Hunt 2011-09-21)
5. define missing mail charset
+6. Fixed the links list enumeration (MDL-35206).
Imported from: https://github.com/moodle/custom-html2text/tree/MOODLE_5886_1
@@ -73,6 +73,31 @@ public function test_zero() {
$this->assertSame('0', html_to_text('0'));
}
+ /**
+ * Test the links list enumeration.
+ */
+ public function test_build_link_list() {
+
+ // Note the trailing whitespace left intentionally in the text.
+ $text = 'Total of <a title="List of integrated issues"
+ href="http://tr.mdl.org/sh.jspa?r=1&j=p+%3D+%22I+d%22+%3D">
+ <strong>27 issues</strong></a> and <a href="http://another.url/?f=a&amp;b=2">some</a> other
+have been fixed <strong><a href="http://third.url/view.php">last week</a></strong>';
+
+ // Do not collect links.
+ $result = html_to_text($text, 5000, false);
+ $this->assertSame('Total of 27 ISSUES and some other have been fixed LAST WEEK', $result);
+
+ // Collect and enumerate links.
+ $result = html_to_text($text, 5000, true);
+ $this->assertSame(0, strpos($result, 'Total of 27 ISSUES [1] and some [2] other have been fixed LAST WEEK [3]'));
+ $this->assertSame(false, strpos($result, '[0]'));
+ $this->assertSame(1, preg_match('|^'.preg_quote('[1] http://tr.mdl.org/sh.jspa?r=1&j=p+%3D+%22I+d%22+%3D').'$|m', $result));
+ $this->assertSame(1, preg_match('|^'.preg_quote('[2] http://another.url/?f=a&amp;b=2').'$|m', $result));
+ $this->assertSame(1, preg_match('|^'.preg_quote('[3] http://third.url/view.php').'$|m', $result));
+ $this->assertSame(false, strpos($result, '[4]'));
+ }
+
// ======= Standard html2text conversion features =======
/**

0 comments on commit 52d485c

Please sign in to comment.