* @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));
}
}