Class: CapybaraSetup

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCapybaraSetup



16
17
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
# File 'lib/frameworks/capybara.rb', line 16

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

  validate_env_vars(capybara_opts.merge(selenium_remote_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
  selenium_remote_opts[:browser_name] = selenium_remote_opts[:browser_name].intern if selenium_remote_opts[:browser_name]#update :browser value to be a symbol, required for Selenium

  Capybara.run_server = false #Disable rack server

  [capybara_opts, selenium_remote_opts, custom_opts].each do |opts| #delete nil options and environment (which is only used for validation)
    opts.delete_if {|k,v| (v.nil? or k == :environment)}
  end

  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, selenium_remote_opts, custom_opts)
  end


  Capybara.default_driver = @driver
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



14
15
16
# File 'lib/frameworks/capybara.rb', line 14

def driver
  @driver
end