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\\')); | |
| 	} | |
| }
 | |
| 
 |