class SimpleSauce::Session

Attributes

access_key[W]
data_center[R]
driver[R]
options[R]
url[W]
username[W]

Public Class Methods

new(options = nil) click to toggle source
# File lib/simple_sauce/session.rb, line 11
def initialize(options = nil)
  @options = options || Options.new
  raise unless [Array, Options].include?(@options.class)

  self.data_center = :US_WEST
  @username = ENV['SAUCE_USERNAME']
  @access_key = ENV['SAUCE_ACCESS_KEY']
end

Public Instance Methods

data_center=(data_center) click to toggle source
# File lib/simple_sauce/session.rb, line 29
def data_center=(data_center)
  @data_center = data_center
  @dc_url = case data_center
            when :US_WEST
              'ondemand.saucelabs.com:443/wd/hub'
            when :US_EAST
              'us-east-1.saucelabs.com:443/wd/hub'
            when :EU_VDC
              'ondemand.eu-central-1.saucelabs.com:443/wd/hub'
            else
              msg = "#{data_center} is an invalid data center; specify :US_WEST, :US_EAST or :EU_VDC"
              raise ::ArgumentError, msg
            end
  SauceWhisk.data_center = @data_center
end
start() click to toggle source
# File lib/simple_sauce/session.rb, line 20
def start
  @driver = Selenium::WebDriver.for :remote, url: url, desired_capabilities: options.capabilities
end
stop(result) click to toggle source
# File lib/simple_sauce/session.rb, line 24
def stop(result)
  SauceWhisk::Jobs.change_status(@driver.session_id, result)
  @driver.quit
end
to_selenium() click to toggle source
# File lib/simple_sauce/session.rb, line 54
def to_selenium
  {url: url, desired_capabilities: Array(@options).map(&:as_json).inject(:merge)}
end
url() click to toggle source
# File lib/simple_sauce/session.rb, line 45
def url
  raise ArgumentError, "No user name was set; use `ENV['SAUCE_USERNAME']` or `Session#username=`" unless @username
  unless @access_key
    raise ArgumentError, "No access key was set; use `ENV['SAUCE_ACCESS_KEY']` or `Session#access_key=`"
  end

  @url ||= "https://#{@username}:#{@access_key}@#{@dc_url}"
end