44
55use DebugBar \JavascriptRenderer ;
66use PhpMiddleware \PhpDebugBar \PhpDebugBarMiddleware ;
7+ use Zend \Diactoros \Response ;
8+ use Zend \Diactoros \ServerRequest ;
79
810/**
911 * PhpDebugBarMiddlewareTest
@@ -23,8 +25,8 @@ protected function setUp()
2325
2426 public function testNotAttachIfNotAccept ()
2527 {
26- $ request = new \ Zend \ Diactoros \ ServerRequest ([], [], null , null , ' php://input ' , [ ' Accept: application/json ' ] );
27- $ response = new \ Zend \ Diactoros \ Response ();
28+ $ request = new ServerRequest ();
29+ $ response = new Response ();
2830 $ calledOut = false ;
2931 $ outFunction = function ($ request , $ response ) use (&$ calledOut ) {
3032 $ calledOut = true ;
@@ -36,4 +38,46 @@ public function testNotAttachIfNotAccept()
3638 $ this ->assertTrue ($ calledOut , 'Out is not called ' );
3739 $ this ->assertSame ($ response , $ result );
3840 }
41+
42+ public function testAttachToNoneHtmlResponse ()
43+ {
44+ $ request = new ServerRequest ([], [], null , null , 'php://input ' , ['Accept ' => 'text/html ' ]);
45+ $ response = new Response ();
46+ $ response ->getBody ()->write ('ResponseBody ' );
47+ $ calledOut = false ;
48+ $ outFunction = function ($ request , $ response ) use (&$ calledOut ) {
49+ $ calledOut = true ;
50+ return $ response ;
51+ };
52+
53+ $ this ->debugbarRenderer ->expects ($ this ->once ())->method ('renderHead ' )->willReturn ('RenderHead ' );
54+ $ this ->debugbarRenderer ->expects ($ this ->once ())->method ('render ' )->willReturn ('RenderBody ' );
55+
56+ $ result = call_user_func ($ this ->middleware , $ request , $ response , $ outFunction );
57+
58+ $ this ->assertTrue ($ calledOut , 'Out is not called ' );
59+ $ this ->assertNotSame ($ response , $ result );
60+ $ this ->assertSame ("<html><head>RenderHead</head><body><h1>DebugBar</h1><p>Response:</p><pre>HTTP/1.1 200 OK \r\n\r\nResponseBody</pre>RenderBody</body></html> " , (string ) $ result ->getBody ());
61+ }
62+
63+ public function testAttachToHtmlResponse ()
64+ {
65+ $ request = new ServerRequest ([], [], null , null , 'php://input ' , ['Accept ' => 'text/html ' ]);
66+ $ response = new Response ('php://memory ' , 200 , ['Content-Type ' => 'text/html ' ]);
67+ $ response ->getBody ()->write ('ResponseBody ' );
68+ $ calledOut = false ;
69+ $ outFunction = function ($ request , $ response ) use (&$ calledOut ) {
70+ $ calledOut = true ;
71+ return $ response ;
72+ };
73+
74+ $ this ->debugbarRenderer ->expects ($ this ->once ())->method ('renderHead ' )->willReturn ('RenderHead ' );
75+ $ this ->debugbarRenderer ->expects ($ this ->once ())->method ('render ' )->willReturn ('RenderBody ' );
76+
77+ $ result = call_user_func ($ this ->middleware , $ request , $ response , $ outFunction );
78+
79+ $ this ->assertTrue ($ calledOut , 'Out is not called ' );
80+ $ this ->assertSame ($ response , $ result );
81+ $ this ->assertSame ("ResponseBodyRenderHeadRenderBody " , (string ) $ result ->getBody ());
82+ }
3983}
0 commit comments