testcentricity 2.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +93 -0
  8. data/LICENSE.txt +28 -0
  9. data/README.md +1634 -0
  10. data/Rakefile +1 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/devices/devices.yml +344 -0
  14. data/lib/testcentricity.rb +144 -0
  15. data/lib/testcentricity/app_core/appium_connect_helper.rb +154 -0
  16. data/lib/testcentricity/app_core/appium_server.rb +69 -0
  17. data/lib/testcentricity/app_core/screen_objects_helper.rb +180 -0
  18. data/lib/testcentricity/app_core/screen_sections_helper.rb +332 -0
  19. data/lib/testcentricity/app_elements/app_element_helper.rb +293 -0
  20. data/lib/testcentricity/app_elements/button.rb +8 -0
  21. data/lib/testcentricity/app_elements/checkbox.rb +20 -0
  22. data/lib/testcentricity/app_elements/label.rb +8 -0
  23. data/lib/testcentricity/app_elements/list.rb +25 -0
  24. data/lib/testcentricity/app_elements/switch.rb +20 -0
  25. data/lib/testcentricity/app_elements/textfield.rb +12 -0
  26. data/lib/testcentricity/browser_helper.rb +174 -0
  27. data/lib/testcentricity/data_objects/data_objects_helper.rb +78 -0
  28. data/lib/testcentricity/data_objects/environment.rb +281 -0
  29. data/lib/testcentricity/data_objects/excel_helper.rb +242 -0
  30. data/lib/testcentricity/exception_queue_helper.rb +51 -0
  31. data/lib/testcentricity/utility_helpers.rb +28 -0
  32. data/lib/testcentricity/version.rb +3 -0
  33. data/lib/testcentricity/web_core/drag_drop_helper.rb +15 -0
  34. data/lib/testcentricity/web_core/page_objects_helper.rb +669 -0
  35. data/lib/testcentricity/web_core/page_sections_helper.rb +866 -0
  36. data/lib/testcentricity/web_core/webdriver_helper.rb +579 -0
  37. data/lib/testcentricity/web_elements/button.rb +8 -0
  38. data/lib/testcentricity/web_elements/cell_button.rb +8 -0
  39. data/lib/testcentricity/web_elements/cell_checkbox.rb +38 -0
  40. data/lib/testcentricity/web_elements/cell_element.rb +69 -0
  41. data/lib/testcentricity/web_elements/cell_image.rb +8 -0
  42. data/lib/testcentricity/web_elements/cell_radio.rb +31 -0
  43. data/lib/testcentricity/web_elements/checkbox.rb +100 -0
  44. data/lib/testcentricity/web_elements/file_field.rb +45 -0
  45. data/lib/testcentricity/web_elements/image.rb +34 -0
  46. data/lib/testcentricity/web_elements/label.rb +8 -0
  47. data/lib/testcentricity/web_elements/link.rb +8 -0
  48. data/lib/testcentricity/web_elements/list.rb +73 -0
  49. data/lib/testcentricity/web_elements/list_button.rb +8 -0
  50. data/lib/testcentricity/web_elements/list_checkbox.rb +38 -0
  51. data/lib/testcentricity/web_elements/list_element.rb +61 -0
  52. data/lib/testcentricity/web_elements/list_radio.rb +31 -0
  53. data/lib/testcentricity/web_elements/radio.rb +74 -0
  54. data/lib/testcentricity/web_elements/select_list.rb +197 -0
  55. data/lib/testcentricity/web_elements/siebel_open_ui_helper.rb +15 -0
  56. data/lib/testcentricity/web_elements/table.rb +612 -0
  57. data/lib/testcentricity/web_elements/textfield.rb +114 -0
  58. data/lib/testcentricity/web_elements/ui_elements_helper.rb +502 -0
  59. data/lib/testcentricity/world_extensions.rb +26 -0
  60. data/my_templates/default/method_details/setup.rb +3 -0
  61. data/spec/spec_helper.rb +14 -0
  62. data/spec/testcentricity_spec.rb +9 -0
  63. data/testcentricity.gemspec +47 -0
  64. metadata +328 -0
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "testcentricity"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,344 @@
1
+ :iphone:
2
+ :name: "iPhone"
3
+ :os: ios
4
+ :type: phone
5
+ :css_width: 320
6
+ :css_height: 480
7
+ :default_orientation: portrait
8
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
9
+ :iphone4:
10
+ :name: "iPhone 4"
11
+ :os: ios
12
+ :type: phone
13
+ :css_width: 320
14
+ :css_height: 480
15
+ :default_orientation: portrait
16
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
17
+ :iphone5:
18
+ :name: "iPhone 5"
19
+ :os: ios
20
+ :type: phone
21
+ :css_width: 320
22
+ :css_height: 568
23
+ :default_orientation: portrait
24
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
25
+ :iphone6:
26
+ :name: "iPhone 6"
27
+ :os: ios
28
+ :type: phone
29
+ :css_width: 375
30
+ :css_height: 667
31
+ :default_orientation: portrait
32
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
33
+ :iphone6_plus:
34
+ :name: "iPhone 6 Plus"
35
+ :os: ios
36
+ :type: phone
37
+ :css_width: 414
38
+ :css_height: 736
39
+ :default_orientation: portrait
40
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
41
+ :iphone7:
42
+ :name: "iPhone 7"
43
+ :os: ios
44
+ :type: phone
45
+ :css_width: 375
46
+ :css_height: 667
47
+ :default_orientation: portrait
48
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
49
+ :iphone7_plus:
50
+ :name: "iPhone 7 Plus"
51
+ :os: ios
52
+ :type: phone
53
+ :css_width: 414
54
+ :css_height: 736
55
+ :default_orientation: portrait
56
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
57
+ :iphone7_chrome:
58
+ :name: "iPhone 7 - Chrome"
59
+ :os: ios
60
+ :type: phone
61
+ :css_width: 375
62
+ :css_height: 667
63
+ :default_orientation: portrait
64
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/14G60 Safari/602.1"
65
+ :iphone7_firefox:
66
+ :name: "iPhone 7 - Firefox"
67
+ :os: ios
68
+ :type: phone
69
+ :css_width: 375
70
+ :css_height: 667
71
+ :default_orientation: portrait
72
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/14G60 Safari/603.3.8"
73
+ :iphone7_edge:
74
+ :name: "iPhone 7 - MS Edge"
75
+ :os: ios
76
+ :type: phone
77
+ :css_width: 375
78
+ :css_height: 667
79
+ :default_orientation: portrait
80
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 EdgiOS/41.9.0.0 Mobile/14G60 Safari/603.3.8"
81
+ :iphone8:
82
+ :name: "iPhone 8"
83
+ :os: ios
84
+ :type: phone
85
+ :css_width: 375
86
+ :css_height: 667
87
+ :default_orientation: portrait
88
+ :user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
89
+ :iphone8_plus:
90
+ :name: "iPhone 8 Plus"
91
+ :os: ios
92
+ :type: phone
93
+ :css_width: 414
94
+ :css_height: 736
95
+ :default_orientation: portrait
96
+ :user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
97
+ :iphonex:
98
+ :name: "iPhone X"
99
+ :os: ios
100
+ :type: phone
101
+ :css_width: 375
102
+ :css_height: 812
103
+ :default_orientation: portrait
104
+ :user_agent: "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
105
+ :android_phone:
106
+ :name: "Generic Android phone"
107
+ :os: android
108
+ :type: phone
109
+ :css_width: 320
110
+ :css_height: 480
111
+ :default_orientation: portrait
112
+ :user_agent: "Mozilla/5.0 (Linux; U; Android 4.0.1; en-us; sdk Build/ICS_MR0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
113
+ nexus6:
114
+ :name: "Nexus 6 or 6P phone"
115
+ :os: android
116
+ :type: phone
117
+ :css_width: 411
118
+ :css_height: 731
119
+ :default_orientation: portrait
120
+ :user_agent: "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 6P Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36"
121
+ :samsung_galaxy_s4:
122
+ :name: "Samsung Galaxy S4"
123
+ :os: android
124
+ :type: phone
125
+ :css_width: 360
126
+ :css_height: 640
127
+ :default_orientation: portrait
128
+ :user_agent: "Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG SCH-I545 4G Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36"
129
+ :samsung_galaxy_s5:
130
+ :name: "Samsung Galaxy S5"
131
+ :os: android
132
+ :type: phone
133
+ :css_width: 360
134
+ :css_height: 640
135
+ :default_orientation: portrait
136
+ :user_agent: "Mozilla/5.0 (Linux; Android 6.0.1; SM-G900V Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36"
137
+ :samsung_galaxy_s6:
138
+ :name: "Samsung Galaxy S6 Edge"
139
+ :os: android
140
+ :type: phone
141
+ :css_width: 360
142
+ :css_height: 640
143
+ :default_orientation: portrait
144
+ :user_agent: "Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G925F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36"
145
+ :pixel:
146
+ :name: "Google Pixel phone"
147
+ :os: android
148
+ :type: phone
149
+ :css_width: 411
150
+ :css_height: 731
151
+ :default_orientation: portrait
152
+ :user_agent: "Mozilla/5.0 (Linux; Android 8.0.0; Pixel Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.66 Mobile Safari/537.36"
153
+ :pixel_xl:
154
+ :name: "Google Pixel XL phone"
155
+ :os: android
156
+ :type: phone
157
+ :css_width: 411
158
+ :css_height: 731
159
+ :default_orientation: portrait
160
+ :user_agent: "Mozilla/5.0 (Linux; Android 8.0.0; Pixel XL Build/OPR6.170623.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36"
161
+ :windows_phone8:
162
+ :name: "Generic Windows 8 phone"
163
+ :os: windows
164
+ :type: phone
165
+ :css_width: 320
166
+ :css_height: 480
167
+ :default_orientation: portrait
168
+ :user_agent: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)"
169
+ :windows_phone7:
170
+ :name: "Generic Windows 7 phone"
171
+ :os: windows
172
+ :type: phone
173
+ :css_width: 320
174
+ :css_height: 480
175
+ :default_orientation: portrait
176
+ :user_agent: "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710)"
177
+ :lumia_950_xl:
178
+ :name: "Microsoft Lumia 950 XL"
179
+ :os: windows
180
+ :type: phone
181
+ :css_width: 360
182
+ :css_height: 640
183
+ :default_orientation: portrait
184
+ :user_agent: "Mozilla/5.0 (Windows Phone 10.0; Android 4.2; Microsoft; Lumia 950 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10240"
185
+ :blackberry_z10:
186
+ :name: "Blackberry Z10"
187
+ :os: blackberry
188
+ :type: phone
189
+ :css_width: 384
190
+ :css_height: 640
191
+ :default_orientation: portrait
192
+ :user_agent: "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+"
193
+ :blackberry_z30:
194
+ :name: "Blackberry Z30"
195
+ :os: blackberry
196
+ :type: phone
197
+ :css_width: 360
198
+ :css_height: 640
199
+ :default_orientation: portrait
200
+ :user_agent: "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+"
201
+ :blackberry_leap:
202
+ :name: "Blackberry Leap"
203
+ :os: blackberry
204
+ :type: phone
205
+ :css_width: 360
206
+ :css_height: 640
207
+ :default_orientation: portrait
208
+ :user_agent: "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.35+ (KHTML, like Gecko) Version/10.2.0.1791 Mobile Safari/537.35+"
209
+ :ipad:
210
+ :name: "iPad"
211
+ :os: ios
212
+ :type: tablet
213
+ :css_width: 1024
214
+ :css_height: 768
215
+ :default_orientation: landscape
216
+ :user_agent: "Mozilla/5.0 (iPad; CPU OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1"
217
+ :ipad_pro:
218
+ :name: "iPad Pro"
219
+ :os: ios
220
+ :type: tablet
221
+ :css_width: 1366
222
+ :css_height: 1024
223
+ :default_orientation: landscape
224
+ :user_agent: "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
225
+ :ipad_pro_10_5:
226
+ :name: "iPad Pro 10.5 in."
227
+ :os: ios
228
+ :type: tablet
229
+ :css_width: 1112
230
+ :css_height: 834
231
+ :default_orientation: landscape
232
+ :user_agent: "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
233
+ :ipad_chrome:
234
+ :name: "iPad - Chrome"
235
+ :os: ios
236
+ :type: tablet
237
+ :css_width: 1024
238
+ :css_height: 768
239
+ :default_orientation: landscape
240
+ :user_agent: "Mozilla/5.0 (iPad; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/14G60 Safari/602.1"
241
+ :ipad_firefox:
242
+ :name: "iPad - Firefox"
243
+ :os: ios
244
+ :type: tablet
245
+ :css_width: 1024
246
+ :css_height: 768
247
+ :default_orientation: landscape
248
+ :user_agent: "Mozilla/5.0 (iPad; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/14G60 Safari/603.3.8"
249
+ :android_tablet:
250
+ :name: "Generic Android tablet"
251
+ :os: android
252
+ :type: tablet
253
+ :css_width: 1024
254
+ :css_height: 768
255
+ :default_orientation: landscape
256
+ :user_agent: "Mozilla/5.0 (Linux; U; Android 3.0; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13"
257
+ :kindle_fire:
258
+ :name: "Kindle Fire"
259
+ :os: kindle
260
+ :type: tablet
261
+ :css_width: 1024
262
+ :css_height: 600
263
+ :default_orientation: landscape
264
+ :user_agent: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.141.16-Gen4_11004310) AppleWebkit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true"
265
+ :kindle_firehd7:
266
+ :name: "Kindle Fire HD 7"
267
+ :os: kindle
268
+ :type: tablet
269
+ :css_width: 800
270
+ :css_height: 480
271
+ :default_orientation: landscape
272
+ :user_agent: "Mozilla/5.0 (Linux; U; en-us; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true"
273
+ :kindle_firehd8:
274
+ :name: "Kindle Fire HD 8 or 9"
275
+ :os: kindle
276
+ :type: tablet
277
+ :css_width: 1280
278
+ :css_height: 800
279
+ :default_orientation: landscape
280
+ :user_agent: "Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true"
281
+ :kindle_firehd10:
282
+ :name: "Kindle Fire HD 10"
283
+ :os: kindle
284
+ :type: tablet
285
+ :css_width: 1920
286
+ :css_height: 1200
287
+ :default_orientation: landscape
288
+ :user_agent: "Mozilla/5.0 (Linux; Android 5.1.1; KFTBWI Build/LMY47O) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/41.51020.2250.0238 Safari/537.36"
289
+ :surface:
290
+ :name: "Microsoft Surface"
291
+ :os: windows
292
+ :type: tablet
293
+ :css_width: 1366
294
+ :css_height: 768
295
+ :default_orientation: landscape
296
+ :user_agent: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)"
297
+ :blackberry_playbook:
298
+ :name: "Blackberry Playbook"
299
+ :os: blackberry
300
+ :type: tablet
301
+ :css_width: 1024
302
+ :css_height: 600
303
+ :default_orientation: landscape
304
+ :user_agent: "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+"
305
+ :blackberry_passport:
306
+ :name: "Blackberry Passport"
307
+ :os: blackberry
308
+ :type: tablet
309
+ :css_width: 504
310
+ :css_height: 504
311
+ :default_orientation: portrait
312
+ :user_agent: "Mozilla/5.0 (Linux; U; Android 4.3; en-us; Passport Build/10.3.2.148) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
313
+ :samsung_galaxy_tab:
314
+ :name: "Samsung Galaxy Tab series"
315
+ :os: android
316
+ :type: tablet
317
+ :css_width: 1280
318
+ :css_height: 800
319
+ :default_orientation: landscape
320
+ :user_agent: "Mozilla/5.0 (Linux; Android 4.0.4; GT-P6800 Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36"
321
+ :google_nexus7:
322
+ :name: "Nexus 7 series"
323
+ :os: android
324
+ :type: tablet
325
+ :css_width: 960
326
+ :css_height: 600
327
+ :default_orientation: landscape
328
+ :user_agent: "Mozilla/5.0 (Linux; Android 4.4.4; Nexus 7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36"
329
+ :google_nexus9:
330
+ :name: "Nexus 9 series"
331
+ :os: android
332
+ :type: tablet
333
+ :css_width: 1024
334
+ :css_height: 768
335
+ :default_orientation: landscape
336
+ :user_agent: "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 9 Build/LMY48I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36"
337
+ :google_nexus10:
338
+ :name: "Nexus 10 series"
339
+ :os: android
340
+ :type: tablet
341
+ :css_width: 1280
342
+ :css_height: 800
343
+ :default_orientation: landscape
344
+ :user_agent: "Mozilla/5.0 (Linux; Android 5.1; Nexus 10 Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.109 Safari/537.36"
@@ -0,0 +1,144 @@
1
+ require 'capybara/cucumber'
2
+ require 'test/unit'
3
+ require 'capybara/poltergeist'
4
+
5
+ require 'testcentricity/world_extensions'
6
+ require 'testcentricity/exception_queue_helper'
7
+ require 'testcentricity/utility_helpers'
8
+ require 'testcentricity/version'
9
+ require 'testcentricity/browser_helper'
10
+
11
+ require 'testcentricity/web_core/drag_drop_helper'
12
+ require 'testcentricity/web_core/page_objects_helper'
13
+ require 'testcentricity/web_core/page_sections_helper'
14
+ require 'testcentricity/web_core/webdriver_helper'
15
+
16
+ require 'testcentricity/data_objects/data_objects_helper'
17
+ require 'testcentricity/data_objects/environment'
18
+ require 'testcentricity/data_objects/excel_helper'
19
+
20
+ require 'testcentricity/web_elements/ui_elements_helper'
21
+ require 'testcentricity/web_elements/siebel_open_ui_helper'
22
+ require 'testcentricity/web_elements/button'
23
+ require 'testcentricity/web_elements/checkbox'
24
+ require 'testcentricity/web_elements/file_field'
25
+ require 'testcentricity/web_elements/image'
26
+ require 'testcentricity/web_elements/label'
27
+ require 'testcentricity/web_elements/link'
28
+ require 'testcentricity/web_elements/radio'
29
+ require 'testcentricity/web_elements/select_list'
30
+ require 'testcentricity/web_elements/list'
31
+ require 'testcentricity/web_elements/table'
32
+ require 'testcentricity/web_elements/textfield'
33
+ require 'testcentricity/web_elements/cell_element'
34
+ require 'testcentricity/web_elements/cell_button'
35
+ require 'testcentricity/web_elements/cell_checkbox'
36
+ require 'testcentricity/web_elements/cell_radio'
37
+ require 'testcentricity/web_elements/cell_image'
38
+ require 'testcentricity/web_elements/list_element'
39
+ require 'testcentricity/web_elements/list_button'
40
+ require 'testcentricity/web_elements/list_checkbox'
41
+ require 'testcentricity/web_elements/list_radio'
42
+
43
+ require 'testcentricity/app_core/appium_server'
44
+ require 'testcentricity/app_core/appium_connect_helper'
45
+ require 'testcentricity/app_core/screen_objects_helper'
46
+ require 'testcentricity/app_core/screen_sections_helper'
47
+
48
+ require 'testcentricity/app_elements/app_element_helper'
49
+ require 'testcentricity/app_elements/button'
50
+ require 'testcentricity/app_elements/checkbox'
51
+ require 'testcentricity/app_elements/label'
52
+ require 'testcentricity/app_elements/switch'
53
+ require 'testcentricity/app_elements/textfield'
54
+ require 'testcentricity/app_elements/list'
55
+
56
+
57
+ module TestCentricity
58
+ class PageManager
59
+ attr_accessor :current_page
60
+
61
+ @page_objects = {}
62
+
63
+ def self.register_page_objects(pages)
64
+ result = ''
65
+ pages.each do |page_object, page_class|
66
+ obj = page_class.new
67
+ @page_objects[page_object] = obj unless @page_objects.has_key?(page_object)
68
+ page_names = obj.page_name
69
+ page_names = Array(page_names) if page_names.is_a? String
70
+ page_names.each do |name|
71
+ page_key = name.gsub(/\s+/, '').downcase.to_sym
72
+ if page_key != page_object
73
+ @page_objects[page_key] = obj unless @page_objects.has_key?(page_key)
74
+ end
75
+ result = "#{result}def #{page_object};@#{page_object} ||= TestCentricity::PageManager.find_page(:#{page_object});end;"
76
+ end
77
+ end
78
+ result
79
+ end
80
+
81
+ # Have all PageObjects been registered?
82
+ #
83
+ # @return [Boolean] true if all PageObjects have been registered
84
+ # @example
85
+ # TestCentricity::PageManager.loaded?
86
+ #
87
+ def self.loaded?
88
+ !@page_objects.empty?
89
+ end
90
+
91
+ def self.find_page(page_name)
92
+ (page_name.is_a? String) ? page_id = page_name.gsub(/\s+/, '').downcase.to_sym : page_id = page_name
93
+ @page_objects[page_id]
94
+ end
95
+
96
+ # Get the currently active PageObject
97
+ #
98
+ # @return [PageObject]
99
+ # @example
100
+ # active_page = TestCentricity::PageManager.current_page
101
+ #
102
+ def self.current_page
103
+ @current_page
104
+ end
105
+
106
+ # Sets the currently active PageObject
107
+ #
108
+ # @param page [PageObject] Reference to the active PageObject
109
+ # @example
110
+ # TestCentricity::PageManager.current_page = product_search_page
111
+ #
112
+ def self.current_page=(page)
113
+ @current_page = page
114
+ end
115
+ end
116
+
117
+
118
+ class DataManager
119
+ @data_objects = {}
120
+
121
+ def self.register_data_objects(data)
122
+ result = ''
123
+ data.each do |data_type, data_class|
124
+ @data_objects[data_type] = data_class.new unless @data_objects.has_key?(data_type)
125
+ result = "#{result}def #{data_type};@#{data_type} ||= TestCentricity::DataManager.find_data_object(:#{data_type});end;"
126
+ end
127
+ result
128
+ end
129
+
130
+ def self.find_data_object(data_object)
131
+ @data_objects[data_object]
132
+ end
133
+
134
+ # Have all DataObjects been registered?
135
+ #
136
+ # @return [Boolean] true if all DataObjects have been registered
137
+ # @example
138
+ # TestCentricity::DataManager.loaded?
139
+ #
140
+ def self.loaded?
141
+ !@data_objects.empty?
142
+ end
143
+ end
144
+ end