@@ -46,6 +46,61 @@ public function testSuccessfulResponseEmitsEnd()
4646 $ loop ->run ();
4747 }
4848
49+ /** @group internet */
50+ public function testPostDataReturnsData ()
51+ {
52+ $ loop = Factory::create ();
53+ $ client = new Client ($ loop );
54+
55+ $ data = str_repeat ('. ' , 33000 );
56+ $ request = $ client ->request ('POST ' , 'https://httpbin.org/post ' , array ('Content-Length ' => strlen ($ data )));
57+
58+ $ buffer = '' ;
59+ $ request ->on ('response ' , function (Response $ response ) use (&$ buffer ) {
60+ $ response ->on ('data ' , function ($ chunk ) use (&$ buffer ) {
61+ $ buffer .= $ chunk ;
62+ });
63+ });
64+
65+ $ request ->end ($ data );
66+
67+ $ loop ->run ();
68+
69+ $ this ->assertNotEquals ('' , $ buffer );
70+
71+ $ parsed = json_decode ($ buffer , true );
72+ $ this ->assertTrue (is_array ($ parsed ) && isset ($ parsed ['data ' ]));
73+ $ this ->assertEquals (strlen ($ data ), strlen ($ parsed ['data ' ]));
74+ $ this ->assertEquals ($ data , $ parsed ['data ' ]);
75+ }
76+
77+ /** @group internet */
78+ public function testPostJsonReturnsData ()
79+ {
80+ $ loop = Factory::create ();
81+ $ client = new Client ($ loop );
82+
83+ $ data = json_encode (array ('numbers ' => range (1 , 50 )));
84+ $ request = $ client ->request ('POST ' , 'https://httpbin.org/post ' , array ('Content-Length ' => strlen ($ data ), 'Content-Type ' => 'application/json ' ));
85+
86+ $ buffer = '' ;
87+ $ request ->on ('response ' , function (Response $ response ) use (&$ buffer ) {
88+ $ response ->on ('data ' , function ($ chunk ) use (&$ buffer ) {
89+ $ buffer .= $ chunk ;
90+ });
91+ });
92+
93+ $ request ->end ($ data );
94+
95+ $ loop ->run ();
96+
97+ $ this ->assertNotEquals ('' , $ buffer );
98+
99+ $ parsed = json_decode ($ buffer , true );
100+ $ this ->assertTrue (is_array ($ parsed ) && isset ($ parsed ['json ' ]));
101+ $ this ->assertEquals (json_decode ($ data , true ), $ parsed ['json ' ]);
102+ }
103+
49104 /** @group internet */
50105 public function testCancelPendingConnectionEmitsClose ()
51106 {
0 commit comments