4
4
5
5
use DebugBar \JavascriptRenderer ;
6
6
use PhpMiddleware \PhpDebugBar \PhpDebugBarMiddleware ;
7
+ use Zend \Diactoros \Response ;
8
+ use Zend \Diactoros \ServerRequest ;
7
9
8
10
/**
9
11
* PhpDebugBarMiddlewareTest
@@ -23,8 +25,8 @@ protected function setUp()
23
25
24
26
public function testNotAttachIfNotAccept ()
25
27
{
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 ();
28
30
$ calledOut = false ;
29
31
$ outFunction = function ($ request , $ response ) use (&$ calledOut ) {
30
32
$ calledOut = true ;
@@ -36,4 +38,46 @@ public function testNotAttachIfNotAccept()
36
38
$ this ->assertTrue ($ calledOut , 'Out is not called ' );
37
39
$ this ->assertSame ($ response , $ result );
38
40
}
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
+ }
39
83
}
0 commit comments