2008-05-30 11:40:08 +00:00
< ? php
/**
2009-03-18 17:55:58 +00:00
* TextHelperTest file
2008-05-30 11:40:08 +00:00
*
2010-10-03 16:31:21 +00:00
* PHP 5
2008-05-30 11:40:08 +00:00
*
2010-05-19 01:15:13 +00:00
* CakePHP ( tm ) Tests < http :// book . cakephp . org / view / 1196 / Testing >
2011-05-29 21:31:39 +00:00
* Copyright 2005 - 2011 , Cake Software Foundation , Inc . ( http :// cakefoundation . org )
2008-05-30 11:40:08 +00:00
*
2010-10-03 16:31:21 +00:00
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice
2008-05-30 11:40:08 +00:00
*
2011-05-29 21:31:39 +00:00
* @ copyright Copyright 2005 - 2011 , Cake Software Foundation , Inc . ( http :// cakefoundation . org )
2010-05-19 01:15:13 +00:00
* @ link http :// book . cakephp . org / view / 1196 / Testing CakePHP ( tm ) Tests
2011-07-26 06:16:14 +00:00
* @ package Cake . Test . Case . View . Helper
2008-10-30 17:30:26 +00:00
* @ since CakePHP ( tm ) v 1.2 . 0.4206
2010-10-03 16:27:27 +00:00
* @ license MIT License ( http :// www . opensource . org / licenses / mit - license . php )
2008-05-30 11:40:08 +00:00
*/
2010-12-11 05:47:55 +00:00
2010-12-10 06:23:27 +00:00
App :: uses ( 'View' , 'View' );
2010-12-11 05:47:55 +00:00
App :: uses ( 'TextHelper' , 'View/Helper' );
2009-07-24 19:18:37 +00:00
2008-05-30 11:40:08 +00:00
/**
2009-03-18 17:55:58 +00:00
* TextHelperTest class
2008-05-30 11:40:08 +00:00
*
2011-07-26 06:16:14 +00:00
* @ package Cake . Test . Case . View . Helper
2008-05-30 11:40:08 +00:00
*/
2009-03-18 17:55:58 +00:00
class TextHelperTest extends CakeTestCase {
2009-07-24 19:18:37 +00:00
2008-06-02 19:22:55 +00:00
/**
* setUp method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function setUp () {
2010-07-03 18:41:34 +00:00
$controller = null ;
$this -> View = new View ( $controller );
$this -> Text = new TextHelper ( $this -> View );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2009-03-18 17:55:58 +00:00
/**
* tearDown method
*
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function tearDown () {
2010-07-03 18:41:34 +00:00
unset ( $this -> View , $this -> Text );
2009-03-18 17:55:58 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-02 19:22:55 +00:00
/**
* testTruncate method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testTruncate () {
2008-05-30 11:40:08 +00:00
$text1 = 'The quick brown fox jumps over the lazy dog' ;
$text2 = 'Heizölrückstoßabdämpfung' ;
$text3 = '<b>© 2005-2007, Cake Software Foundation, Inc.</b><br />written by Alexander Wegener' ;
$text4 = '<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, or?' ;
$text5 = '0<b>1<i>2<span class="myclass">3</span>4<u>5</u>6</i>7</b>8<b>9</b>0' ;
2011-12-16 06:52:07 +00:00
$text6 = '<p><strong>Extra dates have been announced for this year\'s tour.</strong></p><p>Tickets for the new shows in</p>' ;
$text7 = 'El moño está en el lugar correcto. Eso fue lo que dijo la niña, ¿habrá dicho la verdad?' ;
2011-12-25 05:25:07 +00:00
$text8 = 'Vive la R' . chr ( 195 ) . chr ( 169 ) . 'publique de France' ;
2009-10-08 03:56:38 +00:00
$text9 = 'НОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь' ;
2008-05-30 11:40:08 +00:00
2011-11-16 00:07:56 +00:00
$this -> assertSame ( $this -> Text -> truncate ( $text1 , 15 ), 'The quick br...' );
$this -> assertSame ( $this -> Text -> truncate ( $text1 , 15 , array ( 'exact' => false )), 'The quick...' );
$this -> assertSame ( $this -> Text -> truncate ( $text1 , 100 ), 'The quick brown fox jumps over the lazy dog' );
$this -> assertSame ( $this -> Text -> truncate ( $text2 , 10 ), 'Heiz&ou...' );
$this -> assertSame ( $this -> Text -> truncate ( $text2 , 10 , array ( 'exact' => false )), '...' );
$this -> assertSame ( $this -> Text -> truncate ( $text3 , 20 ), '<b>© 2005-20...' );
$this -> assertSame ( $this -> Text -> truncate ( $text4 , 15 ), '<img src="my...' );
$this -> assertSame ( $this -> Text -> truncate ( $text5 , 6 , array ( 'ending' => '' )), '0<b>1<' );
$this -> assertSame ( $this -> Text -> truncate ( $text1 , 15 , array ( 'html' => true )), 'The quick br...' );
$this -> assertSame ( $this -> Text -> truncate ( $text1 , 15 , array ( 'exact' => false , 'html' => true )), 'The quick...' );
$this -> assertSame ( $this -> Text -> truncate ( $text2 , 10 , array ( 'html' => true )), 'Heizölr...' );
$this -> assertSame ( $this -> Text -> truncate ( $text2 , 10 , array ( 'exact' => false , 'html' => true )), '...' );
$this -> assertSame ( $this -> Text -> truncate ( $text3 , 20 , array ( 'html' => true )), '<b>© 2005-2007, Cake...</b>' );
$this -> assertSame ( $this -> Text -> truncate ( $text4 , 15 , array ( 'html' => true )), '<img src="mypic.jpg"> This image ...' );
$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>' );
$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...' );
$this -> assertSame ( $this -> Text -> truncate ( $text5 , 6 , array ( 'ending' => '' , 'html' => true )), '0<b>1<i>2<span class="myclass">3</span>4<u>5</u></i></b>' );
$this -> assertSame ( $this -> Text -> truncate ( $text5 , 20 , array ( 'ending' => '' , 'html' => true )), $text5 );
$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> " );
$this -> assertSame ( $this -> Text -> truncate ( $text7 , 255 ), $text7 );
$this -> assertSame ( $this -> Text -> truncate ( $text7 , 15 ), 'El moño está...' );
$this -> assertSame ( $this -> Text -> truncate ( $text8 , 15 ), 'Vive la R' . chr ( 195 ) . chr ( 169 ) . 'pu...' );
$this -> assertSame ( $this -> Text -> truncate ( $text9 , 10 ), 'НОПРСТУ...' );
2011-12-25 05:25:07 +00:00
$text = '<p><span style="font-size: medium;"><a>Iamatestwithnospacesandhtml</a></span></p>' ;
$result = $this -> Text -> truncate ( $text , 10 , array (
'ending' => '...' ,
'exact' => false ,
'html' => true
));
$expected = '<p><span style="font-size: medium;"><a>...</a></span></p>' ;
$this -> assertEquals ( $expected , $result );
$text = ' < p >< span style = " font-size: medium; " > El biógrafo de Steve Jobs , Walter
Isaacson , explica porqué Jobs le pidió que le hiciera su biografía en
este artículo de El País .</ span ></ p >
< p >< span style = " font-size: medium; " >< span style = " font-size:
large ; " >Por qué Steve era distinto.</span></span></p>
< p >< span style = " font-size: medium; " >< a href = " http://www.elpais.com/
articulo / primer / plano / Steve / era / distinto / elpepueconeg /
20111009 elpneglse_4 / Tes " >http://www.elpais.com/articulo/primer/plano/
Steve / era / distinto / elpepueconeg / 20111009 elpneglse_4 / Tes </ a ></ span ></ p >
< p >< span style = " font-size: medium; " > Ya se ha publicado la biografía de
Steve Jobs escrita por Walter Isaacson " <strong>Steve Jobs by Walter
Isaacson </ strong > " , aquí os dejamos la dirección de amazon donde
podeís adquirirla .</ span ></ p >
< p >< span style = " font-size: medium; " >< a > http :// www . amazon . com / Steve -
Jobs - Walter - Isaacson / dp / 1451648537 </ a ></ span ></ p > ' ;
$result = $this -> Text -> truncate ( $text , 500 , array (
'ending' => '... ' ,
'exact' => false ,
'html' => true
));
$expected = ' < p >< span style = " font-size: medium; " > El biógrafo de Steve Jobs , Walter
Isaacson , explica porqué Jobs le pidió que le hiciera su biografía en
este artículo de El País .</ span ></ p >
< p >< span style = " font-size: medium; " >< span style = " font-size:
large ; " >Por qué Steve era distinto.</span></span></p>
< p >< span style = " font-size: medium; " >< a href = " http://www.elpais.com/
articulo / primer / plano / Steve / era / distinto / elpepueconeg /
20111009 elpneglse_4 / Tes " >http://www.elpais.com/articulo/primer/plano/
Steve / era / distinto / elpepueconeg / 20111009 elpneglse_4 / Tes </ a ></ span ></ p >
< p >< span style = " font-size: medium; " > Ya se ha publicado la biografía de
Steve Jobs escrita por Walter Isaacson " <strong>Steve Jobs by Walter
Isaacson </ strong > " , aquí os dejamos la dirección de amazon donde
podeís adquirirla .</ span ></ p >
2011-12-25 17:10:50 +00:00
< p >< span style = " font-size: medium; " >< a >... </ a ></ span ></ p > ' ;
2011-12-25 05:25:07 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2011-12-06 20:52:48 +00:00
2008-06-02 19:22:55 +00:00
/**
* testHighlight method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testHighlight () {
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$phrases = array ( 'This' , 'text' );
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , $phrases , array ( 'format' => '<b>\1</b>' ));
2008-05-30 11:40:08 +00:00
$expected = '<b>This</b> is a test <b>text</b>' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$phrases = null ;
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , $phrases , array ( 'format' => '<b>\1</b>' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , $text );
2008-05-30 11:40:08 +00:00
2011-10-18 16:19:19 +00:00
$text = 'This is a (test) text' ;
$phrases = '(test' ;
$result = $this -> Text -> highlight ( $text , $phrases , array ( 'format' => '<b>\1</b>' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( 'This is a <b>(test</b>) text' , $result );
2011-10-18 16:19:19 +00:00
2008-05-30 11:40:08 +00:00
$text = 'Ich saß in einem Café am Übergang' ;
$expected = 'Ich <b>saß</b> in einem <b>Café</b> am <b>Übergang</b>' ;
$phrases = array ( 'saß' , 'café' , 'übergang' );
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , $phrases , array ( 'format' => '<b>\1</b>' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-02 19:22:55 +00:00
/**
2009-10-29 03:23:44 +00:00
* testHighlightHtml method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testHighlightHtml () {
2008-06-20 20:17:23 +00:00
$text1 = '<p>strongbow isn’t real cider</p>' ;
$text2 = '<p>strongbow <strong>isn’t</strong> real cider</p>' ;
$text3 = '<img src="what-a-strong-mouse.png" alt="What a strong mouse!" />' ;
2009-07-11 15:36:45 +00:00
$text4 = 'What a strong mouse: <img src="what-a-strong-mouse.png" alt="What a strong mouse!" />' ;
2009-10-29 03:23:44 +00:00
$options = array ( 'format' => '<b>\1</b>' , 'html' => true );
2009-07-11 15:36:45 +00:00
$expected = '<p><b>strong</b>bow isn’t real cider</p>' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $this -> Text -> highlight ( $text1 , 'strong' , $options ), $expected );
2009-07-11 15:36:45 +00:00
$expected = '<p><b>strong</b>bow <strong>isn’t</strong> real cider</p>' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $this -> Text -> highlight ( $text2 , 'strong' , $options ), $expected );
2008-05-30 11:40:08 +00:00
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $this -> Text -> highlight ( $text3 , 'strong' , $options ), $text3 );
2009-07-11 15:36:45 +00:00
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $this -> Text -> highlight ( $text3 , array ( 'strong' , 'what' ), $options ), $text3 );
2009-07-11 15:36:45 +00:00
$expected = '<b>What</b> a <b>strong</b> mouse: <img src="what-a-strong-mouse.png" alt="What a strong mouse!" />' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $this -> Text -> highlight ( $text4 , array ( 'strong' , 'what' ), $options ), $expected );
2008-06-20 20:17:23 +00:00
}
2009-07-24 19:18:37 +00:00
2009-08-13 17:32:34 +00:00
/**
* testHighlightMulti method
*
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testHighlightMulti () {
2009-08-13 17:32:34 +00:00
$text = 'This is a test text' ;
$phrases = array ( 'This' , 'text' );
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , $phrases , array ( 'format' => array ( '<b>\1</b>' , '<em>\1</em>' )));
2009-08-13 17:32:34 +00:00
$expected = '<b>This</b> is a test <em>text</em>' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-08-13 17:32:34 +00:00
}
2008-06-02 19:22:55 +00:00
/**
* testStripLinks method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testStripLinks () {
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$expected = 'This is a test text' ;
$result = $this -> Text -> stripLinks ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'This is a <a href="#">test</a> text' ;
$expected = 'This is a test text' ;
$result = $this -> Text -> stripLinks ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'This <strong>is</strong> a <a href="#">test</a> <a href="#">text</a>' ;
$expected = 'This <strong>is</strong> a test text' ;
$result = $this -> Text -> stripLinks ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'This <strong>is</strong> a <a href="#">test</a> and <abbr>some</abbr> other <a href="#">text</a>' ;
$expected = 'This <strong>is</strong> a test and <abbr>some</abbr> other text' ;
$result = $this -> Text -> stripLinks ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-02 19:22:55 +00:00
/**
* testAutoLink method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testAutoLink () {
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$expected = 'This is a test text' ;
$result = $this -> Text -> autoLink ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with a partial www.cakephp.org URL and test@cakephp.org email address' ;
$result = $this -> Text -> autoLink ( $text );
$expected = 'Text with a partial <a href="http://www.cakephp.org">www.cakephp.org</a> URL and <a href="mailto:test@cakephp\.org">test@cakephp\.org</a> email address' ;
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2010-04-13 18:33:24 +00:00
$text = 'This is a test text with URL http://www.cakephp.org' ;
$expected = 'This is a test text with URL <a href="http://www.cakephp.org">http://www.cakephp.org</a>' ;
$result = $this -> Text -> autoLink ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2010-04-13 18:33:24 +00:00
$text = 'This is a test text with URL http://www.cakephp.org and some more text' ;
$expected = 'This is a test text with URL <a href="http://www.cakephp.org">http://www.cakephp.org</a> and some more text' ;
$result = $this -> Text -> autoLink ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2010-04-13 18:33:24 +00:00
$text = " This is a test text with URL http://www.cakephp.org \t and some more text " ;
$expected = " This is a test text with URL <a href= \" http://www.cakephp.org \" >http://www.cakephp.org</a> \t and some more text " ;
$result = $this -> Text -> autoLink ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2010-04-13 18:33:24 +00:00
$text = 'This is a test text with URL http://www.cakephp.org(and some more text)' ;
$expected = 'This is a test text with URL <a href="http://www.cakephp.org">http://www.cakephp.org</a>(and some more text)' ;
$result = $this -> Text -> autoLink ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2010-04-13 18:33:24 +00:00
$text = 'This is a test text with URL http://www.cakephp.org' ;
$expected = 'This is a test text with URL <a href="http://www.cakephp.org" class="link">http://www.cakephp.org</a>' ;
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> autoLink ( $text , array ( 'class' => 'link' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2010-04-13 18:33:24 +00:00
$text = 'This is a test text with URL http://www.cakephp.org' ;
$expected = 'This is a test text with URL <a href="http://www.cakephp.org" class="link" id="MyLink">http://www.cakephp.org</a>' ;
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> autoLink ( $text , array ( 'class' => 'link' , 'id' => 'MyLink' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2011-10-29 16:08:43 +00:00
/**
* Test escaping for autoLink
*
* @ return void
*/
public function testAutoLinkEscape () {
$text = 'This is a <b>test</b> text with URL http://www.cakephp.org' ;
$expected = 'This is a <b>test</b> text with URL <a href="http://www.cakephp.org">http://www.cakephp.org</a>' ;
$result = $this -> Text -> autoLink ( $text );
2011-12-13 13:54:05 +00:00
$this -> assertEquals ( $expected , $result );
2011-10-29 16:08:43 +00:00
$text = 'This is a <b>test</b> text with URL http://www.cakephp.org' ;
$expected = 'This is a <b>test</b> text with URL <a href="http://www.cakephp.org">http://www.cakephp.org</a>' ;
$result = $this -> Text -> autoLink ( $text , array ( 'escape' => false ));
2011-12-13 13:54:05 +00:00
$this -> assertEquals ( $expected , $result );
2011-10-29 16:08:43 +00:00
}
2008-06-02 19:22:55 +00:00
/**
* testAutoLinkUrls method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testAutoLinkUrls () {
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$expected = 'This is a test text' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'This is a test that includes (www.cakephp.org)' ;
$expected = 'This is a test that includes (<a href="http://www.cakephp.org">www.cakephp.org</a>)' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with a partial www.cakephp.org URL' ;
$expected = 'Text with a partial <a href="http://www.cakephp.org"\s*>www.cakephp.org</a> URL' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with a partial www.cakephp.org URL' ;
$expected = 'Text with a partial <a href="http://www.cakephp.org" \s*class="link">www.cakephp.org</a> URL' ;
$result = $this -> Text -> autoLinkUrls ( $text , array ( 'class' => 'link' ));
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with a partial WWW.cakephp.org URL' ;
2010-06-22 01:17:37 +00:00
$expected = 'Text with a partial <a href="http://WWW.cakephp.org"\s*>WWW.cakephp.org</a> URL' ;
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with a partial WWW.cakephp.org © URL' ;
2010-06-22 01:17:37 +00:00
$expected = 'Text with a partial <a href="http://WWW.cakephp.org"\s*>WWW.cakephp.org</a> © URL' ;
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> autoLinkUrls ( $text , array ( 'escape' => false ));
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2008-05-30 11:40:08 +00:00
2010-06-22 01:17:37 +00:00
$text = 'Text with a url www.cot.ag/cuIb2Q and more' ;
$expected = 'Text with a url <a href="http://www.cot.ag/cuIb2Q">www.cot.ag/cuIb2Q</a> and more' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-05-16 22:49:00 +00:00
2011-01-18 23:56:35 +00:00
$text = 'Text with a url http://www.does--not--work.com and more' ;
$expected = 'Text with a url <a href="http://www.does--not--work.com">http://www.does--not--work.com</a> and more' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-05-16 22:49:00 +00:00
2011-01-18 23:56:35 +00:00
$text = 'Text with a url http://www.not--work.com and more' ;
$expected = 'Text with a url <a href="http://www.not--work.com">http://www.not--work.com</a> and more' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-10-29 16:08:43 +00:00
}
2011-10-10 19:35:39 +00:00
2011-10-29 16:08:43 +00:00
/**
* Test autoLinkUrls with the escape option .
*
* @ return void
*/
public function testAutoLinkUrlsEscape () {
2011-10-10 19:35:39 +00:00
$text = 'Text with a partial <a href="http://www.cakephp.org">link</a> link' ;
$expected = 'Text with a partial <a href="http://www.cakephp.org">link</a> link' ;
$result = $this -> Text -> autoLinkUrls ( $text , array ( 'escape' => false ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-10-10 19:35:39 +00:00
$text = 'Text with a partial <iframe src="http://www.cakephp.org" /> link' ;
$expected = 'Text with a partial <iframe src="http://www.cakephp.org" /> link' ;
$result = $this -> Text -> autoLinkUrls ( $text , array ( 'escape' => false ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-10-29 16:08:43 +00:00
$text = 'Text with a partial <iframe src="http://www.cakephp.org" /> link' ;
$expected = 'Text with a partial <iframe src="http://www.cakephp.org" /> link' ;
$result = $this -> Text -> autoLinkUrls ( $text , array ( 'escape' => true ));
2011-11-17 02:31:16 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-02 19:22:55 +00:00
/**
* testAutoLinkEmails method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testAutoLinkEmails () {
2008-05-30 11:40:08 +00:00
$text = 'This is a test text' ;
$expected = 'This is a test text' ;
$result = $this -> Text -> autoLinkUrls ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with email@example.com address' ;
$expected = 'Text with <a href="mailto:email@example.com"\s*>email@example.com</a> address' ;
$result = $this -> Text -> autoLinkEmails ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2011-05-16 22:49:00 +00:00
2011-01-17 16:11:30 +00:00
$text = " Text with o'hare._-bob@example.com address " ;
$expected = 'Text with <a href="mailto:o'hare._-bob@example.com">o'hare._-bob@example.com</a> address' ;
$result = $this -> Text -> autoLinkEmails ( $text );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$text = 'Text with email@example.com address' ;
$expected = 'Text with <a href="mailto:email@example.com" \s*class="link">email@example.com</a> address' ;
$result = $this -> Text -> autoLinkEmails ( $text , array ( 'class' => 'link' ));
2011-11-16 00:07:56 +00:00
$this -> assertRegExp ( '#^' . $expected . '$#' , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2011-03-27 23:09:46 +00:00
/**
* test invalid email addresses .
*
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testAutoLinkEmailInvalid () {
2011-03-27 23:09:46 +00:00
$result = $this -> Text -> autoLinkEmails ( 'this is a myaddress@gmx-de test' );
$expected = 'this is a myaddress@gmx-de test' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-03-27 23:09:46 +00:00
}
2008-06-02 19:22:55 +00:00
/**
* testHighlightCaseInsensitivity method
2008-11-08 00:07:17 +00:00
*
2008-06-02 19:22:55 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testHighlightCaseInsensitivity () {
2008-05-30 11:40:08 +00:00
$text = 'This is a Test text' ;
$expected = 'This is a <b>Test</b> text' ;
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , 'test' , array ( 'format' => '<b>\1</b>' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
2009-10-29 03:23:44 +00:00
$result = $this -> Text -> highlight ( $text , array ( 'test' ), array ( 'format' => '<b>\1</b>' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-05 15:20:45 +00:00
/**
* testExcerpt method
2008-11-08 00:07:17 +00:00
*
2008-06-05 15:20:45 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testExcerpt () {
2008-05-30 11:40:08 +00:00
$text = 'This is a phrase with test text to play with' ;
2011-12-05 20:12:09 +00:00
$expected = '...ase with test text to ...' ;
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> excerpt ( $text , 'test' , 9 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-07-24 19:18:37 +00:00
2008-05-30 11:40:08 +00:00
$expected = 'This is a...' ;
$result = $this -> Text -> excerpt ( $text , 'not_found' , 9 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-07-24 19:18:37 +00:00
2008-05-30 11:40:08 +00:00
$expected = 'This is a phras...' ;
$result = $this -> Text -> excerpt ( $text , null , 9 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-07-24 19:18:37 +00:00
2008-05-30 11:40:08 +00:00
$expected = $text ;
$result = $this -> Text -> excerpt ( $text , null , 200 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-07-24 19:18:37 +00:00
2011-12-05 20:12:09 +00:00
$expected = '...a phrase w...' ;
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> excerpt ( $text , 'phrase' , 2 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2009-07-11 15:36:45 +00:00
2011-12-05 20:12:09 +00:00
$phrase = 'This is a phrase with test text' ;
2009-07-11 15:36:45 +00:00
$expected = $text ;
2011-12-05 20:12:09 +00:00
$result = $this -> Text -> excerpt ( $text , $phrase , 13 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2011-12-05 20:12:09 +00:00
$text = 'aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa' ;
$phrase = 'bbbbbbbb' ;
$result = $this -> Text -> excerpt ( $text , $phrase , 10 );
$expected = '...aaaaaaaaaabbbbbbbbaaaaaaaaaa...' ;
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-05 15:20:45 +00:00
/**
* testExcerptCaseInsensitivity method
2008-11-08 00:07:17 +00:00
*
2008-06-05 15:20:45 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testExcerptCaseInsensitivity () {
2008-05-30 11:40:08 +00:00
$text = 'This is a phrase with test text to play with' ;
2011-12-05 20:12:09 +00:00
$expected = '...ase with test text to ...' ;
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> excerpt ( $text , 'TEST' , 9 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
$expected = 'This is a...' ;
$result = $this -> Text -> excerpt ( $text , 'NOT_FOUND' , 9 , '...' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $expected , $result );
2008-05-30 11:40:08 +00:00
}
2009-07-24 19:18:37 +00:00
2008-06-05 15:20:45 +00:00
/**
* testListGeneration method
2008-11-08 00:07:17 +00:00
*
2008-06-05 15:20:45 +00:00
* @ return void
*/
2011-05-30 20:02:32 +00:00
public function testListGeneration () {
2010-01-31 18:07:54 +00:00
$result = $this -> Text -> toList ( array ());
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , '' );
2010-01-31 18:07:54 +00:00
$result = $this -> Text -> toList ( array ( 'One' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'One' );
2010-01-31 18:07:54 +00:00
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> toList ( array ( 'Larry' , 'Curly' , 'Moe' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'Larry, Curly and Moe' );
2008-05-30 11:40:08 +00:00
$result = $this -> Text -> toList ( array ( 'Dusty' , 'Lucky' , 'Ned' ), 'y' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'Dusty, Lucky y Ned' );
2009-11-24 19:11:22 +00:00
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> toList ( array ( 1 => 'Dusty' , 2 => 'Lucky' , 3 => 'Ned' ), 'y' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'Dusty, Lucky y Ned' );
2009-11-24 20:12:57 +00:00
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> toList ( array ( 1 => 'Dusty' , 2 => 'Lucky' , 3 => 'Ned' ), 'and' , ' + ' );
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'Dusty + Lucky and Ned' );
2009-11-24 20:12:57 +00:00
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> toList ( array ( 'name1' => 'Dusty' , 'name2' => 'Lucky' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'Dusty and Lucky' );
2011-05-16 22:49:00 +00:00
2011-12-01 07:21:31 +00:00
$result = $this -> Text -> toList ( array ( 'test_0' => 'banana' , 'test_1' => 'apple' , 'test_2' => 'lemon' ));
2011-11-16 00:07:56 +00:00
$this -> assertEquals ( $result , 'banana, apple and lemon' );
2008-05-30 11:40:08 +00:00
}
}