53 lines
1.3 KiB
Ruby
53 lines
1.3 KiB
Ruby
|
# Copyright (C) 2012-2021 Zammad Foundation, http://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
|