Module: WDA::Session

Included in:
WDA
Defined in:
lib/wda_lib/session.rb

Instance Method Summary collapse

Instance Method Details

#healthcheckObject

Healthcheck



82
83
84
85
# File 'lib/wda_lib/session.rb', line 82

def healthcheck
  response = get(@base_url + '/healthcheck')
  update_status(response)
end

#launch_app(app_name_or_id) ⇒ self

Post desiredCapabilities to wda server to create a session This is not realy needed since we can find and click app icon to start app

Returns:

  • (self)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/wda_lib/session.rb', line 39

def launch_app(app_name_or_id)
  p "Launching app #{app_name_or_id}"
  fail 'Either app name or bundle id should be given for launch app' if app_name_or_id.nil?
  if app_name_or_id.include?('.')   # Given value is app's bundle id
    @bundle_id = app_name_or_id
    @session_id = nil      # Prepare to create new session 
    @session_valid = false # Prepare to create new session 
    post(@base_url + '/session', { desiredCapabilities: { bundleId: app_name_or_id }})
    ## Temporarily disabled
    # capabilities
    # @driver = Selenium::WebDriver::Driver.for(:remote, :url => @base_url,  :desired_capabilities => @caps[:desiredCapabilities])
    status
  else 
    app_name = app_name_or_id
    find_app(app_name).click
  end
  self
end

#quit(session_id = nil) ⇒ Object

Exit current app by delete session with given session_id

Returns:

  • delete session response [Json]



70
71
72
73
74
# File 'lib/wda_lib/session.rb', line 70

def quit(session_id = nil)
  (session_id.nil?)? sessionId = @session_id : sessionId = session_id
  @base_url + '/session/' + sessionId
  delete(@base_url + '/session/' + sessionId)
end

#restart(app_name_or_id = nil) ⇒ self

recreate a session

Returns:

  • (self)


60
61
62
63
64
65
# File 'lib/wda_lib/session.rb', line 60

def restart(app_name_or_id = nil)
  quit
  sleep 0.5
  launch_app(app_name_or_id ||= @bundle_id )
  sleep 0.5
end

#sessionSession

Get current valid session

Returns:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/wda_lib/session.rb', line 15

def session
  response = get(@url)
  if response['status'] != 0
    if response['status'] == 10
      response['value']
      restart_session
      response = get(@url)
    elsif response['status'] == 1 || response['status'] == 6
      @session_id = response['sessionId']
      @url = @base_url + "/session/#{@session_id}"
      response = get(@url)
    end
  else
    @session_id = response['sessionId']
    @caps[:desiredCapabilities][:session_id] = @session_id
    @caps[:desiredCapabilities][:session_valid] = true
    @url = @base_url + "/session/#{@session_id}"
  end
  response
end

#statusObj

Get current status

Returns:

  • (Obj)


6
7
8
9
10
11
# File 'lib/wda_lib/session.rb', line 6

def status
  @status = get(@base_url + '/status')
  @platform_name = @status['value']['os']['name']
  @platform_version = @status['value']['os']['version']
  update_status(@status)
end

#xObject

Same as quit, but delete default @session_id



77
78
79
# File 'lib/wda_lib/session.rb', line 77

def x
  quit
end