From 59342e0524c39f9bea7b0607e14e2166c29f862b Mon Sep 17 00:00:00 2001 From: Rachman Chavik Date: Mon, 6 Feb 2012 17:35:19 +0700 Subject: [PATCH] moving methods from TextHelperTest to StringTest --- lib/Cake/Test/Case/Utility/StringTest.php | 297 ++++++++++++++++++ .../Test/Case/View/Helper/TextHelperTest.php | 285 ----------------- 2 files changed, 297 insertions(+), 285 deletions(-) diff --git a/lib/Cake/Test/Case/Utility/StringTest.php b/lib/Cake/Test/Case/Utility/StringTest.php index dfc480905..626521d34 100644 --- a/lib/Cake/Test/Case/Utility/StringTest.php +++ b/lib/Cake/Test/Case/Utility/StringTest.php @@ -25,6 +25,16 @@ App::uses('String', 'Utility'); */ class StringTest extends CakeTestCase { + public function setUp() { + parent::setUp(); + $this->Text = new String(); + } + + public function tearDown() { + parent::tearDown(); + unset($this->Text); + } + /** * testUuidGeneration method * @@ -344,4 +354,291 @@ This is the song that never ends. TEXT; $this->assertTextEquals($expected, $result); } + +/** + * testTruncate method + * + * @return void + */ + public function testTruncate() { + $text1 = 'The quick brown fox jumps over the lazy dog'; + $text2 = 'Heizölrückstoßabdämpfung'; + $text3 = '© 2005-2007, Cake Software Foundation, Inc.
written by Alexander Wegener'; + $text4 = ' This image tag is not XHTML conform!

But the following image tag should be conform Me, myself and I
Great, or?'; + $text5 = '01234567890'; + $text6 = '

Extra dates have been announced for this year\'s tour.

Tickets for the new shows in

'; + $text7 = 'El moño está en el lugar correcto. Eso fue lo que dijo la niña, ¿habrá dicho la verdad?'; + $text8 = 'Vive la R' . chr(195) . chr(169) . 'publique de France'; + $text9 = 'НОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь'; + + $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), '© 2005-20...'); + $this->assertSame($this->Text->truncate($text4, 15), ' This image ...'); + $this->assertSame($this->Text->truncate($text4, 45, array('html' => true)), ' This image tag is not XHTML conform!

But t...'); + $this->assertSame($this->Text->truncate($text4, 90, array('html' => true)), ' This image tag is not XHTML conform!

But the following image tag should be conform Me, myself and I
Grea...'); + $this->assertSame($this->Text->truncate($text5, 6, array('ending' => '', 'html' => true)), '012345'); + $this->assertSame($this->Text->truncate($text5, 20, array('ending' => '', 'html' => true)), $text5); + $this->assertSame($this->Text->truncate($text6, 57, array('exact' => false, 'html' => true)), "

Extra dates have been announced for this year's...

"); + $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), 'НОПРСТУ...'); + + $text = '

Iamatestwithnospacesandhtml

'; + $result = $this->Text->truncate($text, 10, array( + 'ending' => '...', + 'exact' => false, + 'html' => true + )); + $expected = '

...

'; + $this->assertEquals($expected, $result); + + $text = '

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.

+

Por qué Steve era distinto.

+

http://www.elpais.com/articulo/primer/plano/ +Steve/era/distinto/elpepueconeg/20111009elpneglse_4/Tes

+

Ya se ha publicado la biografía de +Steve Jobs escrita por Walter Isaacson "Steve Jobs by Walter +Isaacson", aquí os dejamos la dirección de amazon donde +podeís adquirirla.

+

http://www.amazon.com/Steve- +Jobs-Walter-Isaacson/dp/1451648537

'; + $result = $this->Text->truncate($text, 500, array( + 'ending' => '... ', + 'exact' => false, + 'html' => true + )); + $expected = '

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.

+

Por qué Steve era distinto.

+

http://www.elpais.com/articulo/primer/plano/ +Steve/era/distinto/elpepueconeg/20111009elpneglse_4/Tes

+

Ya se ha publicado la biografía de +Steve Jobs escrita por Walter Isaacson "Steve Jobs by Walter +Isaacson", aquí os dejamos la dirección de amazon donde +podeís adquirirla.

+

...

'; + $this->assertEquals($expected, $result); + } + +/** + * testHighlight method + * + * @return void + */ + public function testHighlight() { + $text = 'This is a test text'; + $phrases = array('This', 'text'); + $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); + $expected = 'This is a test text'; + $this->assertEquals($expected, $result); + + $text = 'This is a test text'; + $phrases = null; + $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); + $this->assertEquals($result, $text); + + $text = 'This is a (test) text'; + $phrases = '(test'; + $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); + $this->assertEquals('This is a (test) text', $result); + + $text = 'Ich saß in einem Café am Übergang'; + $expected = 'Ich saß in einem Café am Übergang'; + $phrases = array('saß', 'café', 'übergang'); + $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); + $this->assertEquals($expected, $result); + } + +/** + * testHighlightHtml method + * + * @return void + */ + public function testHighlightHtml() { + $text1 = '

strongbow isn’t real cider

'; + $text2 = '

strongbow isn’t real cider

'; + $text3 = 'What a strong mouse!'; + $text4 = 'What a strong mouse: What a strong mouse!'; + $options = array('format' => '\1', 'html' => true); + + $expected = '

strongbow isn’t real cider

'; + $this->assertEquals($this->Text->highlight($text1, 'strong', $options), $expected); + + $expected = '

strongbow isn’t real cider

'; + $this->assertEquals($this->Text->highlight($text2, 'strong', $options), $expected); + + $this->assertEquals($this->Text->highlight($text3, 'strong', $options), $text3); + + $this->assertEquals($this->Text->highlight($text3, array('strong', 'what'), $options), $text3); + + $expected = 'What a strong mouse: What a strong mouse!'; + $this->assertEquals($this->Text->highlight($text4, array('strong', 'what'), $options), $expected); + } + +/** + * testHighlightMulti method + * + * @return void + */ + public function testHighlightMulti() { + $text = 'This is a test text'; + $phrases = array('This', 'text'); + $result = $this->Text->highlight($text, $phrases, array('format' => array('\1', '\1'))); + $expected = 'This is a test text'; + $this->assertEquals($expected, $result); + + } + +/** + * testStripLinks method + * + * @return void + */ + public function testStripLinks() { + $text = 'This is a test text'; + $expected = 'This is a test text'; + $result = $this->Text->stripLinks($text); + $this->assertEquals($expected, $result); + + $text = 'This is a test text'; + $expected = 'This is a test text'; + $result = $this->Text->stripLinks($text); + $this->assertEquals($expected, $result); + + $text = 'This is a test text'; + $expected = 'This is a test text'; + $result = $this->Text->stripLinks($text); + $this->assertEquals($expected, $result); + + $text = 'This is a test and some other text'; + $expected = 'This is a test and some other text'; + $result = $this->Text->stripLinks($text); + $this->assertEquals($expected, $result); + } + +/** + * testHighlightCaseInsensitivity method + * + * @return void + */ + public function testHighlightCaseInsensitivity() { + $text = 'This is a Test text'; + $expected = 'This is a Test text'; + + $result = $this->Text->highlight($text, 'test', array('format' => '\1')); + $this->assertEquals($expected, $result); + + $result = $this->Text->highlight($text, array('test'), array('format' => '\1')); + $this->assertEquals($expected, $result); + } + +/** + * testExcerpt method + * + * @return void + */ + public function testExcerpt() { + $text = 'This is a phrase with test text to play with'; + + $expected = '...ase with test text to ...'; + $result = $this->Text->excerpt($text, 'test', 9, '...'); + $this->assertEquals($expected, $result); + + $expected = 'This is a...'; + $result = $this->Text->excerpt($text, 'not_found', 9, '...'); + $this->assertEquals($expected, $result); + + $expected = 'This is a phras...'; + $result = $this->Text->excerpt($text, null, 9, '...'); + $this->assertEquals($expected, $result); + + $expected = $text; + $result = $this->Text->excerpt($text, null, 200, '...'); + $this->assertEquals($expected, $result); + + $expected = '...a phrase w...'; + $result = $this->Text->excerpt($text, 'phrase', 2, '...'); + $this->assertEquals($expected, $result); + + $phrase = 'This is a phrase with test text'; + $expected = $text; + $result = $this->Text->excerpt($text, $phrase, 13, '...'); + $this->assertEquals($expected, $result); + + $text = 'aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa'; + $phrase = 'bbbbbbbb'; + $result = $this->Text->excerpt($text, $phrase, 10); + $expected = '...aaaaaaaaaabbbbbbbbaaaaaaaaaa...'; + $this->assertEquals($expected, $result); + } + +/** + * testExcerptCaseInsensitivity method + * + * @return void + */ + public function testExcerptCaseInsensitivity() { + $text = 'This is a phrase with test text to play with'; + + $expected = '...ase with test text to ...'; + $result = $this->Text->excerpt($text, 'TEST', 9, '...'); + $this->assertEquals($expected, $result); + + $expected = 'This is a...'; + $result = $this->Text->excerpt($text, 'NOT_FOUND', 9, '...'); + $this->assertEquals($expected, $result); + } + +/** + * testListGeneration method + * + * @return void + */ + public function testListGeneration() { + $result = $this->Text->toList(array()); + $this->assertEquals($result, ''); + + $result = $this->Text->toList(array('One')); + $this->assertEquals($result, 'One'); + + $result = $this->Text->toList(array('Larry', 'Curly', 'Moe')); + $this->assertEquals($result, 'Larry, Curly and Moe'); + + $result = $this->Text->toList(array('Dusty', 'Lucky', 'Ned'), 'y'); + $this->assertEquals($result, 'Dusty, Lucky y Ned'); + + $result = $this->Text->toList(array(1 => 'Dusty', 2 => 'Lucky', 3 => 'Ned'), 'y'); + $this->assertEquals($result, 'Dusty, Lucky y Ned'); + + $result = $this->Text->toList(array(1 => 'Dusty', 2 => 'Lucky', 3 => 'Ned'), 'and', ' + '); + $this->assertEquals($result, 'Dusty + Lucky and Ned'); + + $result = $this->Text->toList(array('name1' => 'Dusty', 'name2' => 'Lucky')); + $this->assertEquals($result, 'Dusty and Lucky'); + + $result = $this->Text->toList(array('test_0' => 'banana', 'test_1' => 'apple', 'test_2' => 'lemon')); + $this->assertEquals($result, 'banana, apple and lemon'); + } + } diff --git a/lib/Cake/Test/Case/View/Helper/TextHelperTest.php b/lib/Cake/Test/Case/View/Helper/TextHelperTest.php index 88dc63dd0..8882d8750 100644 --- a/lib/Cake/Test/Case/View/Helper/TextHelperTest.php +++ b/lib/Cake/Test/Case/View/Helper/TextHelperTest.php @@ -47,188 +47,6 @@ class TextHelperTest extends CakeTestCase { unset($this->View, $this->Text); } -/** - * testTruncate method - * - * @return void - */ - public function testTruncate() { - $text1 = 'The quick brown fox jumps over the lazy dog'; - $text2 = 'Heizölrückstoßabdämpfung'; - $text3 = '© 2005-2007, Cake Software Foundation, Inc.
written by Alexander Wegener'; - $text4 = ' This image tag is not XHTML conform!

But the following image tag should be conform Me, myself and I
Great, or?'; - $text5 = '01234567890'; - $text6 = '

Extra dates have been announced for this year\'s tour.

Tickets for the new shows in

'; - $text7 = 'El moño está en el lugar correcto. Eso fue lo que dijo la niña, ¿habrá dicho la verdad?'; - $text8 = 'Vive la R' . chr(195) . chr(169) . 'publique de France'; - $text9 = 'НОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь'; - - $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), '© 2005-20...'); - $this->assertSame($this->Text->truncate($text4, 15), ' This image ...'); - $this->assertSame($this->Text->truncate($text4, 45, array('html' => true)), ' This image tag is not XHTML conform!

But t...'); - $this->assertSame($this->Text->truncate($text4, 90, array('html' => true)), ' This image tag is not XHTML conform!

But the following image tag should be conform Me, myself and I
Grea...'); - $this->assertSame($this->Text->truncate($text5, 6, array('ending' => '', 'html' => true)), '012345'); - $this->assertSame($this->Text->truncate($text5, 20, array('ending' => '', 'html' => true)), $text5); - $this->assertSame($this->Text->truncate($text6, 57, array('exact' => false, 'html' => true)), "

Extra dates have been announced for this year's...

"); - $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), 'НОПРСТУ...'); - - $text = '

Iamatestwithnospacesandhtml

'; - $result = $this->Text->truncate($text, 10, array( - 'ending' => '...', - 'exact' => false, - 'html' => true - )); - $expected = '

...

'; - $this->assertEquals($expected, $result); - - $text = '

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.

-

Por qué Steve era distinto.

-

http://www.elpais.com/articulo/primer/plano/ -Steve/era/distinto/elpepueconeg/20111009elpneglse_4/Tes

-

Ya se ha publicado la biografía de -Steve Jobs escrita por Walter Isaacson "Steve Jobs by Walter -Isaacson", aquí os dejamos la dirección de amazon donde -podeís adquirirla.

-

http://www.amazon.com/Steve- -Jobs-Walter-Isaacson/dp/1451648537

'; - $result = $this->Text->truncate($text, 500, array( - 'ending' => '... ', - 'exact' => false, - 'html' => true - )); - $expected = '

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.

-

Por qué Steve era distinto.

-

http://www.elpais.com/articulo/primer/plano/ -Steve/era/distinto/elpepueconeg/20111009elpneglse_4/Tes

-

Ya se ha publicado la biografía de -Steve Jobs escrita por Walter Isaacson "Steve Jobs by Walter -Isaacson", aquí os dejamos la dirección de amazon donde -podeís adquirirla.

-

...

'; - $this->assertEquals($expected, $result); - } - -/** - * testHighlight method - * - * @return void - */ - public function testHighlight() { - $text = 'This is a test text'; - $phrases = array('This', 'text'); - $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); - $expected = 'This is a test text'; - $this->assertEquals($expected, $result); - - $text = 'This is a test text'; - $phrases = null; - $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); - $this->assertEquals($result, $text); - - $text = 'This is a (test) text'; - $phrases = '(test'; - $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); - $this->assertEquals('This is a (test) text', $result); - - $text = 'Ich saß in einem Café am Übergang'; - $expected = 'Ich saß in einem Café am Übergang'; - $phrases = array('saß', 'café', 'übergang'); - $result = $this->Text->highlight($text, $phrases, array('format' => '\1')); - $this->assertEquals($expected, $result); - } - -/** - * testHighlightHtml method - * - * @return void - */ - public function testHighlightHtml() { - $text1 = '

strongbow isn’t real cider

'; - $text2 = '

strongbow isn’t real cider

'; - $text3 = 'What a strong mouse!'; - $text4 = 'What a strong mouse: What a strong mouse!'; - $options = array('format' => '\1', 'html' => true); - - $expected = '

strongbow isn’t real cider

'; - $this->assertEquals($this->Text->highlight($text1, 'strong', $options), $expected); - - $expected = '

strongbow isn’t real cider

'; - $this->assertEquals($this->Text->highlight($text2, 'strong', $options), $expected); - - $this->assertEquals($this->Text->highlight($text3, 'strong', $options), $text3); - - $this->assertEquals($this->Text->highlight($text3, array('strong', 'what'), $options), $text3); - - $expected = 'What a strong mouse: What a strong mouse!'; - $this->assertEquals($this->Text->highlight($text4, array('strong', 'what'), $options), $expected); - } - -/** - * testHighlightMulti method - * - * @return void - */ - public function testHighlightMulti() { - $text = 'This is a test text'; - $phrases = array('This', 'text'); - $result = $this->Text->highlight($text, $phrases, array('format' => array('\1', '\1'))); - $expected = 'This is a test text'; - $this->assertEquals($expected, $result); - - } - -/** - * testStripLinks method - * - * @return void - */ - public function testStripLinks() { - $text = 'This is a test text'; - $expected = 'This is a test text'; - $result = $this->Text->stripLinks($text); - $this->assertEquals($expected, $result); - - $text = 'This is a test text'; - $expected = 'This is a test text'; - $result = $this->Text->stripLinks($text); - $this->assertEquals($expected, $result); - - $text = 'This is a test text'; - $expected = 'This is a test text'; - $result = $this->Text->stripLinks($text); - $this->assertEquals($expected, $result); - - $text = 'This is a test and some other text'; - $expected = 'This is a test and some other text'; - $result = $this->Text->stripLinks($text); - $this->assertEquals($expected, $result); - } - /** * testAutoLink method * @@ -405,107 +223,4 @@ podeís adquirirla.

$this->assertEquals($expected, $result); } -/** - * testHighlightCaseInsensitivity method - * - * @return void - */ - public function testHighlightCaseInsensitivity() { - $text = 'This is a Test text'; - $expected = 'This is a Test text'; - - $result = $this->Text->highlight($text, 'test', array('format' => '\1')); - $this->assertEquals($expected, $result); - - $result = $this->Text->highlight($text, array('test'), array('format' => '\1')); - $this->assertEquals($expected, $result); - } - -/** - * testExcerpt method - * - * @return void - */ - public function testExcerpt() { - $text = 'This is a phrase with test text to play with'; - - $expected = '...ase with test text to ...'; - $result = $this->Text->excerpt($text, 'test', 9, '...'); - $this->assertEquals($expected, $result); - - $expected = 'This is a...'; - $result = $this->Text->excerpt($text, 'not_found', 9, '...'); - $this->assertEquals($expected, $result); - - $expected = 'This is a phras...'; - $result = $this->Text->excerpt($text, null, 9, '...'); - $this->assertEquals($expected, $result); - - $expected = $text; - $result = $this->Text->excerpt($text, null, 200, '...'); - $this->assertEquals($expected, $result); - - $expected = '...a phrase w...'; - $result = $this->Text->excerpt($text, 'phrase', 2, '...'); - $this->assertEquals($expected, $result); - - $phrase = 'This is a phrase with test text'; - $expected = $text; - $result = $this->Text->excerpt($text, $phrase, 13, '...'); - $this->assertEquals($expected, $result); - - $text = 'aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa'; - $phrase = 'bbbbbbbb'; - $result = $this->Text->excerpt($text, $phrase, 10); - $expected = '...aaaaaaaaaabbbbbbbbaaaaaaaaaa...'; - $this->assertEquals($expected, $result); - } - -/** - * testExcerptCaseInsensitivity method - * - * @return void - */ - public function testExcerptCaseInsensitivity() { - $text = 'This is a phrase with test text to play with'; - - $expected = '...ase with test text to ...'; - $result = $this->Text->excerpt($text, 'TEST', 9, '...'); - $this->assertEquals($expected, $result); - - $expected = 'This is a...'; - $result = $this->Text->excerpt($text, 'NOT_FOUND', 9, '...'); - $this->assertEquals($expected, $result); - } - -/** - * testListGeneration method - * - * @return void - */ - public function testListGeneration() { - $result = $this->Text->toList(array()); - $this->assertEquals($result, ''); - - $result = $this->Text->toList(array('One')); - $this->assertEquals($result, 'One'); - - $result = $this->Text->toList(array('Larry', 'Curly', 'Moe')); - $this->assertEquals($result, 'Larry, Curly and Moe'); - - $result = $this->Text->toList(array('Dusty', 'Lucky', 'Ned'), 'y'); - $this->assertEquals($result, 'Dusty, Lucky y Ned'); - - $result = $this->Text->toList(array(1 => 'Dusty', 2 => 'Lucky', 3 => 'Ned'), 'y'); - $this->assertEquals($result, 'Dusty, Lucky y Ned'); - - $result = $this->Text->toList(array(1 => 'Dusty', 2 => 'Lucky', 3 => 'Ned'), 'and', ' + '); - $this->assertEquals($result, 'Dusty + Lucky and Ned'); - - $result = $this->Text->toList(array('name1' => 'Dusty', 'name2' => 'Lucky')); - $this->assertEquals($result, 'Dusty and Lucky'); - - $result = $this->Text->toList(array('test_0' => 'banana', 'test_1' => 'apple', 'test_2' => 'lemon')); - $this->assertEquals($result, 'banana, apple and lemon'); - } }