Module: CapybaraSettings

Extended by:
CapybaraSettings
Included in:
CapybaraSettings
Defined in:
lib/howitzer/utils/capybara_settings.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.base_ff_profile_settingsObject



19
20
21
22
23
24
25
26
27
# File 'lib/howitzer/utils/capybara_settings.rb', line 19

def self.base_ff_profile_settings
  profile = Selenium::WebDriver::Firefox::Profile.new
  profile["network.http.phishy-userpass-length"] = 255
  profile["browser.safebrowsing.malware.enabled"] = false
  profile["network.automatic-ntlm-auth.allow-non-fqdn"] = true
  profile["network.ntlm.send-lm-response"] = true
  profile["network.automatic-ntlm-auth.trusted-uris"] = settings.app_host
  profile
end

.define_driverObject

Defines driver based on specified test environment settings



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/howitzer/utils/capybara_settings.rb', line 36

def define_driver
  case settings.driver.to_sym
    when :selenium
      define_selenium_driver
    when :selenium_dev
      define_selenium_dev_driver
    when :webkit
      define_webkit_driver
    when :poltergeist
      define_poltergeist_driver
    when :sauce
      define_sauce_driver
    when :testingbot
      define_testingbot_driver
    else
      log.error "Unknown '#{settings.driver}' driver. Check your settings, it should be one of [selenium, selenium_dev, webkit, sauce, testingbot]"
  end
end

Instance Method Details

#sauce_resource_path(name) ⇒ Object

Returns url of current Sauce Labs job

Parameters:

  • name - Your account name

Returns:

  • string - URL address of last running Sauce Labs job



185
186
187
188
189
# File 'lib/howitzer/utils/capybara_settings.rb', line 185

def sauce_resource_path(name)
  host = "https://#{settings.sl_user}:#{settings.sl_api_key}@saucelabs.com"
  path = "/rest/#{settings.sl_user}/jobs/#{session_id}/results/#{name}"
  "#{host}#{path}"
end

#session_idObject

Returns current session id



230
231
232
# File 'lib/howitzer/utils/capybara_settings.rb', line 230

def session_id
  Capybara.current_session.driver.browser.instance_variable_get(:@bridge).session_id
end

#suite_nameObject

Returns custom name for Sauce Labs job

Returns:

  • string - Return name of current Sauce Labs job



215
216
217
218
219
220
221
222
223
# File 'lib/howitzer/utils/capybara_settings.rb', line 215

def suite_name
  res = if ENV['RAKE_TASK']
    res = ENV['RAKE_TASK'].sub(/(?:r?spec|cucumber):?(.*)/, '\1').upcase
    res.empty? ? 'ALL' : res
  else
    'CUSTOM'
  end
  "#{res} #{settings.sl_browser_name.upcase}"
end

#update_sauce_job_status(json_data = {}) ⇒ Object



200
201
202
203
204
205
# File 'lib/howitzer/utils/capybara_settings.rb', line 200

def update_sauce_job_status(json_data = {})
  host = "http://#{settings.sl_user}:#{settings.sl_api_key}@saucelabs.com"
  path = "/rest/v1/#{settings.sl_user}/jobs/#{session_id}"
  url = "#{host}#{path}"
  RestClient.put url, json_data.to_json, content_type: :json, accept: :json
end