You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
4.3 KiB
117 lines
4.3 KiB
<?php |
|
namespace yiiunit\framework\helpers; |
|
use \yii\helpers\StringHelper as StringHelper; |
|
|
|
/** |
|
* StringHelperTest |
|
*/ |
|
class StringHelperTest extends \yii\test\TestCase |
|
{ |
|
public function testStrlen() |
|
{ |
|
$this->assertEquals(4, StringHelper::strlen('this')); |
|
$this->assertEquals(6, StringHelper::strlen('это')); |
|
} |
|
|
|
public function testSubstr() |
|
{ |
|
$this->assertEquals('th', StringHelper::substr('this', 0, 2)); |
|
$this->assertEquals('э', StringHelper::substr('это', 0, 2)); |
|
} |
|
|
|
public function testPluralize() |
|
{ |
|
$testData = array( |
|
'move' => 'moves', |
|
'foot' => 'feet', |
|
'child' => 'children', |
|
'human' => 'humans', |
|
'man' => 'men', |
|
'staff' => 'staff', |
|
'tooth' => 'teeth', |
|
'person' => 'people', |
|
'mouse' => 'mice', |
|
'touch' => 'touches', |
|
'hash' => 'hashes', |
|
'shelf' => 'shelves', |
|
'potato' => 'potatoes', |
|
'bus' => 'buses', |
|
'test' => 'tests', |
|
'car' => 'cars', |
|
); |
|
|
|
foreach($testData as $testIn => $testOut) { |
|
$this->assertEquals($testOut, StringHelper::pluralize($testIn)); |
|
$this->assertEquals(ucfirst($testOut), ucfirst(StringHelper::pluralize($testIn))); |
|
} |
|
} |
|
|
|
public function testCamel2words() |
|
{ |
|
$this->assertEquals('Camel Case', StringHelper::camel2words('camelCase')); |
|
$this->assertEquals('Lower Case', StringHelper::camel2words('lower_case')); |
|
$this->assertEquals('Tricky Stuff It Is Testing', StringHelper::camel2words(' tricky_stuff.it-is testing... ')); |
|
} |
|
|
|
public function testCamel2id() |
|
{ |
|
$this->assertEquals('post-tag', StringHelper::camel2id('PostTag')); |
|
$this->assertEquals('post_tag', StringHelper::camel2id('PostTag', '_')); |
|
|
|
$this->assertEquals('post-tag', StringHelper::camel2id('postTag')); |
|
$this->assertEquals('post_tag', StringHelper::camel2id('postTag', '_')); |
|
} |
|
|
|
public function testId2camel() |
|
{ |
|
$this->assertEquals('PostTag', StringHelper::id2camel('post-tag')); |
|
$this->assertEquals('PostTag', StringHelper::id2camel('post_tag', '_')); |
|
|
|
$this->assertEquals('PostTag', StringHelper::id2camel('post-tag')); |
|
$this->assertEquals('PostTag', StringHelper::id2camel('post_tag', '_')); |
|
} |
|
|
|
public function testBasename() |
|
{ |
|
$this->assertEquals('', StringHelper::basename('')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('file')); |
|
$this->assertEquals('file.test', StringHelper::basename('file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('file.test', '.test')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('/file')); |
|
$this->assertEquals('file.test', StringHelper::basename('/file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('/file.test', '.test')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('/path/to/file')); |
|
$this->assertEquals('file.test', StringHelper::basename('/path/to/file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('/path/to/file.test', '.test')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('\file')); |
|
$this->assertEquals('file.test', StringHelper::basename('\file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('\file.test', '.test')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('C:\file')); |
|
$this->assertEquals('file.test', StringHelper::basename('C:\file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('C:\file.test', '.test')); |
|
|
|
$this->assertEquals('file', StringHelper::basename('C:\path\to\file')); |
|
$this->assertEquals('file.test', StringHelper::basename('C:\path\to\file.test', '.test2')); |
|
$this->assertEquals('file', StringHelper::basename('C:\path\to\file.test', '.test')); |
|
|
|
// mixed paths |
|
$this->assertEquals('file.test', StringHelper::basename('/path\to/file.test')); |
|
$this->assertEquals('file.test', StringHelper::basename('/path/to\file.test')); |
|
$this->assertEquals('file.test', StringHelper::basename('\path/to\file.test')); |
|
|
|
// \ and / in suffix |
|
$this->assertEquals('file', StringHelper::basename('/path/to/filete/st', 'te/st')); |
|
$this->assertEquals('st', StringHelper::basename('/path/to/filete/st', 'te\st')); |
|
$this->assertEquals('file', StringHelper::basename('/path/to/filete\st', 'te\st')); |
|
$this->assertEquals('st', StringHelper::basename('/path/to/filete\st', 'te/st')); |
|
|
|
// http://www.php.net/manual/en/function.basename.php#72254 |
|
$this->assertEquals('foo', StringHelper::basename('/bar/foo/')); |
|
$this->assertEquals('foo', StringHelper::basename('\\bar\\foo\\')); |
|
} |
|
}
|
|
|