Driver reset! should close all but 1 window
This commit is contained in:
parent
5c8b0983b3
commit
2041b2cbfc
|
@ -108,6 +108,8 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
|
||||||
# Use instance variable directly so we avoid starting the browser just to reset the session
|
# Use instance variable directly so we avoid starting the browser just to reset the session
|
||||||
return unless @browser
|
return unless @browser
|
||||||
|
|
||||||
|
window_handles.reject { |handle| handle == current_window_handle }.each { |win| close_window(win) }
|
||||||
|
|
||||||
navigated = false
|
navigated = false
|
||||||
start_time = Capybara::Helpers.monotonic_time
|
start_time = Capybara::Helpers.monotonic_time
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -63,6 +63,24 @@ Capybara::SpecHelper.spec '#reset_session!' do
|
||||||
expect(@session.current_path).to eq("/")
|
expect(@session.current_path).to eq("/")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "closes extra windows", requires: [:windows] do
|
||||||
|
@session.visit('/with_html')
|
||||||
|
@session.open_new_window
|
||||||
|
@session.open_new_window
|
||||||
|
expect(@session.windows.size).to eq 3
|
||||||
|
@session.reset_session!
|
||||||
|
expect(@session.windows.size).to eq 1
|
||||||
|
end
|
||||||
|
|
||||||
|
it "closes extra windows when not on the first window", requires: [:windows] do
|
||||||
|
@session.visit('/with_html')
|
||||||
|
@session.switch_to_window(@session.open_new_window)
|
||||||
|
@session.open_new_window
|
||||||
|
expect(@session.windows.size).to eq 3
|
||||||
|
@session.reset_session!
|
||||||
|
expect(@session.windows.size).to eq 1
|
||||||
|
end
|
||||||
|
|
||||||
context "When reuse_server == false" do
|
context "When reuse_server == false" do
|
||||||
before do
|
before do
|
||||||
@reuse_server = Capybara.reuse_server
|
@reuse_server = Capybara.reuse_server
|
||||||
|
|
Loading…
Reference in New Issue