1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00
teamcapybara--capybara/lib/capybara/dsl.rb

58 lines
1.2 KiB
Ruby
Raw Normal View History

2016-03-07 19:52:19 -05:00
# frozen_string_literal: true
2018-01-08 15:23:54 -05:00
require 'capybara'
2009-11-16 16:02:16 -05:00
module Capybara
module DSL
def self.included(base)
2018-07-10 17:18:39 -04:00
warn 'including Capybara::DSL in the global scope is not recommended!' if base == Object
super
end
def self.extended(base)
2018-07-10 17:18:39 -04:00
warn 'extending the main object with Capybara::DSL is not recommended!' if base == TOPLEVEL_BINDING.eval('self')
super
end
2009-11-12 12:09:29 -05:00
##
#
2011-12-29 12:45:58 -05:00
# Shortcut to working in a different session.
#
def using_session(name_or_session, &block)
Capybara.using_session(name_or_session, &block)
end
2011-12-29 12:45:58 -05:00
# Shortcut to using a different wait time.
#
def using_wait_time(seconds, &block)
page.using_wait_time(seconds, &block)
end
##
#
2011-12-29 12:45:58 -05:00
# Shortcut to accessing the current session.
#
# class MyClass
# include Capybara::DSL
#
# def has_header?
# page.has_css?('h1')
# end
# end
#
# @return [Capybara::Session] The current session object
#
def page
Capybara.current_session
end
2009-11-12 12:09:29 -05:00
Session::DSL_METHODS.each do |method|
define_method method do |*args, &block|
page.send method, *args, &block
end
end
2009-11-12 11:51:31 -05:00
end
extend(Capybara::DSL)
2009-11-12 11:51:31 -05:00
end