@@ -73,6 +73,9 @@ public function provideChunkedEncoding()
7373 ],
7474 'end-chunk-zero-check-3 ' => [
7575 ["00004 \r\nWiki \r\n005 \r\npedia \r\ne \r\n in \r\n\r\nchunks. \r\n0000 \r\n\r\n" ]
76+ ],
77+ 'uppercase-chunk ' => [
78+ ["4 \r\nWiki \r\n5 \r\npedia \r\nE \r\n in \r\n\r\nchunks. \r\n0 \r\n\r\n" ],
7679 ]
7780 ];
7881 }
@@ -130,7 +133,19 @@ public function testInvalidChunkedEncoding(array $strings)
130133 }
131134 }
132135
133- public function testHandleEnd ()
136+ public function provideZeroChunk ()
137+ {
138+ return [
139+ ['1-zero ' => "0 \r\n\r\n" ],
140+ ['random-zero ' => str_repeat ("0 " , rand (2 , 10 ))."\r\n\r\n" ]
141+ ];
142+ }
143+
144+ /**
145+ * @test
146+ * @dataProvider provideZeroChunk
147+ */
148+ public function testHandleEnd ($ zeroChunk )
134149 {
135150 $ ended = false ;
136151 $ stream = new ThroughStream ();
@@ -142,7 +157,7 @@ public function testHandleEnd()
142157 $ ended = true ;
143158 });
144159
145- $ stream ->write ("4 \r\nWiki \r\n 0 \r\n\r\n" );
160+ $ stream ->write ("4 \r\nWiki \r\n" . $ zeroChunk );
146161
147162 $ this ->assertTrue ($ ended );
148163 }
@@ -178,7 +193,11 @@ public function testHandleEndTrailers()
178193 $ this ->assertTrue ($ ended );
179194 }
180195
181- public function testHandleEndEnsureNoError ()
196+ /**
197+ * @test
198+ * @dataProvider provideZeroChunk
199+ */
200+ public function testHandleEndEnsureNoError ($ zeroChunk )
182201 {
183202 $ ended = false ;
184203 $ stream = new ThroughStream ();
@@ -191,7 +210,7 @@ public function testHandleEndEnsureNoError()
191210 });
192211
193212 $ stream ->write ("4 \r\nWiki \r\n" );
194- $ stream ->write (" 0 \r\n\r\n" );
213+ $ stream ->write ($ zeroChunk );
195214 $ stream ->end ();
196215
197216 $ this ->assertTrue ($ ended );
0 commit comments