* @copyright (c) 2007-2016 Kohana Team * @copyright (c) since 2016 Koseven Team * @license https://koseven.dev/LICENSE */ class KO7_DebugTest extends Unittest_TestCase { /** * Provides test data for test_debug() * * @return array */ public function provider_vars() { return [ // $thing, $expected [['foobar'], "
array(1) (\n    0 => string(6) \"foobar\"\n)
"], ]; } /** * Tests Debug::vars() * * @test * @dataProvider provider_vars * @covers Debug::vars * @param boolean $thing The thing to debug * @param boolean $expected Output for Debug::vars */ public function test_var($thing, $expected) { $this->assertEquals($expected, Debug::vars($thing)); } /** * Provides test data for testDebugPath() * * @return array */ public function provider_debug_path() { return [ [ SYSPATH.'classes'.DIRECTORY_SEPARATOR.'ko7'.EXT, 'SYSPATH'.DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'ko7.php' ], [ MODPATH.$this->dirSeparator('unittest/classes/ko7/unittest/runner').EXT, $this->dirSeparator('MODPATH/unittest/classes/ko7/unittest/runner').EXT ], ]; } /** * Tests Debug::path() * * @test * @dataProvider provider_debug_path * @covers Debug::path * @param boolean $path Input for Debug::path * @param boolean $expected Output for Debug::path */ public function test_debug_path($path, $expected) { $this->assertEquals($expected, Debug::path($path)); } /** * Provides test data for test_dump() * * @return array */ public function provider_dump() { return [ ['foobar', 128, 10, 'string(6) "foobar"'], ['foobar', 2, 10, 'string(6) "fo …"'], [NULL, 128, 10, 'NULL'], [TRUE, 128, 10, 'bool TRUE'], [['foobar'], 128, 10, "array(1) (\n 0 => string(6) \"foobar\"\n)"], [new StdClass, 128, 10, "object stdClass(0) {\n}"], ["fo\x6F\xFF\x00bar\x8F\xC2\xB110", 128, 10, 'string(10) "foobar±10"'], [['level1' => ['level2' => ['level3' => ['level4' => ['value' => 'something']]]]], 128, 4, 'array(1) ( "level1" => array(1) ( "level2" => array(1) ( "level3" => array(1) ( "level4" => array(1) ( ... ) ) ) ) )'], ]; } /** * Tests Debug::dump() * * @test * @dataProvider provider_dump * @covers Debug::dump * @covers Debug::_dump * @param object $exception exception to test * @param string $expected expected output */ public function test_dump($input, $length, $limit, $expected) { // Replace New Line Seperator to pass test on windows systems $expected = str_replace("\r\n","\n", $expected); $this->assertEquals($expected, Debug::dump($input, $length, $limit)); } }