Module: WDA::Session

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

Instance Method Summary collapse

Instance Method Details

#healthcheckObject

Healthcheck



98
99
100
101
# File 'lib/wda_lib/session.rb', line 98

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

#launch_app(app_name_or_id) ⇒ self

Post desired_capabilities 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)


54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/wda_lib/session.rb', line 54

def launch_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[:desired_capabilities])
  else 
    app_name = app_name_or_id
    find_app(app_name).click
  end
  status
  self
end

#quit(session_id = nil) ⇒ Object

Exit current app by delete session with given session_id

Parameters:

  • session_id (String) (defaults to: nil)

Returns:

  • delete session response [Json]



85
86
87
88
89
90
# File 'lib/wda_lib/session.rb', line 85

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

#restart(app_name_or_id = nil) ⇒ self

recreate a session

Returns:

  • (self)


74
75
76
77
78
79
80
# File 'lib/wda_lib/session.rb', line 74

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

#sessionSession

Get current valid session

Returns:



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/wda_lib/session.rb', line 30

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[:desired_capabilities][:session_id] = @session_id
    @caps[:desired_capabilities][:session_valid] = true
    @url = @base_url + "/session/#{@session_id}"
  end
  response
end

#statusObj

Get current status

Returns:

  • (Obj)


10
11
12
13
14
15
# File 'lib/wda_lib/session.rb', line 10

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

#update_status(status_response) ⇒ object

Update current running sessionId to @session_id

Parameters:

  • status_response (object)

    : http GET session response body

Returns:

  • (object)


20
21
22
23
24
25
26
# File 'lib/wda_lib/session.rb', line 20

def update_status(status_response)
  @session_valid = true
  @session_id = status_response['sessionId']
  @url = @base_url + "/session/#{@session_id}"
  capabilities
  status_response
end

#xObject

Same as quit, but delete default @session_id



93
94
95
# File 'lib/wda_lib/session.rb', line 93

def x
  quit
end