Class: Screen

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

Instance Method Summary collapse

Constructor Details

#initialize(screen_data = nil) ⇒ Screen

Returns a new instance of Screen.



3
4
5
6
7
8
9
# File 'lib/screen.rb', line 3

def initialize(screen_data = nil)
  if screen_data.nil?
    @screen_data = MultiJson.load(Frank::Cucumber::Gateway.new.send_get('dump'))
  else
    @screen_data = screen_data
  end
end

Instance Method Details

#accessible_buttonsObject



87
88
89
90
91
92
93
94
95
# File 'lib/screen.rb', line 87

def accessible_buttons
  buttons = []
  all_views.each do |view|
    if get_class(view).include? 'Button'
      buttons << get_label(view) unless get_label(view).nil?
    end
  end
  buttons
end

#accessible_labelsObject



117
118
119
120
121
122
123
124
125
# File 'lib/screen.rb', line 117

def accessible_labels
  labels = []
  all_views.each do |view|
    if get_class(view).include? 'Label'
      labels << get_label(view) unless get_label(view).nil?
    end
  end
  labels
end

#accessible_tablesObject



107
108
109
110
111
112
113
114
115
# File 'lib/screen.rb', line 107

def accessible_tables
  tables = []
  all_views.each do |view|
    if get_class(view).include? 'TableView'
      tables << get_label(view) unless get_label(view).nil?
    end
  end
  tables
end

#accessible_text_fieldsObject



97
98
99
100
101
102
103
104
105
# File 'lib/screen.rb', line 97

def accessible_text_fields
  texts = []
  all_views.each do |view|
    if get_class(view).include? 'UITextField'
      texts << get_label(view) unless get_label(view).nil?
    end
  end
  texts
end

#add_views(json) ⇒ Object



16
17
18
19
20
21
# File 'lib/screen.rb', line 16

def add_views(json)
  json["subviews"].each do |view|
    add_view view
    add_views(view) unless view["subviews"].count == 0
  end
end

#all_viewsObject



11
12
13
14
# File 'lib/screen.rb', line 11

def all_views
  add_views(@screen_data)
  @views
end

#get_class(view_data) ⇒ Object



79
80
81
# File 'lib/screen.rb', line 79

def get_class(view_data)
  view_data["class"]
end

#get_label(view_data) ⇒ Object



83
84
85
# File 'lib/screen.rb', line 83

def get_label(view_data)
  view_data["accessibilityLabel"]
end

#view_accessibility_height(label) ⇒ Object



71
72
73
# File 'lib/screen.rb', line 71

def view_accessibility_height(label)
  view_by_label(label)["accessibilityFrame"]["size"]["height"]
end

#view_accessibility_width(label) ⇒ Object



75
76
77
# File 'lib/screen.rb', line 75

def view_accessibility_width(label)
  view_by_label(label)["accessibilityFrame"]["size"]["width"]
end

#view_by_id(id) ⇒ Object



23
24
25
26
27
# File 'lib/screen.rb', line 23

def view_by_id(id)
  @found_view = nil
  view_by_id_with_data(@screen_data, id)
  @found_view
end

#view_by_label(label) ⇒ Object



29
30
31
32
33
# File 'lib/screen.rb', line 29

def view_by_label(label)
  @found_view = nil
  view_by_label_with_data(@screen_data, label)
  @found_view
end

#view_class(label) ⇒ Object



35
36
37
# File 'lib/screen.rb', line 35

def view_class(label)
  view_by_label(label)["class"]
end

#view_frame(label) ⇒ Object



47
48
49
# File 'lib/screen.rb', line 47

def view_frame(label)
  view_by_label(label)["frame"]
end

#view_frame_height(label) ⇒ Object



43
44
45
# File 'lib/screen.rb', line 43

def view_frame_height(label)
  view_frame(label)["size"]["height"]
end

#view_frame_width(label) ⇒ Object



39
40
41
# File 'lib/screen.rb', line 39

def view_frame_width(label)
  view_frame(label)["size"]["width"]
end

#view_is_visible(label) ⇒ Object



51
52
53
# File 'lib/screen.rb', line 51

def view_is_visible(label)
  view_by_label(label)["isHidden"] == 0
end

#view_origin(label) ⇒ Object



63
64
65
# File 'lib/screen.rb', line 63

def view_origin(label)
  view_by_label(label)
end

#view_tag(label) ⇒ Object



67
68
69
# File 'lib/screen.rb', line 67

def view_tag(label)
  view_by_label(label)["tag"]
end

#view_x(label) ⇒ Object



55
56
57
# File 'lib/screen.rb', line 55

def view_x(label)
  view_by_label(label)["accessibilityFrame"]["origin"]["x"]
end

#view_y(label) ⇒ Object



59
60
61
# File 'lib/screen.rb', line 59

def view_y(label)
  view_by_label(label)["accessibilityFrame"]["origin"]["y"]
end