@@ -263,7 +263,6 @@ public async Task CanSetExtraHTTPHeaders()
263263 {
264264 await browser . CreateBrowserAsync ( ) ;
265265
266- RequestWillBeSentEventArgs requestWillBeSentEventArgs = null ;
267266 using ( var devToolsClient = browser . GetDevToolsClient ( ) )
268267 {
269268 var extraHeaders = new Headers ( ) ;
@@ -273,32 +272,35 @@ public async Task CanSetExtraHTTPHeaders()
273272
274273 await devToolsClient . Network . SetExtraHTTPHeadersAsync ( extraHeaders ) ;
275274
276- devToolsClient . Network . RequestWillBeSent += ( sender , args ) =>
277- {
278- if ( requestWillBeSentEventArgs == null )
275+ var evtTask = Assert . RaisesAsync < RequestWillBeSentEventArgs > (
276+ x => devToolsClient . Network . RequestWillBeSent += x ,
277+ x => devToolsClient . Network . RequestWillBeSent -= x ,
278+ async ( ) =>
279279 {
280- requestWillBeSentEventArgs = args ;
281- }
282- } ;
283-
284- // enable events
285- await devToolsClient . Network . EnableAsync ( ) ;
286-
287- await browser . LoadUrlAsync ( "www.google.com" ) ;
288- }
289-
290- Assert . NotNull ( requestWillBeSentEventArgs ) ;
291- Assert . NotEmpty ( requestWillBeSentEventArgs . RequestId ) ;
292- Assert . NotEqual ( 0 , requestWillBeSentEventArgs . Timestamp ) ;
293- Assert . NotEqual ( 0 , requestWillBeSentEventArgs . WallTime ) ;
294- Assert . NotNull ( requestWillBeSentEventArgs . Request ) ;
295- Assert . True ( requestWillBeSentEventArgs . Request . Headers . TryGetValues ( "TeSt" , out var values ) ) ;
296- Assert . Collection ( values ,
297- v => Assert . Equal ( "0" , v ) ,
298- v => Assert . Equal ( "1" , v ) ,
299- v => Assert . Equal ( " 2 " , v ) ,
300- v => Assert . Equal ( " 2,5 " , v )
301- ) ;
280+ // enable events
281+ await devToolsClient . Network . EnableAsync ( ) ;
282+
283+ await browser . LoadUrlAsync ( "www.google.com" ) ;
284+ } ) ;
285+
286+ var xUnitEvent = await evtTask ;
287+ Assert . NotNull ( xUnitEvent ) ;
288+
289+ var args = xUnitEvent . Arguments ;
290+
291+ Assert . NotNull ( args ) ;
292+ Assert . NotEmpty ( args . RequestId ) ;
293+ Assert . NotEqual ( 0 , args . Timestamp ) ;
294+ Assert . NotEqual ( 0 , args . WallTime ) ;
295+ Assert . NotNull ( args . Request ) ;
296+ Assert . True ( args . Request . Headers . TryGetValues ( "TeSt" , out var values ) ) ;
297+ Assert . Collection ( values ,
298+ v => Assert . Equal ( "0" , v ) ,
299+ v => Assert . Equal ( "1" , v ) ,
300+ v => Assert . Equal ( " 2 " , v ) ,
301+ v => Assert . Equal ( " 2,5 " , v )
302+ ) ;
303+ }
302304 }
303305 }
304306
@@ -388,16 +390,33 @@ public async Task CanRegisterMultipleEventHandlers()
388390 }
389391
390392 [ Fact ]
391- public async Task CanRemoveEventListenerBeforeAddingOne ( )
393+ public void CanRemoveEventListenerBeforeAddingOne ( )
392394 {
393- using ( var browser = new ChromiumWebBrowser ( "about:blank" , automaticallyCreateBrowser : false ) )
395+ using ( var devToolsClient = new DevToolsClient ( null ) )
394396 {
395- await browser . CreateBrowserAsync ( ) ;
397+ devToolsClient . Network . RequestWillBeSent -= ( sender , args ) => { } ;
398+ }
399+ }
396400
397- using ( var devToolsClient = browser . GetDevToolsClient ( ) )
398- {
399- devToolsClient . Network . RequestWillBeSent -= ( sender , args ) => { } ;
400- }
401+ [ Fact ]
402+ public void IsIEventProxyRemovedFromConcurrentDictionary ( )
403+ {
404+ const string eventName = "Browser.downloadProgress" ;
405+ using ( var devToolsClient = new DevToolsClient ( null ) )
406+ {
407+ EventHandler < DownloadProgressEventArgs > eventHandler1 = ( object sender , DownloadProgressEventArgs args ) => { } ;
408+ EventHandler < DownloadProgressEventArgs > eventHandler2 = ( object sender , DownloadProgressEventArgs args ) => { } ;
409+
410+ devToolsClient . AddEventHandler ( eventName , eventHandler1 ) ;
411+ devToolsClient . AddEventHandler ( eventName , eventHandler2 ) ;
412+
413+ var hasHandlers = devToolsClient . RemoveEventHandler ( eventName , eventHandler1 ) ;
414+
415+ Assert . True ( hasHandlers ) ;
416+
417+ hasHandlers = devToolsClient . RemoveEventHandler ( eventName , eventHandler2 ) ;
418+
419+ Assert . False ( hasHandlers ) ;
401420 }
402421 }
403422 }
0 commit comments