@@ -15,7 +15,7 @@ import {describeWithMockConnection} from '../../testing/MockConnection.js';
1515import { createNetworkPanelForMockConnection } from '../../testing/NetworkHelpers.js' ;
1616import * as Coordinator from '../../ui/components/render_coordinator/render_coordinator.js' ;
1717
18- import { DrJonesNetworkAgent , ResponseType } from './freestyler.js' ;
18+ import { allowHeader , DrJonesNetworkAgent , ResponseType } from './freestyler.js' ;
1919
2020const coordinator = Coordinator . RenderCoordinator . RenderCoordinator . instance ( ) ;
2121
@@ -146,8 +146,9 @@ describeWithMockConnection('DrJonesNetworkAgent', () => {
146146 'requestId' as Protocol . Network . RequestId , 'https://www.example.com' as Platform . DevToolsPath . UrlString ,
147147 '' as Platform . DevToolsPath . UrlString , null , null , null ) ;
148148 selectedNetworkRequest . statusCode = 200 ;
149- selectedNetworkRequest . setRequestHeaders ( [ { name : 'foo1' , value : 'bar1' } ] ) ;
150- selectedNetworkRequest . responseHeaders = [ { name : 'foo2' , value : 'bar2' } , { name : 'foo3' , value : 'bar3' } ] ;
149+ selectedNetworkRequest . setRequestHeaders ( [ { name : 'content-type' , value : 'bar1' } ] ) ;
150+ selectedNetworkRequest . responseHeaders =
151+ [ { name : 'content-type' , value : 'bar2' } , { name : 'x-forwarded-for' , value : 'bar3' } ] ;
151152 selectedNetworkRequest . timing = timingInfo ;
152153
153154 const initiatorNetworkRequest = SDK . NetworkRequest . NetworkRequest . create (
@@ -222,11 +223,11 @@ describeWithMockConnection('DrJonesNetworkAgent', () => {
222223 details : [
223224 {
224225 title : 'Request' ,
225- text : 'Request URL: https://www.example.com\n\nRequest Headers\nfoo1 : bar1' ,
226+ text : 'Request URL: https://www.example.com\n\nRequest Headers\ncontent-type : bar1' ,
226227 } ,
227228 {
228229 title : 'Response' ,
229- text : 'Response Status: 200 \n\nResponse Headers\nfoo2 : bar2\nfoo3 : bar3' ,
230+ text : 'Response Status: 200 \n\nResponse Headers\ncontent-type : bar2\nx-forwarded-for : bar3' ,
230231 } ,
231232 {
232233 title : 'Timing' ,
@@ -245,7 +246,7 @@ describeWithMockConnection('DrJonesNetworkAgent', () => {
245246 {
246247 type : ResponseType . QUERYING ,
247248 query :
248- '# Selected network request \nRequest: https://www.example.com\n\nRequest headers:\nfoo1 : bar1\n\nResponse headers:\nfoo2 : bar2\nfoo3 : bar3\n\nResponse status: 200 \n\nRequest timing:\nQueued at (timestamp): 0 μs\nStarted at (timestamp): 8.3 min\nQueueing (duration): 8.3 min\nConnection start (stalled) (duration): 800.00 ms\nRequest sent (duration): 100.00 ms\nDuration (duration): 8.3 min\n\nRequest initiator chain:\n- URL: https://www.initiator.com\n\t- URL: https://www.example.com\n\t\t- URL: https://www.example.com/1\n\t\t- URL: https://www.example.com/2\n\n# User request\n\ntest' ,
249+ '# Selected network request \nRequest: https://www.example.com\n\nRequest headers:\ncontent-type : bar1\n\nResponse headers:\ncontent-type : bar2\nx-forwarded-for : bar3\n\nResponse status: 200 \n\nRequest timing:\nQueued at (timestamp): 0 μs\nStarted at (timestamp): 8.3 min\nQueueing (duration): 8.3 min\nConnection start (stalled) (duration): 800.00 ms\nRequest sent (duration): 100.00 ms\nDuration (duration): 8.3 min\n\nRequest initiator chain:\n- URL: https://www.initiator.com\n\t- URL: https://www.example.com\n\t\t- URL: https://www.example.com/1\n\t\t- URL: https://www.example.com/2\n\n# User request\n\ntest' ,
249250 } ,
250251 {
251252 type : ResponseType . ANSWER ,
@@ -260,11 +261,11 @@ describeWithMockConnection('DrJonesNetworkAgent', () => {
260261 text : `# Selected network request \nRequest: https://www.example.com
261262
262263Request headers:
263- foo1 : bar1
264+ content-type : bar1
264265
265266Response headers:
266- foo2 : bar2
267- foo3 : bar3
267+ content-type : bar2
268+ x-forwarded-for : bar3
268269
269270Response status: 200 \n
270271Request timing:
@@ -292,4 +293,16 @@ test`,
292293 ] ) ;
293294 } ) ;
294295 } ) ;
296+
297+ describe ( 'allowHeader' , ( ) => {
298+ it ( 'allows a header from the list' , ( ) => {
299+ assert . isTrue ( allowHeader ( { name : 'content-type' , value : 'foo' } ) ) ;
300+ } ) ;
301+
302+ it ( 'disallows headers not on the list' , ( ) => {
303+ assert . isFalse ( allowHeader ( { name : 'cookie' , value : 'foo' } ) ) ;
304+ assert . isFalse ( allowHeader ( { name : 'set-cookie' , value : 'foo' } ) ) ;
305+ assert . isFalse ( allowHeader ( { name : 'authorization' , value : 'foo' } ) ) ;
306+ } ) ;
307+ } ) ;
295308} ) ;
0 commit comments