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
@@ -0,0 +1,26 @@
1
+ module WorldData
2
+ def environs
3
+ @environs ||= TestCentricity::EnvironData.new
4
+ end
5
+
6
+ # instantiate and register all data objects specified in data_objects method
7
+ def instantiate_data_objects
8
+ # return if data objects have already been instantiated and registered
9
+ return if TestCentricity::DataManager.loaded?
10
+
11
+ # register and instantiate all data objects
12
+ eval(TestCentricity::DataManager.register_data_objects(data_objects))
13
+ end
14
+ end
15
+
16
+
17
+ module WorldPages
18
+ # instantiate and register all page objects specified in page_objects method
19
+ def instantiate_page_objects
20
+ # return if page objects have already been instantiated and registered
21
+ return if TestCentricity::PageManager.loaded?
22
+
23
+ # register and instantiate all page objects
24
+ eval(TestCentricity::PageManager.register_page_objects(page_objects))
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ def source
2
+ return
3
+ end
@@ -0,0 +1,14 @@
1
+ require "bundler/setup"
2
+ require "testcentricity"
3
+
4
+ RSpec.configure do |config|
5
+ # Enable flags like --only-failures and --next-failure
6
+ config.example_status_persistence_file_path = ".rspec_status"
7
+
8
+ # Disable RSpec exposing methods globally on `Module` and `main`
9
+ config.disable_monkey_patching!
10
+
11
+ config.expect_with :rspec do |c|
12
+ c.syntax = :expect
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ RSpec.describe Testcentricity do
2
+ it "has a version number" do
3
+ expect(Testcentricity::VERSION).not_to be nil
4
+ end
5
+
6
+ it "does something useful" do
7
+ expect(false).to eq(true)
8
+ end
9
+ end
@@ -0,0 +1,47 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'testcentricity/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'testcentricity'
8
+ spec.version = TestCentricity::VERSION
9
+ spec.platform = Gem::Platform::RUBY
10
+ spec.required_ruby_version = '>= 2.3.0'
11
+ spec.authors = ['A.J. Mrozinski']
12
+ spec.email = ['testcentricity@gmail.com']
13
+ spec.summary = %q{A Page Object and Data Object Model Framework for desktop/mobile web and native mobile app testing}
14
+ spec.description = %q{
15
+ The TestCentricity™ core generic framework for desktop/mobile web and native mobile app testing implements a Page Object Model DSL
16
+ for use with Cucumber, Capybara, Appium, and Selenium-Webdriver. The TestCentricity™ gem supports running automated tests
17
+ against locally hosted desktop browsers (Firefox, Chrome, Safari, or IE), locally hosted emulated mobile browsers (iOS,
18
+ Android, Windows Phone, Blackberry, Kindle Fire) running within a locally hosted instance of Chrome, a "headless" browser (using
19
+ Poltergeist and PhantomJS), mobile Safari browsers on iOS device simulators or physical iOS devices (using Appium and XCode on
20
+ OS X), mobile Chrome or Android browsers on Android Studio virtual device emulators (using Appium and Android Studio on OS X),
21
+ or cloud hosted desktop or mobile web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).}
22
+ spec.homepage = ''
23
+ spec.license = 'BSD-3-Clause-Clear'
24
+
25
+ spec.files = `git ls-files -z`.split("\x0")
26
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
27
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
28
+ spec.require_paths = ['lib']
29
+ spec.requirements << 'Capybara, Appium, Selenium-WebDriver'
30
+
31
+ spec.add_development_dependency 'bundler', '~> 1.5'
32
+ spec.add_development_dependency 'rake'
33
+
34
+ spec.add_dependency 'capybara', ['>= 2.15', '< 3.0']
35
+ spec.add_dependency 'test-unit'
36
+ spec.add_dependency 'selenium-webdriver', ['>= 2.50.0', '< 3.0']
37
+ spec.add_dependency 'poltergeist'
38
+ spec.add_dependency 'faker'
39
+ spec.add_dependency 'chronic', '0.10.2'
40
+ spec.add_dependency 'spreadsheet', '1.1.1'
41
+ spec.add_dependency 'os'
42
+ spec.add_dependency 'i18n'
43
+ spec.add_dependency 'browserstack-local'
44
+ spec.add_dependency 'appium_lib'
45
+
46
+ spec.add_runtime_dependency 'childprocess', '~> 0.5'
47
+ end
metadata ADDED
@@ -0,0 +1,328 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: testcentricity
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.3.13
5
+ platform: ruby
6
+ authors:
7
+ - A.J. Mrozinski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: capybara
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '2.15'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '3.0'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '2.15'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: test-unit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: selenium-webdriver
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 2.50.0
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.0'
85
+ type: :runtime
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 2.50.0
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: poltergeist
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: faker
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :runtime
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: chronic
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - '='
128
+ - !ruby/object:Gem::Version
129
+ version: 0.10.2
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '='
135
+ - !ruby/object:Gem::Version
136
+ version: 0.10.2
137
+ - !ruby/object:Gem::Dependency
138
+ name: spreadsheet
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - '='
142
+ - !ruby/object:Gem::Version
143
+ version: 1.1.1
144
+ type: :runtime
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - '='
149
+ - !ruby/object:Gem::Version
150
+ version: 1.1.1
151
+ - !ruby/object:Gem::Dependency
152
+ name: os
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ type: :runtime
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: i18n
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :runtime
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: browserstack-local
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :runtime
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: appium_lib
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :runtime
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: childprocess
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: '0.5'
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '0.5'
221
+ description: |2-
222
+
223
+ The TestCentricity™ core generic framework for desktop/mobile web and native mobile app testing implements a Page Object Model DSL
224
+ for use with Cucumber, Capybara, Appium, and Selenium-Webdriver. The TestCentricity™ gem supports running automated tests
225
+ against locally hosted desktop browsers (Firefox, Chrome, Safari, or IE), locally hosted emulated mobile browsers (iOS,
226
+ Android, Windows Phone, Blackberry, Kindle Fire) running within a locally hosted instance of Chrome, a "headless" browser (using
227
+ Poltergeist and PhantomJS), mobile Safari browsers on iOS device simulators or physical iOS devices (using Appium and XCode on
228
+ OS X), mobile Chrome or Android browsers on Android Studio virtual device emulators (using Appium and Android Studio on OS X),
229
+ or cloud hosted desktop or mobile web browsers (using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services).
230
+ email:
231
+ - testcentricity@gmail.com
232
+ executables:
233
+ - console
234
+ - setup
235
+ extensions: []
236
+ extra_rdoc_files: []
237
+ files:
238
+ - ".gitignore"
239
+ - ".rspec"
240
+ - ".ruby-gemset"
241
+ - ".ruby-version"
242
+ - Gemfile
243
+ - Gemfile.lock
244
+ - LICENSE.txt
245
+ - README.md
246
+ - Rakefile
247
+ - bin/console
248
+ - bin/setup
249
+ - lib/devices/devices.yml
250
+ - lib/testcentricity.rb
251
+ - lib/testcentricity/app_core/appium_connect_helper.rb
252
+ - lib/testcentricity/app_core/appium_server.rb
253
+ - lib/testcentricity/app_core/screen_objects_helper.rb
254
+ - lib/testcentricity/app_core/screen_sections_helper.rb
255
+ - lib/testcentricity/app_elements/app_element_helper.rb
256
+ - lib/testcentricity/app_elements/button.rb
257
+ - lib/testcentricity/app_elements/checkbox.rb
258
+ - lib/testcentricity/app_elements/label.rb
259
+ - lib/testcentricity/app_elements/list.rb
260
+ - lib/testcentricity/app_elements/switch.rb
261
+ - lib/testcentricity/app_elements/textfield.rb
262
+ - lib/testcentricity/browser_helper.rb
263
+ - lib/testcentricity/data_objects/data_objects_helper.rb
264
+ - lib/testcentricity/data_objects/environment.rb
265
+ - lib/testcentricity/data_objects/excel_helper.rb
266
+ - lib/testcentricity/exception_queue_helper.rb
267
+ - lib/testcentricity/utility_helpers.rb
268
+ - lib/testcentricity/version.rb
269
+ - lib/testcentricity/web_core/drag_drop_helper.rb
270
+ - lib/testcentricity/web_core/page_objects_helper.rb
271
+ - lib/testcentricity/web_core/page_sections_helper.rb
272
+ - lib/testcentricity/web_core/webdriver_helper.rb
273
+ - lib/testcentricity/web_elements/button.rb
274
+ - lib/testcentricity/web_elements/cell_button.rb
275
+ - lib/testcentricity/web_elements/cell_checkbox.rb
276
+ - lib/testcentricity/web_elements/cell_element.rb
277
+ - lib/testcentricity/web_elements/cell_image.rb
278
+ - lib/testcentricity/web_elements/cell_radio.rb
279
+ - lib/testcentricity/web_elements/checkbox.rb
280
+ - lib/testcentricity/web_elements/file_field.rb
281
+ - lib/testcentricity/web_elements/image.rb
282
+ - lib/testcentricity/web_elements/label.rb
283
+ - lib/testcentricity/web_elements/link.rb
284
+ - lib/testcentricity/web_elements/list.rb
285
+ - lib/testcentricity/web_elements/list_button.rb
286
+ - lib/testcentricity/web_elements/list_checkbox.rb
287
+ - lib/testcentricity/web_elements/list_element.rb
288
+ - lib/testcentricity/web_elements/list_radio.rb
289
+ - lib/testcentricity/web_elements/radio.rb
290
+ - lib/testcentricity/web_elements/select_list.rb
291
+ - lib/testcentricity/web_elements/siebel_open_ui_helper.rb
292
+ - lib/testcentricity/web_elements/table.rb
293
+ - lib/testcentricity/web_elements/textfield.rb
294
+ - lib/testcentricity/web_elements/ui_elements_helper.rb
295
+ - lib/testcentricity/world_extensions.rb
296
+ - my_templates/default/method_details/setup.rb
297
+ - spec/spec_helper.rb
298
+ - spec/testcentricity_spec.rb
299
+ - testcentricity.gemspec
300
+ homepage: ''
301
+ licenses:
302
+ - BSD-3-Clause-Clear
303
+ metadata: {}
304
+ post_install_message:
305
+ rdoc_options: []
306
+ require_paths:
307
+ - lib
308
+ required_ruby_version: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ version: 2.3.0
313
+ required_rubygems_version: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - ">="
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
318
+ requirements:
319
+ - Capybara, Appium, Selenium-WebDriver
320
+ rubyforge_project:
321
+ rubygems_version: 2.5.1
322
+ signing_key:
323
+ specification_version: 4
324
+ summary: A Page Object and Data Object Model Framework for desktop/mobile web and
325
+ native mobile app testing
326
+ test_files:
327
+ - spec/spec_helper.rb
328
+ - spec/testcentricity_spec.rb