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