trabajo-afectivo/spec/support/capybara/window_actions.rb
2022-01-01 14:38:12 +01:00

52 lines
1.3 KiB
Ruby

# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
module WindowActions
delegate :app_host, to: Capybara
# This is a convenient wrapper method around #switch_to_window
# which switch to an given window index if exists.
#
# @example
# switch_to_window_index(2)
# => switch to window index 2
#
def switch_to_window_index(index)
return false if !windows[index - 1]
switch_to_window(windows[index - 1])
end
# This is a convenient wrapper method around #close window
# which will close the given window index if it exists.
# If only one window is still open afterwards it will switch to it.
#
# @example
# close_window_index(2)
# => close window with index 2
#
def close_window_index(index)
return false if !windows[index - 1]
windows[index - 1].close
switch_to_window(windows[0]) if windows.length == 1
end
# This is a convenient wrapper method around #open_new_window
# which open a new window and switched directly to it
#
# @example
# open_window_and_switch
# => open new window and switch to this window
#
def open_window_and_switch
window = open_new_window
switch_to_window(window)
end
end
RSpec.configure do |config|
config.include WindowActions, type: :system
end