2
2
3
3
namespace Herloct \Codeception \Lib \Connector ;
4
4
5
+ use Psr \Http \Message \ResponseInterface ;
5
6
use Psr \Http \Message \ServerRequestInterface ;
6
7
use Psr \Http \Message \UploadedFileInterface ;
7
8
use Slim \App ;
@@ -41,13 +42,16 @@ public function setApp(App $app)
41
42
protected function doRequest ($ request )
42
43
{
43
44
$ slimRequest = $ this ->convertRequest ($ request );
45
+
44
46
$ container = $ this ->app ->getContainer ();
45
47
46
- $ slimResponse = $ this ->app ->process (
47
- $ slimRequest ,
48
- $ container ->get ('response ' )
49
- ->withBody (new Stream (fopen ('php://temp ' , 'w+ ' )))
50
- );
48
+ /* @var $slimResponse ResponseInterface */
49
+ $ slimResponse = $ container ->get ('response ' );
50
+
51
+ // reset body stream
52
+ $ slimResponse = $ slimResponse ->withBody (new Stream (fopen ('php://temp ' , 'w+ ' )));
53
+
54
+ $ slimResponse = $ this ->app ->process ($ slimRequest , $ slimResponse );
51
55
52
56
return new BrowserKitResponse (
53
57
(string ) $ slimResponse ->getBody (),
@@ -65,13 +69,15 @@ protected function doRequest($request)
65
69
private function convertRequest (BrowserKitRequest $ request )
66
70
{
67
71
$ environment = Environment::mock ($ request ->getServer ());
68
- $ container = $ this ->app ->getContainer ();
69
-
70
72
$ uri = Uri::createFromString ($ request ->getUri ());
71
73
$ headers = Headers::createFromEnvironment ($ environment );
72
74
$ cookies = Cookies::parseHeader ($ headers ->get ('Cookie ' , []));
73
75
76
+ $ container = $ this ->app ->getContainer ();
77
+
78
+ /* @var $slimRequest ServerRequestInterface */
74
79
$ slimRequest = $ container ->get ('request ' );
80
+
75
81
$ slimRequest = $ slimRequest ->withMethod ($ request ->getMethod ())
76
82
->withUri ($ uri )
77
83
->withUploadedFiles ($ this ->convertFiles ($ request ->getFiles ()))
0 commit comments