12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # Copyright (C) 2012-2024 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
|