lib/howitzer/web/capybara_methods_proxy.rb in howitzer-2.0.2 vs lib/howitzer/web/capybara_methods_proxy.rb in howitzer-2.0.3
- old
+ new
@@ -1,6 +1,8 @@
require 'capybara'
+require 'active_support'
+require 'active_support/core_ext'
# Remove this monkey patch after fixing the bugs in selenium-webdriver / capybara
#:nocov:
class Capybara::Selenium::Driver # rubocop:disable Style/ClassAndModuleChildren
#
@@ -18,22 +20,22 @@
end
private
def within_frame?
- !(@frame_handles.empty? || @frame_handles[browser.window_handle].empty?)
+ !(@frame_handles.blank? || @frame_handles[browser.window_handle].blank?)
end
end
#:nocov:
module Howitzer
module Web
# This module proxies required original capybara methods to recipient
module CapybaraMethodsProxy
PROXIED_CAPYBARA_METHODS = Capybara::Session::SESSION_METHODS + #:nodoc:
Capybara::Session::MODAL_METHODS +
- %i(driver text)
+ %i[driver text]
# Capybara form dsl methods are not compatible with page object pattern and Howitzer gem.
# Instead of including Capybara::DSL module, we proxy most interesting Capybara methods and
# prevent using extra methods which can potentially broke main principles and framework concept
PROXIED_CAPYBARA_METHODS.each do |method|
@@ -42,10 +44,10 @@
# Accepts or declines JS alert box by given flag
# @param flag [Boolean] Determines accept or decline alert box
def click_alert_box(flag)
- if %w(selenium sauce).include? Howitzer.driver
+ if %w[selenium sauce].include? Howitzer.driver
alert = driver.browser.switch_to.alert
flag ? alert.accept : alert.dismiss
else
evaluate_script("window.confirm = function() { return #{flag}; }")
end