Class: CapybaraSetup

Inherits:
Object
  • Object
show all
Defined in:
lib/frameworks/capybara.rb

Constant Summary collapse

ERROR_MSG1 =
'Please ensure following environment variables are set ENVIRONMENT [int|test|stage|live], BROWSER[headless|ie|chrome|firefox] and PROXY_URL'
ERROR_MSG2 =
'Please ensure the following environment variables are set PLATFORM, REMOTE_URL, REMOTE_BROWSER (browser to use on remote machine), PROXY_URL (if required), REMOTE_BROWSER_PROXY (if required) and BROWSER_VERSION (if required)'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCapybaraSetup

Returns a new instance of CapybaraSetup.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/frameworks/capybara.rb', line 18

def initialize

  capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :remote_browser_proxy_url => ENV['REMOTE_BROWSER_PROXY_URL'], :platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['REMOTE_BROWSER_VERSION'], :url => ENV['REMOTE_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'], :javascript_enabled => ENV['CELERITY_JS_ENABLED'], :job_name => ENV['SAUCE_JOB_NAME'], :max_duration => ENV['SAUCE_MAX_DURATION'], :proxy_on => ENV['PROXY_ON']}

  validate_env_vars(capybara_opts) #validate environment variables set using cucumber.yml or passed via command line

  @proxy_host =  capybara_opts[:proxy].gsub(/http:\/\//,'').gsub(/:80/,'') unless capybara_opts[:proxy].nil?
  capybara_opts[:browser] = capybara_opts[:browser].intern #update :browser value to be a symbol, required for Selenium
  capybara_opts[:browser_name] = capybara_opts[:browser_name].intern if capybara_opts[:browser_name]

  Capybara.run_server = false #Disable rack server

  capybara_opts.delete_if {|k,v| v.nil?}

  case capybara_opts[:browser] 
  when :headless then
    @driver = register_celerity_driver(capybara_opts)
  when :mechanize then
    @driver = register_mechanize_driver(capybara_opts)
  else
    @driver = register_selenium_driver(capybara_opts)
  end

  Capybara.default_driver = @driver

  if capybara_opts[:browser] == :mechanize
    Capybara.current_session.driver.agent.set_proxy(@proxy_host, 80) if capybara_opts[:proxy]
    Capybara.current_session.driver.agent.set_ssl_client_certification(ENV['CERT_LOCATION'], ENV['CERT_LOCATION'], ENV['CA_CERT_LOCATION']) if ENV['CERT_LOCATION']
  end
end

Instance Attribute Details

#driverObject

Returns the value of attribute driver.



16
17
18
# File 'lib/frameworks/capybara.rb', line 16

def driver
  @driver
end