assertSame('this-is-a-test', debug('this-is-a-test', false)); $result = ob_get_clean(); $expectedText = <<assertSame($expected, $result); ob_start(); $value = '
this-is-a-test
'; $this->assertSame($value, debug($value, true)); $result = ob_get_clean(); $this->assertStringContainsString('
%s (line %d) EXPECTED; $expected = sprintf($expected, Debugger::trimPath(__FILE__), __LINE__ - 6); $this->assertStringContainsString($expected, $result); ob_start(); debug('
this-is-a-test
', true, false); $result = ob_get_clean(); $this->assertStringNotContainsString('(line', $result); } /** * test pr() */ public function testPr(): void { ob_start(); $this->assertTrue(pr(true)); $result = ob_get_clean(); $expected = "\n1\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertFalse(pr(false)); $result = ob_get_clean(); $expected = "\n\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertNull(pr(null)); $result = ob_get_clean(); $expected = "\n\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertSame(123, pr(123)); $result = ob_get_clean(); $expected = "\n123\n\n"; $this->assertSame($expected, $result); ob_start(); pr('123'); $result = ob_get_clean(); $expected = "\n123\n\n"; $this->assertSame($expected, $result); ob_start(); pr('this is a test'); $result = ob_get_clean(); $expected = "\nthis is a test\n\n"; $this->assertSame($expected, $result); ob_start(); pr(['this' => 'is', 'a' => 'test', 123 => 456]); $result = ob_get_clean(); $expected = "\nArray\n(\n [this] => is\n [a] => test\n [123] => 456\n)\n\n"; $this->assertSame($expected, $result); } /** * test pj() */ public function testPj(): void { ob_start(); $this->assertTrue(pj(true)); $result = ob_get_clean(); $expected = "\ntrue\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertFalse(pj(false)); $result = ob_get_clean(); $expected = "\nfalse\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertNull(pj(null)); $result = ob_get_clean(); $expected = "\nnull\n\n"; $this->assertSame($expected, $result); ob_start(); $this->assertSame(123, pj(123)); $result = ob_get_clean(); $expected = "\n123\n\n"; $this->assertSame($expected, $result); ob_start(); pj('123'); $result = ob_get_clean(); $expected = "\n\"123\"\n\n"; $this->assertSame($expected, $result); ob_start(); pj('this is a test'); $result = ob_get_clean(); $expected = "\n\"this is a test\"\n\n"; $this->assertSame($expected, $result); ob_start(); $value = ['this' => 'is', 'a' => 'test', 123 => 456]; $this->assertSame($value, pj($value)); $result = ob_get_clean(); $expected = "\n{\n \"this\": \"is\",\n \"a\": \"test\",\n \"123\": 456\n}\n\n"; $this->assertSame($expected, $result); } /** * Tests that the stackTrace() method is a shortcut for Debugger::trace() */ public function testStackTrace(): void { ob_start(); // phpcs:ignore stackTrace(); $expected = Debugger::trace(); $result = ob_get_clean(); $this->assertSame($expected, $result); $opts = ['args' => true]; ob_start(); // phpcs:ignore stackTrace($opts); $expected = Debugger::trace($opts); $result = ob_get_clean(); $this->assertSame($expected, $result); $opts = ['format' => 'array']; $trace = Debugger::trace($opts); $this->assertEmpty(array_column($trace, 'args')); } }