Skip to content

Commit 8ec9975

Browse files
committed
add delete and clear request handlers
1 parent 6b5ceb2 commit 8ec9975

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

rb/lib/selenium/webdriver/bidi/network.rb

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Network
2626
response_started: 'network.responseStarted',
2727
response_completed: 'network.responseCompleted',
2828
auth_required: 'network.authRequired',
29-
FETCH_ERROR: 'network.fetchError'
29+
fetch_error: 'network.fetchError'
3030
}.freeze
3131

3232
PHASES = {
@@ -76,11 +76,7 @@ def on(event, &)
7676
event = EVENTS[event] if event.is_a?(Symbol)
7777
@bidi.add_callback(event, &)
7878
end
79-
end
80-
81-
# Network
82-
end
83-
84-
# BiDi
79+
end # Network
80+
end # BiDi
8581
end # WebDriver
8682
end # Selenium

rb/lib/selenium/webdriver/common/network.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ def add_request_handler
6060

6161
request_id
6262
end
63+
64+
def remove_request_handler(id)
65+
intercept = @request_callbacks[id]
66+
@network.remove_intercept(intercept['intercept'])
67+
@request_callbacks.delete(id)
68+
end
69+
70+
def clear_request_handlers
71+
@request_callbacks.each_key { |id| remove_request_handler(id) }
72+
end
6373
end # Network
6474
end # WebDriver
6575
end # Selenium

rb/sig/lib/selenium/webdriver/common/network.rbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ module Selenium
1515

1616
def clear_authentication_handlers: -> Hash[nil, nil]
1717

18+
def clear_request_handlers: -> untyped
19+
1820
def remove_authentication_handler: (String id) -> nil
21+
22+
def remove_request_handler: -> untyped
1923
end
2024
end
2125
end

rb/spec/integration/selenium/webdriver/network_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,25 @@ module WebDriver
6161
expect(network.request_callbacks.count).to be 1
6262
end
6363
end
64+
65+
it 'removes a request handler' do
66+
reset_driver!(web_socket_url: true) do |driver|
67+
network = described_class.new(driver)
68+
id = network.add_request_handler
69+
network.remove_request_handler(id)
70+
expect(network.request_callbacks.count).to be 0
71+
end
72+
end
73+
74+
it 'clears all request handlers' do
75+
reset_driver!(web_socket_url: true) do |driver|
76+
network = described_class.new(driver)
77+
network.add_request_handler
78+
network.add_request_handler
79+
network.clear_request_handlers
80+
expect(network.request_callbacks.count).to be 0
81+
end
82+
end
6483
end
6584
end
6685
end

0 commit comments

Comments
 (0)