helper('text');
$this->_long_string = 'Once upon a time, a framework had no tests. It sad. So some nice people began to write tests. The more time that went on, the happier it became. Everyone was happy.';
}
// ------------------------------------------------------------------------
public function test_word_limiter()
{
$this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4));
$this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4, '…'));
$this->assertEquals('', word_limiter('', 4));
}
// ------------------------------------------------------------------------
public function test_character_limiter()
{
$this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20));
$this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20, '…'));
$this->assertEquals('Short', character_limiter('Short', 20));
$this->assertEquals('Short', character_limiter('Short', 5));
}
// ------------------------------------------------------------------------
public function test_ascii_to_entities()
{
$strs = array(
'“‘ “test”' => '“‘ “test”',
'†¥¨ˆøåß∂ƒ©˙∆˚¬' => '†¥¨ˆøåß∂ƒ©˙∆˚¬'
);
foreach ($strs as $str => $expect)
{
$this->assertEquals($expect, ascii_to_entities($str));
}
}
// ------------------------------------------------------------------------
public function test_entities_to_ascii()
{
$strs = array(
'“‘ “test”' => '“‘ “test”',
'†¥¨ˆøåß∂ƒ©˙∆˚¬' => '†¥¨ˆøåß∂ƒ©˙∆˚¬'
);
foreach ($strs as $str => $expect)
{
$this->assertEquals($expect, entities_to_ascii($str));
}
}
// ------------------------------------------------------------------------
public function test_convert_accented_characters()
{
if (substr(PHP_VERSION, 0, 3) === '7.4')
{
return $this->markTestSkipped('For some reason all PHP 7.4 instances on GitHub Actions trigger a parse error when foreign_chars.php is loaded');
}
$this->ci_vfs_clone('application/config/foreign_chars.php');
$this->assertEquals('AAAeEEEIIOOEUUUeY', convert_accented_characters('ÀÂÄÈÊËÎÏÔŒÙÛÜŸ'));
$this->assertEquals('a e i o u n ue', convert_accented_characters('á é í ó ú ñ ü'));
}
// ------------------------------------------------------------------------
public function test_censored_words()
{
$censored = array('boob', 'nerd', 'ass', 'fart');
$strs = array(
'Ted bobbled the ball' => 'Ted bobbled the ball',
'Jake is a nerdo' => 'Jake is a nerdo',
'The borg will assimilate you' => 'The borg will assimilate you',
'Did Mary Fart?' => 'Did Mary $*#?',
'Jake is really a boob' => 'Jake is really a $*#'
);
foreach ($strs as $str => $expect)
{
$this->assertEquals($expect, word_censor($str, $censored, '$*#'));
}
// test censored words being sent as a string
$this->assertEquals('test', word_censor('test', 'test'));
}
// ------------------------------------------------------------------------
public function test_highlight_code()
{
$expect = "\n<?php var_dump(\$this); ?> \n\n
";
$this->assertEquals($expect, highlight_code(''));
}
// ------------------------------------------------------------------------
public function test_highlight_phrase()
{
$strs = array(
'this is a phrase' => 'this is a phrase',
'this is another' => 'this is another',
'Gimme a test, Sally' => 'Gimme a test, Sally',
'Or tell me what this is' => 'Or tell me what this is',
'' => ''
);
foreach ($strs as $str => $expect)
{
$this->assertEquals($expect, highlight_phrase($str, 'this is'));
}
$this->assertEquals('this is a strong test', highlight_phrase('this is a strong test', 'this is', '', ''));
}
// ------------------------------------------------------------------------
public function test_ellipsize()
{
$strs = array(
'0' => array(
'this is my string' => '… my string',
"here's another one" => '…nother one',
'this one is just a bit longer' => '…bit longer',
'short' => 'short'
),
'.5' => array(
'this is my string' => 'this …tring',
"here's another one" => "here'…r one",
'this one is just a bit longer' => 'this …onger',
'short' => 'short'
),
'1' => array(
'this is my string' => 'this is my…',
"here's another one" => "here's ano…",
'this one is just a bit longer' => 'this one i…',
'short' => 'short'
),
);
foreach ($strs as $pos => $s)
{
foreach ($s as $str => $expect)
{
$this->assertEquals($expect, ellipsize($str, 10, $pos));
}
}
}
// ------------------------------------------------------------------------
public function test_word_wrap()
{
$string = 'Here is a simple string of text that will help us demonstrate this function.';
$this->assertEquals(substr_count(word_wrap($string, 25), "\n"), 4);
}
// ------------------------------------------------------------------------
public function test_default_word_wrap_charlim()
{
$string = "Here is a longer string of text that will help us demonstrate the default charlim of this function.";
$this->assertEquals(strpos(word_wrap($string), "\n"), 73);
}
}