@@ -46,6 +46,61 @@ public function testSuccessfulResponseEmitsEnd()
46
46
$ loop ->run ();
47
47
}
48
48
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
+
49
104
/** @group internet */
50
105
public function testCancelPendingConnectionEmitsClose ()
51
106
{
0 commit comments