assertEquals('Taylor...', Str::words('Taylor Otwell', 1)); $this->assertEquals('Taylor___', Str::words('Taylor Otwell', 1, '___')); $this->assertEquals('Taylor Otwell', Str::words('Taylor Otwell', 3)); } public function testStringTrimmedOnlyWhereNecessary() { $this->assertEquals(' Taylor Otwell ', Str::words(' Taylor Otwell ', 3)); $this->assertEquals(' Taylor...', Str::words(' Taylor Otwell ', 1)); } public function testStringTitle() { $this->assertEquals('Jefferson Costella', Str::title('jefferson costella')); $this->assertEquals('Jefferson Costella', Str::title('jefFErson coSTella')); } public function testStringWithoutWordsDoesntProduceError() { $nbsp = chr(0xC2).chr(0xA0); $this->assertEquals(' ', Str::words(' ')); $this->assertEquals($nbsp, Str::words($nbsp)); } public function testStartsWith() { $this->assertTrue(Str::startsWith('jason', 'jas')); $this->assertTrue(Str::startsWith('jason', 'jason')); $this->assertTrue(Str::startsWith('jason', ['jas'])); $this->assertFalse(Str::startsWith('jason', 'day')); $this->assertFalse(Str::startsWith('jason', ['day'])); $this->assertFalse(Str::startsWith('jason', '')); } public function testEndsWith() { $this->assertTrue(Str::endsWith('jason', 'on')); $this->assertTrue(Str::endsWith('jason', 'jason')); $this->assertTrue(Str::endsWith('jason', ['on'])); $this->assertFalse(Str::endsWith('jason', 'no')); $this->assertFalse(Str::endsWith('jason', ['no'])); $this->assertFalse(Str::endsWith('jason', '')); $this->assertFalse(Str::endsWith('7', ' 7')); } public function testStrContains() { $this->assertTrue(Str::contains('taylor', 'ylo')); $this->assertTrue(Str::contains('taylor', ['ylo'])); $this->assertFalse(Str::contains('taylor', 'xxx')); $this->assertFalse(Str::contains('taylor', ['xxx'])); $this->assertFalse(Str::contains('taylor', '')); } public function testParseCallback() { $this->assertEquals(['Class', 'method'], Str::parseCallback('Class@method', 'foo')); $this->assertEquals(['Class', 'foo'], Str::parseCallback('Class', 'foo')); } public function testSlug() { $this->assertEquals('hello-world', Str::slug('hello world')); $this->assertEquals('hello-world', Str::slug('hello-world')); $this->assertEquals('hello-world', Str::slug('hello_world')); $this->assertEquals('hello_world', Str::slug('hello_world', '_')); } public function testFinish() { $this->assertEquals('abbc', Str::finish('ab', 'bc')); $this->assertEquals('abbc', Str::finish('abbcbc', 'bc')); $this->assertEquals('abcbbc', Str::finish('abcbbcbc', 'bc')); } public function testIs() { $this->assertTrue(Str::is('/', '/')); $this->assertFalse(Str::is('/', ' /')); $this->assertFalse(Str::is('/', '/a')); $this->assertTrue(Str::is('foo/*', 'foo/bar/baz')); $this->assertTrue(Str::is('*/foo', 'blah/baz/foo')); } public function testLower() { $this->assertEquals('foo bar baz', Str::lower('FOO BAR BAZ')); $this->assertEquals('foo bar baz', Str::lower('fOo Bar bAz')); } public function testUpper() { $this->assertEquals('FOO BAR BAZ', Str::upper('foo bar baz')); $this->assertEquals('FOO BAR BAZ', Str::upper('foO bAr BaZ')); } public function testLimit() { $this->assertEquals('Laravel is...', Str::limit('Laravel is a free, open source PHP web application framework.', 10)); $this->assertEquals('这是一...', Str::limit('这是一段中文', 6)); } public function testLength() { $this->assertEquals(11, Str::length('foo bar baz')); } public function testQuickRandom() { $randomInteger = random_int(1, 100); $this->assertEquals($randomInteger, strlen(Str::quickRandom($randomInteger))); $this->assertInternalType('string', Str::quickRandom()); $this->assertEquals(16, strlen(Str::quickRandom())); } public function testRandom() { $this->assertEquals(16, strlen(Str::random())); $randomInteger = random_int(1, 100); $this->assertEquals($randomInteger, strlen(Str::random($randomInteger))); $this->assertInternalType('string', Str::random()); } public function testSnake() { $this->assertEquals('laravel_p_h_p_framework', Str::snake('LaravelPHPFramework')); $this->assertEquals('laravel_php_framework', Str::snake('LaravelPhpFramework')); $this->assertEquals('laravel php framework', Str::snake('LaravelPhpFramework', ' ')); $this->assertEquals('laravel_php_framework', Str::snake('Laravel Php Framework')); $this->assertEquals('laravel_php_framework', Str::snake('Laravel Php Framework ')); } public function testStudly() { $this->assertEquals('LaravelPHPFramework', Str::studly('laravel_p_h_p_framework')); $this->assertEquals('LaravelPhpFramework', Str::studly('laravel_php_framework')); $this->assertEquals('LaravelPhPFramework', Str::studly('laravel-phP-framework')); $this->assertEquals('LaravelPhpFramework', Str::studly('laravel -_- php -_- framework ')); } public function testCamel() { $this->assertEquals('laravelPHPFramework', Str::camel('Laravel_p_h_p_framework')); $this->assertEquals('laravelPhpFramework', Str::camel('Laravel_php_framework')); $this->assertEquals('laravelPhPFramework', Str::camel('Laravel-phP-framework')); $this->assertEquals('laravelPhpFramework', Str::camel('Laravel -_- php -_- framework ')); } public function testSubstr() { $this->assertEquals('Ё', Str::substr('БГДЖИЛЁ', -1)); $this->assertEquals('ЛЁ', Str::substr('БГДЖИЛЁ', -2)); $this->assertEquals('И', Str::substr('БГДЖИЛЁ', -3, 1)); $this->assertEquals('ДЖИЛ', Str::substr('БГДЖИЛЁ', 2, -1)); $this->assertEmpty(Str::substr('БГДЖИЛЁ', 4, -4)); $this->assertEquals('ИЛ', Str::substr('БГДЖИЛЁ', -3, -1)); $this->assertEquals('ГДЖИЛЁ', Str::substr('БГДЖИЛЁ', 1)); $this->assertEquals('ГДЖ', Str::substr('БГДЖИЛЁ', 1, 3)); $this->assertEquals('БГДЖ', Str::substr('БГДЖИЛЁ', 0, 4)); $this->assertEquals('Ё', Str::substr('БГДЖИЛЁ', -1, 1)); $this->assertEmpty(Str::substr('Б', 2)); } public function testUcfirst() { $this->assertEquals('Laravel', Str::ucfirst('laravel')); $this->assertEquals('Laravel framework', Str::ucfirst('laravel framework')); $this->assertEquals('Мама', Str::ucfirst('мама')); $this->assertEquals('Мама мыла раму', Str::ucfirst('мама мыла раму')); } }