rewrite #maximize and #resize_to specs to not use #size

This commit is contained in:
Thomas Walpole 2015-05-22 13:18:08 -07:00
parent 6b89b9be30
commit 5bb3ab86c5
1 changed files with 22 additions and 4 deletions

View File

@ -86,10 +86,14 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
describe '#size' do
it 'should return size of whole window', requires: [:windows, :js] do
skip "Chromedriver returns a size larger than outerWidth, outerHeight???" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_chrome)
expect(@session.current_window.size).to eq @session.evaluate_script("[window.outerWidth, window.outerHeight];")
end
it 'should switch to original window if invoked not for current window' do
skip "Chromedriver returns a size larger than outerWidth, outerHeight???" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_chrome)
@other_window = @session.window_opened_by do
@session.find(:css, '#openWindow').click
end
@ -104,24 +108,32 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
describe '#resize_to' do
it 'should be able to resize window', requires: [:windows, :js] do
width, height = @session.evaluate_script("[window.outerWidth, window.outerHeight];")
@session.current_window.resize_to(width-10, height-10)
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([width-10, height-10])
end
it 'should switch to original window if invoked not for current window' do
it 'should stay on current window if invoked not for current window' do
@other_window = @session.window_opened_by do
@session.find(:css, '#openWindow').click
end
@other_window.resize_to(400, 300)
expect(@session.current_window).to eq(@window)
expect(@other_window.size).to eq([400, 300])
# #size returns values larger than availWidth, availHeight with Chromedriver
# expect(@other_window.size).to eq([400, 300])
@session.within_window(@other_window) do
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight]")).to eq([400,300])
end
end
end
describe '#maximize' do
it 'should be able to maximize window', requires: [:windows, :js] do
skip "This test fails when run with Firefox on Travis - see issue #1493 - skipping for now" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_focus)
screen_width, screen_height = @session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];")
window = @session.current_window
window.resize_to(screen_width-100, screen_height-100)
@ -131,14 +143,20 @@ Capybara::SpecHelper.spec Capybara::Window, requires: [:windows] do
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight];")).to eq([screen_width, screen_height])
end
it 'should switch to original window if invoked not for current window', requires: [:windows, :js] do
it 'should stay on current window if invoked not for current window', requires: [:windows, :js] do
skip "This test fails when run with Firefox on Travis - see issue #1493 - skipping for now" if ENV['TRAVIS'] && @session.respond_to?(:mode) && (@session.mode == :selenium_focus)
@other_window = @session.window_opened_by do
@session.find(:css, '#openWindow').click
end
@other_window.maximize
sleep 0.5 # The timing on maximize is finicky on Travis -- wait a bit for maximize to occur
expect(@session.current_window).to eq(@window)
expect(@other_window.size).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
# #size returns values larger than availWidth, availHeight with Chromedriver
# expect(@other_window.size).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
@session.within_window(@other_window) do
expect(@session.evaluate_script("[window.outerWidth, window.outerHeight]")).to eq(@session.evaluate_script("[window.screen.availWidth, window.screen.availHeight];"))
end
end
end
end