testcentricity 2.3.13

Sign up to get free protection for your applications and to get access to all the features.
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