Skip to content

Commit 305135e

Browse files
committed
Finish implementation
1 parent 314b458 commit 305135e

File tree

4 files changed

+20
-15
lines changed

4 files changed

+20
-15
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def cancel_auth(request_id)
7777
end
7878

7979
def continue_with_request(**args)
80-
response = @bidi.send_cmd(
80+
@bidi.send_cmd(
8181
'network.continueRequest',
8282
request: args[:request_id],
8383
'body' => args[:body],
@@ -86,7 +86,6 @@ def continue_with_request(**args)
8686
'method' => args[:method],
8787
'url' => args[:url]
8888
)
89-
response.inspect
9089
end
9190

9291
def continue_with_response(**args)

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,17 @@
1717
# specific language governing permissions and limitations
1818
# under the License.
1919

20+
require 'forwardable'
21+
2022
module Selenium
2123
module WebDriver
2224
class Network
25+
extend Forwardable
26+
2327
attr_reader :callbacks, :network
2428

29+
def_delegators :network, :continue_with_auth, :continue_with_request, :continue_with_response
30+
2531
def initialize(bridge)
2632
@network = BiDi::Network.new(bridge.bidi)
2733
@callbacks = {}
@@ -40,37 +46,35 @@ def clear_handlers
4046
def add_authentication_handler(username, password)
4147
intercept = network.add_intercept(phases: [Selenium::WebDriver::BiDi::Network::PHASES[:auth_required]])
4248
auth_id = network.on(:auth_required) do |event|
43-
request_id = event['request']['request']
49+
request_id = fetch_id(event)
4450
network.continue_with_auth(request_id, username, password)
4551
end
4652

4753
callbacks[auth_id] = intercept
4854
auth_id
4955
end
5056

51-
def add_request_handler
57+
def add_request_handler(&)
5258
intercept = network.add_intercept(phases: [BiDi::Network::PHASES[:before_request]])
53-
request_id = network.on(:before_request) do |event|
54-
request_id = event['request']['request']
55-
network.continue_with_request(request_id: request_id)
56-
end
59+
request_id = network.on(:before_request, &)
5760

5861
callbacks[request_id] = intercept
5962

6063
request_id
6164
end
6265

63-
def add_response_handler
66+
def add_response_handler(&)
6467
intercept = network.add_intercept(phases: [BiDi::Network::PHASES[:response_started]])
65-
response_id = network.on(:response_started) do |event|
66-
request_id = event['request']['request']
67-
network.continue_with_response(request_id: request_id)
68-
end
68+
response_id = network.on(:response_started, &)
6969

7070
callbacks[response_id] = intercept
7171

7272
response_id
7373
end
74+
75+
def fetch_id(event)
76+
event['request']['request']
77+
end
7478
end # Network
7579
end # WebDriver
7680
end # Selenium

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ module Selenium
1919

2020
def clear_handlers: -> Hash[nil, nil]
2121

22+
def fetch_id: -> String
23+
2224
def remove_handler: (Integer id) -> nil
2325
end
2426
end

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ module WebDriver
5858
it 'adds a request handler' do
5959
reset_driver!(web_socket_url: true) do |driver|
6060
network = described_class.new(driver)
61-
network.add_request_handler
61+
network.add_request_handler { |event| network.continue_with_request(request_id: network.fetch_id(event)) }
6262
driver.navigate.to url_for('formPage.html')
6363
expect(driver.find_element(name: 'login')).to be_displayed
6464
expect(network.callbacks.count).to be 1
@@ -87,7 +87,7 @@ module WebDriver
8787
it 'adds a response handler' do
8888
reset_driver!(web_socket_url: true) do |driver|
8989
network = described_class.new(driver)
90-
network.add_response_handler
90+
network.add_response_handler { |event| network.continue_with_response(request_id: network.fetch_id(event)) }
9191
driver.navigate.to url_for('formPage.html')
9292
expect(driver.find_element(name: 'login')).to be_displayed
9393
expect(network.callbacks.count).to be 1

0 commit comments

Comments
 (0)