mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-19 16:06:32 +02:00
7a065b087a
MINOR Added test to TextTest for LimitCharacters() MINOR Added test HTMLTextTest and added test case for LimitCharacters() git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@71795 467b73ca-7a2a-4603-9d3b-597d59a354a9
70 lines
2.1 KiB
PHP
70 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* @package sapphire
|
|
* @subpackage tests
|
|
*/
|
|
class TextTest extends SapphireTest {
|
|
|
|
/**
|
|
* Test {@link Text->LimitCharacters()}
|
|
*/
|
|
function testLimitCharacters() {
|
|
$cases = array(
|
|
'The little brown fox jumped over the lazy cow.' => 'The little brown fox...',
|
|
'<p>This is some text in a paragraph.</p>' => '<p>This is some text...'
|
|
);
|
|
|
|
foreach($cases as $originalValue => $expectedValue) {
|
|
$textObj = new Text('Test');
|
|
$textObj->setValue($originalValue);
|
|
$this->assertEquals($expectedValue, $textObj->LimitCharacters());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Test {@link Text->LimitWordCount()}
|
|
*/
|
|
function testLimitWordCount() {
|
|
$cases = array(
|
|
/* Standard words limited, ellipsis added if truncated */
|
|
'The little brown fox jumped over the lazy cow.' => 'The little brown...',
|
|
' This text has white space around the ends ' => 'This text has...',
|
|
|
|
/* Words less than the limt word count don't get truncated, ellipsis not added */
|
|
'Two words' => 'Two words', // Two words shouldn't have an ellipsis
|
|
'One' => 'One', // Neither should one word
|
|
'' => '', // No words produces nothing!
|
|
|
|
/* HTML tags get stripped out, leaving the raw text */
|
|
'<p>Text inside a paragraph tag should also work</p>' => 'Text inside a...',
|
|
'<p><span>Text nested inside another tag should also work</span></p>' => 'Text nested inside...',
|
|
'<p>Two words</p>' => 'Two words'
|
|
);
|
|
|
|
foreach($cases as $originalValue => $expectedValue) {
|
|
$textObj = new Text('Test');
|
|
$textObj->setValue($originalValue);
|
|
$this->assertEquals($expectedValue, $textObj->LimitWordCount(3));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Test {@link Text->LimitWordCountXML()}
|
|
*/
|
|
function testLimitWordCountXML() {
|
|
$cases = array(
|
|
'<p>Stuff & stuff</p>' => 'Stuff &...',
|
|
"Stuff\nBlah Blah Blah" => "Stuff<br />Blah Blah...",
|
|
"Stuff<Blah Blah" => "Stuff<Blah Blah",
|
|
"Stuff>Blah Blah" => "Stuff>Blah Blah"
|
|
);
|
|
|
|
foreach($cases as $originalValue => $expectedValue) {
|
|
$textObj = new Text('Test');
|
|
$textObj->setValue($originalValue);
|
|
$this->assertEquals($expectedValue, $textObj->LimitWordCountXML(3));
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|