assertNull(env('DOES_NOT_EXIST')); $this->assertSame('default', env('DOES_NOT_EXIST', 'default')); $_ENV['DOES_EXIST'] = 'some value'; $this->assertSame('some value', env('DOES_EXIST')); $this->assertSame('some value', env('DOES_EXIST', 'default')); $_ENV['EMPTY_VALUE'] = ''; $this->assertSame('', env('EMPTY_VALUE')); $this->assertSame('', env('EMPTY_VALUE', 'default')); $_ENV['ZERO'] = '0'; $this->assertSame('0', env('ZERO')); $this->assertSame('0', env('ZERO', '1')); $this->assertSame('', env('DOCUMENT_ROOT')); $this->assertStringContainsString('phpunit', env('PHP_SELF')); } /** * Test cases for h() * * @return void * @dataProvider hInputProvider */ public function testH($value, $expected) { $result = h($value); $this->assertSame($expected, $result); } public function hInputProvider() { return [ ['i am clean', 'i am clean'], ['i "need" escaping', 'i "need" escaping'], [null, null], [1, 1], [1.1, 1.1], [new \stdClass(), '(object)stdClass'], [new Response(), ''], [['clean', '"clean-me'], ['clean', '"clean-me']], ]; } /** * Test error messages coming out when deprecated level is on, manually setting the stack frame */ public function testDeprecationWarningEnabled() { $this->expectException(Deprecated::class); $this->expectExceptionMessageMatches('/This is going away - (.*?)[\/\\\]FunctionsTest.php, line\: \d+/'); $this->withErrorReporting(E_ALL, function () { deprecationWarning('This is going away', 2); }); } /** * Test error messages coming out when deprecated level is on, not setting the stack frame manually */ public function testDeprecationWarningEnabledDefaultFrame() { $this->expectException(Deprecated::class); $this->expectExceptionMessageMatches('/This is going away - (.*?)[\/\\\]TestCase.php, line\: \d+/'); $this->withErrorReporting(E_ALL, function () { deprecationWarning('This is going away'); }); } /** * Test no error when deprecated level is off. * * @return void */ public function testDeprecationWarningLevelDisabled() { $this->withErrorReporting(E_ALL ^ E_USER_DEPRECATED, function () { $this->assertNull(deprecationWarning('This is going away')); }); } /** * Test error messages coming out when warning level is on. */ public function testTriggerWarningEnabled() { $this->expectException(Warning::class); $this->expectExceptionMessageMatches('/This is going away - (.*?)[\/\\\]TestCase.php, line\: \d+/'); $this->withErrorReporting(E_ALL, function () { triggerWarning('This is going away'); }); } /** * Test no error when warning level is off. * * @return void */ public function testTriggerWarningLevelDisabled() { $this->withErrorReporting(E_ALL ^ E_USER_WARNING, function () { $this->assertNull(triggerWarning('This is going away')); }); } /** * testing getTypeName() * * @return void */ public function testgetTypeName() { $this->assertSame('stdClass', getTypeName(new \stdClass())); $this->assertSame('array', getTypeName([])); $this->assertSame('string', getTypeName('')); } }