@@ -53,3 +53,44 @@ test('skip autoconsent setup when `adblock` is false', async t => {
5353
5454 t . false ( calls . includes ( 'autoconsentSendMessage' ) )
5555} )
56+
57+ test ( '`disableAdblock` removes blocker listeners and keeps request interception enabled' , async t => {
58+ const browserless = await getBrowserContext ( t )
59+ const url = await getUrl ( t )
60+
61+ const run = browserless . withPage ( ( page , goto ) => async ( ) => {
62+ const interceptionCalls = [ ]
63+ const originalSetRequestInterception = page . setRequestInterception . bind ( page )
64+ page . setRequestInterception = enabled => {
65+ interceptionCalls . push ( enabled )
66+ return originalSetRequestInterception ( enabled )
67+ }
68+
69+ await goto ( page , { url, adblock : true } )
70+
71+ const listenersBeforeDisable = {
72+ request : page . listenerCount ( 'request' ) ,
73+ frameattached : page . listenerCount ( 'frameattached' ) ,
74+ domcontentloaded : page . listenerCount ( 'domcontentloaded' )
75+ }
76+
77+ await page . disableAdblock ( )
78+ const listenersAfterDisable = {
79+ request : page . listenerCount ( 'request' ) ,
80+ frameattached : page . listenerCount ( 'frameattached' ) ,
81+ domcontentloaded : page . listenerCount ( 'domcontentloaded' )
82+ }
83+ await page . disableAdblock ( )
84+
85+ return { interceptionCalls, listenersBeforeDisable, listenersAfterDisable }
86+ } )
87+
88+ const { interceptionCalls, listenersBeforeDisable, listenersAfterDisable } = await run ( )
89+
90+ t . true ( interceptionCalls . includes ( true ) )
91+ t . false ( interceptionCalls . includes ( false ) )
92+
93+ t . true ( listenersAfterDisable . request < listenersBeforeDisable . request )
94+ t . true ( listenersAfterDisable . frameattached <= listenersBeforeDisable . frameattached )
95+ t . true ( listenersAfterDisable . domcontentloaded <= listenersBeforeDisable . domcontentloaded )
96+ } )
0 commit comments