@@ -130,6 +130,27 @@ function verifyLoadingFailed({ method, params }) {
130130 assert . strictEqual ( typeof params . errorText , 'string' ) ;
131131}
132132
133+ function verifyHttpResponse ( response ) {
134+ assert . strictEqual ( response . statusCode , 200 ) ;
135+ const chunks = [ ] ;
136+
137+ // Verifies that the inspector does not put the response into flowing mode.
138+ assert . strictEqual ( response . readableFlowing , null ) ;
139+ // Verifies that the data listener may be added at a later time, and it can
140+ // still observe the data in full.
141+ queueMicrotask ( ( ) => {
142+ response . on ( 'data' , ( chunk ) => {
143+ chunks . push ( chunk ) ;
144+ } ) ;
145+ assert . strictEqual ( response . readableFlowing , true ) ;
146+ } ) ;
147+
148+ response . on ( 'end' , common . mustCall ( ( ) => {
149+ const body = Buffer . concat ( chunks ) . toString ( ) ;
150+ assert . strictEqual ( body , '\nhello world\n' ) ;
151+ } ) ) ;
152+ }
153+
133154async function testHttpGet ( ) {
134155 const url = `http://127.0.0.1:${ httpServer . address ( ) . port } /hello-world` ;
135156 const requestWillBeSentFuture = once ( session , 'Network.requestWillBeSent' )
@@ -146,18 +167,20 @@ async function testHttpGet() {
146167 port : httpServer . address ( ) . port ,
147168 path : '/hello-world' ,
148169 headers : requestHeaders
149- } , common . mustCall ( ( res ) => {
150- // Dump the response.
151- res . on ( 'data' , ( ) => { } ) ;
152- res . on ( 'end' , ( ) => { } ) ;
153- } ) ) ;
170+ } , common . mustCall ( verifyHttpResponse ) ) ;
154171
155172 await requestWillBeSentFuture ;
156173 const responseReceived = await responseReceivedFuture ;
157174 const loadingFinished = await loadingFinishedFuture ;
158175
159176 const delta = ( loadingFinished . timestamp - responseReceived . timestamp ) * 1000 ;
160177 assert . ok ( delta > kDelta ) ;
178+
179+ const responseBody = await session . post ( 'Network.getResponseBody' , {
180+ requestId : responseReceived . requestId ,
181+ } ) ;
182+ assert . strictEqual ( responseBody . base64Encoded , false ) ;
183+ assert . strictEqual ( responseBody . body , '\nhello world\n' ) ;
161184}
162185
163186async function testHttpsGet ( ) {
@@ -177,18 +200,20 @@ async function testHttpsGet() {
177200 path : '/hello-world' ,
178201 rejectUnauthorized : false ,
179202 headers : requestHeaders ,
180- } , common . mustCall ( ( res ) => {
181- // Dump the response.
182- res . on ( 'data' , ( ) => { } ) ;
183- res . on ( 'end' , ( ) => { } ) ;
184- } ) ) ;
203+ } , common . mustCall ( verifyHttpResponse ) ) ;
185204
186205 await requestWillBeSentFuture ;
187206 const responseReceived = await responseReceivedFuture ;
188207 const loadingFinished = await loadingFinishedFuture ;
189208
190209 const delta = ( loadingFinished . timestamp - responseReceived . timestamp ) * 1000 ;
191210 assert . ok ( delta > kDelta ) ;
211+
212+ const responseBody = await session . post ( 'Network.getResponseBody' , {
213+ requestId : responseReceived . requestId ,
214+ } ) ;
215+ assert . strictEqual ( responseBody . base64Encoded , false ) ;
216+ assert . strictEqual ( responseBody . body , '\nhello world\n' ) ;
192217}
193218
194219async function testHttpError ( ) {
0 commit comments