Testing Browser Window Management Implementation in teamcapybara/capybara
This test suite validates Capybara’s window management functionality, specifically focusing on opening and managing new browser windows during test execution. The specs ensure proper window creation, switching, and content manipulation capabilities.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
teamcapybara/capybara
lib/capybara/spec/session/window/open_new_window_spec.rb
# frozen_string_literal: true
Capybara::SpecHelper.spec '#open_new_window', requires: [:windows] do
before do
@window = @session.current_window
@session.visit('/with_windows')
end
after do
(@session.windows - [@window]).each do |w|
@session.switch_to_window w
w.close
end
@session.switch_to_window(@window)
end
it 'should open new window with blank url and title' do
window = @session.open_new_window
@session.switch_to_window(window)
expect(@session.title).to satisfy('be a blank title') { |title| ['', 'about:blank'].include? title }
expect(@session.current_url).to eq('about:blank')
end
it 'should open window with changeable content' do
window = @session.open_new_window
@session.within_window window do
@session.visit '/with_html'
expect(@session).to have_css('#first')
end
end
end