Skip to content

Commit e046958

Browse files
authored
Merge pull request #136 from julioolvr/canceled-request-handling
Canceled request handling
2 parents 2bf0a4e + 84d6747 commit e046958

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

lib/ferrum/network.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,14 @@ def subscribe
157157
end
158158
end
159159

160+
@page.on("Network.loadingFailed") do |params|
161+
exchange = select(params["requestId"]).last
162+
163+
if exchange && params['canceled']
164+
exchange.error = :canceled
165+
end
166+
end
167+
160168
@page.on("Log.entryAdded") do |params|
161169
entry = params["entry"] || {}
162170
if entry["source"] == "network" && entry["level"] == "error"

spec/network_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ module Ferrum
6767
expect(browser.network.idle?).to be true
6868
end
6969

70+
it "captures canceled requests" do
71+
browser.go_to("/ferrum/with_ajax_connection_canceled")
72+
expect(browser.at_xpath("//h1[text() = 'Canceled']")).to be
73+
expect(browser.network.idle?).to be true
74+
end
75+
7076
it "keeps a running list between multiple web page views" do
7177
browser.go_to("/ferrum/with_js")
7278
expect(traffic.length).to eq(4)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
5+
<title>ferrum with_js</title>
6+
<script src="/ferrum/jquery.min.js" type="text/javascript" charset="utf-8"></script>
7+
</head>
8+
<body>
9+
<h1>Here</h1>
10+
<script>
11+
$.ajax("http://localhost:12345/slow_response").abort();
12+
$("h1").text("Canceled");
13+
</script>
14+
</body>
15+
</html>

0 commit comments

Comments
 (0)