Skip to content
This repository
Browse code

use html ellipsis if possible (only a single char and therefore does …

…not line break or mess up the strlen count for length)
  • Loading branch information...
commit f201684873a6d9efec11c4b313669219d07f01a2 1 parent 9e96c47
Mark authored
18  lib/Cake/Test/Case/Utility/StringTest.php
@@ -380,17 +380,17 @@ public function testTruncate() {
380 380
 		$this->assertSame($this->Text->truncate($text3, 20), '<b>&copy; 2005-20...');
381 381
 		$this->assertSame($this->Text->truncate($text4, 15), '<img src="my...');
382 382
 		$this->assertSame($this->Text->truncate($text5, 6, array('ellipsis' => '')), '0<b>1<');
383  
-		$this->assertSame($this->Text->truncate($text1, 15, array('html' => true)), 'The quick br...');
384  
-		$this->assertSame($this->Text->truncate($text1, 15, array('exact' => false, 'html' => true)), 'The quick...');
385  
-		$this->assertSame($this->Text->truncate($text2, 10, array('html' => true)), 'Heiz&ouml;lr...');
386  
-		$this->assertSame($this->Text->truncate($text2, 10, array('exact' => false, 'html' => true)), '...');
387  
-		$this->assertSame($this->Text->truncate($text3, 20, array('html' => true)), '<b>&copy; 2005-2007, Cake...</b>');
388  
-		$this->assertSame($this->Text->truncate($text4, 15, array('html' => true)), '<img src="mypic.jpg"> This image ...');
389  
-		$this->assertSame($this->Text->truncate($text4, 45, array('html' => true)), '<img src="mypic.jpg"> This image tag is not XHTML conform!<br><hr/><b>But t...</b>');
390  
-		$this->assertSame($this->Text->truncate($text4, 90, array('html' => true)), '<img src="mypic.jpg"> This image tag is not XHTML conform!<br><hr/><b>But the following image tag should be conform <img src="mypic.jpg" alt="Me, myself and I" /></b><br />Grea...');
  383
+		$this->assertSame($this->Text->truncate($text1, 15, array('html' => true)), 'The quick brow' . chr(226));
  384
+		$this->assertSame($this->Text->truncate($text1, 15, array('exact' => false, 'html' => true)), 'The quick' . chr(226));
  385
+		$this->assertSame($this->Text->truncate($text2, 10, array('html' => true)), 'Heiz&ouml;lr&uuml;c' . chr(226));
  386
+		$this->assertSame($this->Text->truncate($text2, 10, array('exact' => false, 'html' => true)), chr(226));
  387
+		$this->assertSame($this->Text->truncate($text3, 20, array('html' => true)), '<b>&copy; 2005-2007, Cake S' . chr(226) . '</b>');
  388
+		$this->assertSame($this->Text->truncate($text4, 15, array('html' => true)), '<img src="mypic.jpg"> This image ta' . chr(226));
  389
+		$this->assertSame($this->Text->truncate($text4, 45, array('html' => true)), '<img src="mypic.jpg"> This image tag is not XHTML conform!<br><hr/><b>But the'. chr(226) .'</b>');
  390
+		$this->assertSame($this->Text->truncate($text4, 90, array('html' => true)), '<img src="mypic.jpg"> This image tag is not XHTML conform!<br><hr/><b>But the following image tag should be conform <img src="mypic.jpg" alt="Me, myself and I" /></b><br />Great,' . chr(226));
391 391
 		$this->assertSame($this->Text->truncate($text5, 6, array('ellipsis' => '', 'html' => true)), '0<b>1<i>2<span class="myclass">3</span>4<u>5</u></i></b>');
392 392
 		$this->assertSame($this->Text->truncate($text5, 20, array('ellipsis' => '', 'html' => true)), $text5);
393  
-		$this->assertSame($this->Text->truncate($text6, 57, array('exact' => false, 'html' => true)), "<p><strong>Extra dates have been announced for this year's...</strong></p>");
  393
+		$this->assertSame($this->Text->truncate($text6, 57, array('exact' => false, 'html' => true)), "<p><strong>Extra dates have been announced for this year's". chr(226)."</strong></p>");
394 394
 		$this->assertSame($this->Text->truncate($text7, 255), $text7);
395 395
 		$this->assertSame($this->Text->truncate($text7, 15), 'El moño está...');
396 396
 		$this->assertSame($this->Text->truncate($text8, 15), 'Vive la R' . chr(195) . chr(169) . 'pu...');
3  lib/Cake/Utility/String.php
@@ -480,6 +480,9 @@ public static function truncate($text, $length = 100, $options = array()) {
480 480
 		$default = array(
481 481
 			'ellipsis' => '...', 'exact' => true, 'html' => false
482 482
 		);
  483
+		if (!empty($options['html'])) {
  484
+			$default['ellipsis'] = chr(226);
  485
+		}
483 486
 		if (isset($options['ending'])) {
484 487
 			$default['ellipsis'] = $options['ending'];
485 488
 		}

0 notes on commit f201684

Please sign in to comment.
Something went wrong with that request. Please try again.