Skip to content

Commit a2967cd

Browse files
committed
Implement wait_for_network_idle
1 parent 4ae53f7 commit a2967cd

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

lib/capybara/cuprite/driver.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,10 @@ def clear_cookies
285285
browser.cookies.clear
286286
end
287287

288+
def wait_for_network_idle(**options)
289+
browser.network.wait_for_idle(**options)
290+
end
291+
288292
def clear_memory_cache
289293
browser.network.clear(:cache)
290294
end

spec/integration/driver_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,5 +1567,16 @@ def create_screenshot(file, *args)
15671567
expect(@session.driver.frame_url).to end_with("/cuprite/frames")
15681568
expect(@session.driver.current_url).to end_with("/cuprite/frames")
15691569
end
1570+
1571+
it "waits for network idle" do
1572+
@session.visit "/cuprite/show_cookies"
1573+
expect(@session).not_to have_content("test_cookie")
1574+
1575+
@session.click_button "Set cookie slow"
1576+
@session.driver.wait_for_network_idle
1577+
@session.refresh
1578+
1579+
expect(@session).to have_content("test_cookie")
1580+
end
15701581
end
15711582
end

spec/support/test_app.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ def authorized?(login, password)
5858
request.cookies["capybara"]
5959
end
6060

61+
get "/cuprite/show_cookies" do
62+
render_view "show_cookies"
63+
end
64+
65+
get "/cuprite/set_cookie_slow" do
66+
sleep 1
67+
cookie_value = "test_cookie"
68+
response.set_cookie("stealth", cookie_value)
69+
"Cookie set to #{cookie_value}"
70+
end
71+
6172
get "/cuprite/slow" do
6273
sleep 0.2
6374
"slow page"

spec/support/views/show_cookies.erb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
5+
<script src="/cuprite/jquery.min.js" type="text/javascript" charset="utf-8"></script>
6+
<script src="/cuprite/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
7+
</head>
8+
<body>
9+
<%= request.cookies["stealth"] %>
10+
<button type="button" id="setCookie">Set cookie slow</button>
11+
<script>
12+
$("#setCookie").on("click", function(){
13+
$.ajax("/cuprite/set_cookie_slow");
14+
})
15+
</script>
16+
</body>
17+
</html>

0 commit comments

Comments
 (0)