Skip to content

Commit 211fd8a

Browse files
committed
[rb][bidi] fix: made tests compatible with chrome & firefox
1 parent 5e2d93a commit 211fd8a

File tree

1 file changed

+55
-32
lines changed

1 file changed

+55
-32
lines changed

rb/spec/integration/selenium/webdriver/bidi/network_inspector_spec.rb

Lines changed: 55 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -29,65 +29,76 @@ class BiDi
2929

3030
it 'can listen to event before request is sent' do
3131
reset_driver!(web_socket_url: true) do |driver|
32-
before_request_event = nil
32+
before_request_event = []
3333
inspector = described_class.new(driver)
34-
inspector.before_request_sent { |event| before_request_event = event }
34+
inspector.before_request_sent do |event|
35+
before_request_event.push(event) if event.dig('request', 'url').include? 'emptyPage.html'
36+
end
3537

3638
driver.navigate.to url_for(empty_page)
37-
wait.until { !before_request_event.nil? }
39+
wait.until { !before_request_event.empty? }
3840

39-
expect(before_request_event.dig('request', 'method')).to eq 'GET'
40-
expect(before_request_event.dig('request', 'url')).to eq driver.current_url
41+
expect(before_request_event[0].dig('request', 'method')).to eq 'GET'
42+
expect(before_request_event[0].dig('request', 'url')).to eq driver.current_url
4143
end
4244
end
4345

4446
it 'can request cookies' do
4547
reset_driver!(web_socket_url: true) do |driver|
46-
before_request_event = nil
48+
before_request_event = []
4749
inspector = described_class.new(driver)
48-
inspector.before_request_sent { |event| before_request_event = event }
50+
inspector.before_request_sent do |event|
51+
before_request_event.push(event) if event.dig('request', 'url').include? 'emptyText.txt'
52+
end
4953

5054
driver.navigate.to url_for(empty_text)
5155
driver.manage.add_cookie name: 'north',
5256
value: 'biryani'
5357
driver.navigate.refresh
54-
wait.until { !before_request_event.nil? }
58+
wait.until { !before_request_event.empty? }
5559

56-
expect(before_request_event.dig('request', 'method')).to eq 'GET'
57-
expect(before_request_event.dig('request', 'url')).to eq driver.current_url
58-
expect(before_request_event.dig('request', 'cookies', 0, 'name')).to eq 'north'
59-
expect(before_request_event.dig('request', 'cookies', 0, 'value')).to eq 'biryani'
60+
expect(before_request_event[1].dig('request', 'method')).to eq 'GET'
61+
expect(before_request_event[1].dig('request', 'url')).to eq driver.current_url
62+
expect(before_request_event[1].dig('request', 'cookies', 0, 'name')).to eq 'north'
63+
expect(before_request_event[1].dig('request', 'cookies', 0, 'value')).to eq 'biryani'
6064

6165
driver.manage.add_cookie name: 'south',
6266
value: 'dosa'
6367
driver.navigate.refresh
64-
wait.until { !before_request_event.nil? }
65-
expect(before_request_event.dig('request', 'cookies', 1, 'name')).to eq 'south'
66-
expect(before_request_event.dig('request', 'cookies', 1, 'value')).to eq 'dosa'
68+
69+
expect(before_request_event[2].dig('request', 'cookies', 1, 'name')).to eq 'south'
70+
expect(before_request_event[2].dig('request', 'cookies', 1, 'value')).to eq 'dosa'
6771
end
6872
end
6973

7074
it 'can redirect http equiv' do
7175
reset_driver!(web_socket_url: true) do |driver|
7276
before_request_event = []
7377
inspector = described_class.new(driver)
74-
inspector.before_request_sent { |event| before_request_event.push(event) }
78+
inspector.before_request_sent do |event|
79+
if (event.dig('request', 'url').include? 'redirected_http_equiv.html') ||
80+
(event.dig('request', 'url').include? 'redirected.html')
81+
before_request_event.push(event)
82+
end
83+
end
7584

7685
driver.navigate.to url_for(redirected_http_equiv)
7786
wait.until { driver.current_url.include? 'redirected.html' }
7887

7988
expect(before_request_event[0].dig('request', 'method')).to eq 'GET'
8089
expect(before_request_event[0].dig('request', 'url')).to include 'redirected_http_equiv.html'
81-
expect(before_request_event[2].dig('request', 'method')).to eq 'GET'
82-
expect(before_request_event[2].dig('request', 'url')).to include 'redirected.html'
90+
expect(before_request_event[1].dig('request', 'method')).to eq 'GET'
91+
expect(before_request_event[1].dig('request', 'url')).to include 'redirected.html'
8392
end
8493
end
8594

8695
it 'can subscribe to response started' do
8796
reset_driver!(web_socket_url: true) do |driver|
8897
on_response_started = []
8998
inspector = described_class.new(driver)
90-
inspector.response_started { |event| on_response_started.push(event) }
99+
inspector.response_started do |event|
100+
on_response_started.push(event) if event.dig('request', 'url').include? 'emptyText.txt'
101+
end
91102

92103
driver.navigate.to url_for(empty_text)
93104
wait.until { !on_response_started.empty? }
@@ -106,7 +117,12 @@ class BiDi
106117
reset_driver!(web_socket_url: true) do |driver|
107118
on_response_started = []
108119
inspector = described_class.new(driver)
109-
inspector.response_started { |event| on_response_started.push(event) }
120+
inspector.response_started do |event|
121+
if (event.dig('request', 'url').include? 'emptyPage.html') ||
122+
(event.dig('request', 'url').include? 'emptyText.txt')
123+
on_response_started.push(event)
124+
end
125+
end
110126

111127
# Checking mime type for 'html' text
112128
driver.navigate.to url_for(empty_page)
@@ -118,21 +134,23 @@ class BiDi
118134
expect(on_response_started[0].dig('response', 'mimeType')).to include 'text/html'
119135

120136
# Checking mime type for 'plain' text
121-
on_response_started = []
122137
driver.navigate.to url_for(empty_text)
123138
wait.until { !on_response_started.empty? }
124-
expect(on_response_started[0].dig('request', 'method')).to eq 'GET'
125-
expect(on_response_started[0].dig('request', 'url')).to eq driver.current_url
126-
expect(on_response_started[0].dig('response', 'url')).to eq driver.current_url
127-
expect(on_response_started[0].dig('response', 'mimeType')).to include 'text/plain'
139+
140+
expect(on_response_started[1].dig('request', 'method')).to eq 'GET'
141+
expect(on_response_started[1].dig('request', 'url')).to eq driver.current_url
142+
expect(on_response_started[1].dig('response', 'url')).to eq driver.current_url
143+
expect(on_response_started[1].dig('response', 'mimeType')).to include 'text/plain'
128144
end
129145
end
130146

131147
it 'can subscribe to response completed' do
132148
reset_driver!(web_socket_url: true) do |driver|
133149
on_response_completed = []
134150
inspector = described_class.new(driver)
135-
inspector.response_completed { |event| on_response_completed.push(event) }
151+
inspector.response_completed do |event|
152+
on_response_completed.push(event) if event.dig('request', 'url').include? 'emptyPage.html'
153+
end
136154

137155
driver.navigate.to url_for(empty_page)
138156
wait.until { !on_response_completed.empty? }
@@ -152,7 +170,12 @@ class BiDi
152170
reset_driver!(web_socket_url: true) do |driver|
153171
on_response_completed = []
154172
inspector = described_class.new(driver)
155-
inspector.response_completed { |event| on_response_completed.push(event) }
173+
inspector.response_completed do |event|
174+
if (event.dig('request', 'url').include? 'emptyPage.html') ||
175+
(event.dig('request', 'url').include? 'emptyText.txt')
176+
on_response_completed.push(event)
177+
end
178+
end
156179

157180
# Checking mime type for 'html' text
158181
driver.navigate.to url_for(empty_page)
@@ -164,13 +187,13 @@ class BiDi
164187
expect(on_response_completed[0].dig('response', 'mimeType')).to include 'text/html'
165188

166189
# Checking mime type for 'plain' text
167-
on_response_completed = []
168190
driver.navigate.to url_for(empty_text)
169191
wait.until { !on_response_completed.empty? }
170-
expect(on_response_completed[0].dig('request', 'method')).to eq 'GET'
171-
expect(on_response_completed[0].dig('request', 'url')).to eq driver.current_url
172-
expect(on_response_completed[0].dig('response', 'url')).to eq driver.current_url
173-
expect(on_response_completed[0].dig('response', 'mimeType')).to include 'text/plain'
192+
193+
expect(on_response_completed[1].dig('request', 'method')).to eq 'GET'
194+
expect(on_response_completed[1].dig('request', 'url')).to eq driver.current_url
195+
expect(on_response_completed[1].dig('response', 'url')).to eq driver.current_url
196+
expect(on_response_completed[1].dig('response', 'mimeType')).to include 'text/plain'
174197
end
175198
end
176199
end

0 commit comments

Comments
 (0)