testcentricity_web 3.0.9 → 3.0.10
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.
- checksums.yaml +4 -4
- data/.gitignore +10 -17
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -1
- data/{HISTORY.md → CHANGELOG.md} +128 -44
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile.lock +93 -0
- data/LICENSE.md +2 -2
- data/README.md +33 -19
- data/lib/testcentricity_web/data_objects/data_objects_helper.rb +36 -14
- data/lib/testcentricity_web/data_objects/excel_helper.rb +103 -46
- data/lib/testcentricity_web/exception_queue_helper.rb +16 -2
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +6 -2
- data/lib/testcentricity_web/web_core/page_sections_helper.rb +8 -4
- data/lib/testcentricity_web/web_elements/image.rb +19 -1
- data/lib/testcentricity_web/web_elements/table.rb +7 -7
- data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +75 -24
- data/my_templates/default/method_details/setup.rb +3 -0
- data/testcentricity_web.gemspec +13 -13
- metadata +62 -56
@@ -517,7 +517,7 @@ module TestCentricity
|
|
517
517
|
# home_page.secure?
|
518
518
|
#
|
519
519
|
def secure?
|
520
|
-
|
520
|
+
current_url.start_with?('https')
|
521
521
|
end
|
522
522
|
|
523
523
|
def verify_ui_states(ui_states, fail_message = nil)
|
@@ -568,6 +568,10 @@ module TestCentricity
|
|
568
568
|
actual = ui_object.get_max
|
569
569
|
when :step
|
570
570
|
actual = ui_object.get_step
|
571
|
+
when :loaded
|
572
|
+
actual = ui_object.loaded?
|
573
|
+
when :broken
|
574
|
+
actual = ui_object.broken?
|
571
575
|
when :options, :items, :list_items
|
572
576
|
actual = ui_object.get_list_items
|
573
577
|
when :optioncount, :itemcount
|
@@ -618,7 +622,7 @@ module TestCentricity
|
|
618
622
|
end
|
619
623
|
end
|
620
624
|
error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
|
621
|
-
ExceptionQueue.enqueue_comparison(state, actual, error_msg)
|
625
|
+
ExceptionQueue.enqueue_comparison(ui_object, state, actual, error_msg)
|
622
626
|
end
|
623
627
|
end
|
624
628
|
rescue ObjectNotFoundError => e
|
@@ -13,8 +13,8 @@ module TestCentricity
|
|
13
13
|
attr_accessor :list_index
|
14
14
|
attr_accessor :locator_type
|
15
15
|
|
16
|
-
XPATH_SELECTORS = ['//', '[@', '[contains(
|
17
|
-
CSS_SELECTORS = ['#', ':nth-child(', ':nth-of-type(', '^=', '$=', '*=']
|
16
|
+
XPATH_SELECTORS = ['//', '[@', '[contains(']
|
17
|
+
CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains(']
|
18
18
|
|
19
19
|
def initialize(name, parent, locator, context)
|
20
20
|
@name = name
|
@@ -743,6 +743,10 @@ module TestCentricity
|
|
743
743
|
actual = ui_object.get_max
|
744
744
|
when :step
|
745
745
|
actual = ui_object.get_step
|
746
|
+
when :loaded
|
747
|
+
actual = ui_object.loaded?
|
748
|
+
when :broken
|
749
|
+
actual = ui_object.broken?
|
746
750
|
when :options, :items, :list_items
|
747
751
|
actual = ui_object.get_list_items
|
748
752
|
when :optioncount, :itemcount
|
@@ -793,7 +797,7 @@ module TestCentricity
|
|
793
797
|
end
|
794
798
|
end
|
795
799
|
error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to"
|
796
|
-
ExceptionQueue.enqueue_comparison(state, actual, error_msg)
|
800
|
+
ExceptionQueue.enqueue_comparison(ui_object, state, actual, error_msg)
|
797
801
|
end
|
798
802
|
end
|
799
803
|
rescue ObjectNotFoundError => e
|
@@ -874,7 +878,7 @@ module TestCentricity
|
|
874
878
|
|
875
879
|
def find_section
|
876
880
|
locator = get_locator
|
877
|
-
locator = locator.
|
881
|
+
locator = locator.tr('|', ' ')
|
878
882
|
obj = page.find(@locator_type, locator, wait: 0.1)
|
879
883
|
[obj, @locator_type]
|
880
884
|
rescue
|
@@ -11,12 +11,30 @@ module TestCentricity
|
|
11
11
|
# @example
|
12
12
|
# company_logo_image.is_loaded??
|
13
13
|
#
|
14
|
-
def
|
14
|
+
def loaded?
|
15
15
|
obj, = find_element
|
16
16
|
object_not_found_exception(obj, nil)
|
17
17
|
obj.native.attribute('complete')
|
18
18
|
end
|
19
19
|
|
20
|
+
alias is_loaded? loaded?
|
21
|
+
|
22
|
+
# Is image broken?
|
23
|
+
#
|
24
|
+
# @return [Boolean]
|
25
|
+
# @example
|
26
|
+
# company_logo_image.broken???
|
27
|
+
#
|
28
|
+
def broken?
|
29
|
+
obj, = find_element
|
30
|
+
object_not_found_exception(obj, nil)
|
31
|
+
result = page.execute_script(
|
32
|
+
'return arguments[0].complete && typeof arguments[0].naturalWidth != "undefined" && arguments[0].naturalWidth > 0',
|
33
|
+
obj
|
34
|
+
)
|
35
|
+
!result
|
36
|
+
end
|
37
|
+
|
20
38
|
# Wait until the image is fully loaded, or until the specified wait time has expired.
|
21
39
|
#
|
22
40
|
# @param seconds [Integer or Float] wait time in seconds
|
@@ -15,13 +15,13 @@ module TestCentricity
|
|
15
15
|
@type = :table
|
16
16
|
|
17
17
|
table_spec = {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
table_body: 'tbody',
|
19
|
+
table_section: nil,
|
20
|
+
table_row: 'tr',
|
21
|
+
table_column: 'td',
|
22
|
+
table_header: 'thead',
|
23
|
+
header_row: 'tr',
|
24
|
+
header_column: 'th'
|
25
25
|
}
|
26
26
|
|
27
27
|
case @locator_type
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test/unit'
|
2
4
|
|
3
5
|
Capybara::Node::Element.class_eval do
|
@@ -35,18 +37,19 @@ module TestCentricity
|
|
35
37
|
include Test::Unit::Assertions
|
36
38
|
|
37
39
|
attr_reader :parent, :locator, :context, :type, :name
|
38
|
-
attr_accessor :alt_locator, :locator_type
|
40
|
+
attr_accessor :alt_locator, :locator_type, :original_style
|
39
41
|
|
40
|
-
XPATH_SELECTORS = ['//', '[@', '[contains(
|
41
|
-
CSS_SELECTORS = ['#', ':nth-child(', ':nth-of-type(', '^=', '$=', '*=']
|
42
|
+
XPATH_SELECTORS = ['//', '[@', '[contains('].freeze
|
43
|
+
CSS_SELECTORS = ['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains('].freeze
|
42
44
|
|
43
45
|
def initialize(name, parent, locator, context)
|
44
|
-
@name
|
45
|
-
@parent
|
46
|
-
@locator
|
47
|
-
@context
|
48
|
-
@type
|
49
|
-
@alt_locator
|
46
|
+
@name = name
|
47
|
+
@parent = parent
|
48
|
+
@locator = locator
|
49
|
+
@context = context
|
50
|
+
@type = nil
|
51
|
+
@alt_locator = nil
|
52
|
+
@original_style = nil
|
50
53
|
set_locator_type
|
51
54
|
end
|
52
55
|
|
@@ -105,7 +108,7 @@ module TestCentricity
|
|
105
108
|
object_not_found_exception(obj, type)
|
106
109
|
begin
|
107
110
|
obj.click
|
108
|
-
rescue
|
111
|
+
rescue StandardError
|
109
112
|
obj.click_at(10, 10) unless Capybara.current_driver == :poltergeist
|
110
113
|
end
|
111
114
|
end
|
@@ -249,7 +252,7 @@ module TestCentricity
|
|
249
252
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
250
253
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
251
254
|
wait.until { exists? }
|
252
|
-
rescue
|
255
|
+
rescue StandardError
|
253
256
|
raise "Could not find UI #{object_ref_message} after #{timeout} seconds" unless exists?
|
254
257
|
end
|
255
258
|
|
@@ -264,7 +267,7 @@ module TestCentricity
|
|
264
267
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
265
268
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
266
269
|
wait.until { !exists? }
|
267
|
-
rescue
|
270
|
+
rescue StandardError
|
268
271
|
raise "UI #{object_ref_message} remained visible after #{timeout} seconds" if exists?
|
269
272
|
end
|
270
273
|
|
@@ -279,7 +282,7 @@ module TestCentricity
|
|
279
282
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
280
283
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
281
284
|
wait.until { visible? }
|
282
|
-
rescue
|
285
|
+
rescue StandardError
|
283
286
|
raise "Could not find UI #{object_ref_message} after #{timeout} seconds" unless visible?
|
284
287
|
end
|
285
288
|
|
@@ -294,7 +297,7 @@ module TestCentricity
|
|
294
297
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
295
298
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
296
299
|
wait.until { hidden? }
|
297
|
-
rescue
|
300
|
+
rescue StandardError
|
298
301
|
raise "UI #{object_ref_message} remained visible after #{timeout} seconds" if visible?
|
299
302
|
end
|
300
303
|
|
@@ -312,7 +315,7 @@ module TestCentricity
|
|
312
315
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
313
316
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
314
317
|
wait.until { compare(value, get_value) }
|
315
|
-
rescue
|
318
|
+
rescue StandardError
|
316
319
|
raise "Value of UI #{object_ref_message} failed to equal '#{value}' after #{timeout} seconds" unless get_value == value
|
317
320
|
end
|
318
321
|
|
@@ -328,7 +331,7 @@ module TestCentricity
|
|
328
331
|
timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds
|
329
332
|
wait = Selenium::WebDriver::Wait.new(timeout: timeout)
|
330
333
|
wait.until { get_value != value }
|
331
|
-
rescue
|
334
|
+
rescue StandardError
|
332
335
|
raise "Value of UI #{object_ref_message} failed to change from '#{value}' after #{timeout} seconds" if get_value == value
|
333
336
|
end
|
334
337
|
|
@@ -442,6 +445,54 @@ module TestCentricity
|
|
442
445
|
page.driver.browser.action.move_to(target_drop.native, right_offset.to_i, down_offset.to_i).release.perform
|
443
446
|
end
|
444
447
|
|
448
|
+
# Highlight an object with a 3 pixel wide, red dashed border for the specified wait time.
|
449
|
+
# If wait time is zero, then the highlight will remain until the page is refreshed
|
450
|
+
#
|
451
|
+
# @param seconds [Integer or Float] wait time in seconds
|
452
|
+
# @example
|
453
|
+
# error_message.highlight(3)
|
454
|
+
#
|
455
|
+
def highlight(duration = 1)
|
456
|
+
obj, type = find_element
|
457
|
+
object_not_found_exception(obj, type)
|
458
|
+
# store original style so it can be reset later
|
459
|
+
@original_style = obj.native.attribute('style')
|
460
|
+
# style element with red border
|
461
|
+
page.execute_script(
|
462
|
+
'arguments[0].setAttribute(arguments[1], arguments[2])',
|
463
|
+
obj,
|
464
|
+
'style',
|
465
|
+
'border: 3px solid red; border-style: dashed;'
|
466
|
+
)
|
467
|
+
# keep element highlighted for duration and then revert to original style
|
468
|
+
if duration.positive?
|
469
|
+
sleep duration
|
470
|
+
page.execute_script(
|
471
|
+
'arguments[0].setAttribute(arguments[1], arguments[2])',
|
472
|
+
obj,
|
473
|
+
'style',
|
474
|
+
@original_style
|
475
|
+
)
|
476
|
+
end
|
477
|
+
end
|
478
|
+
|
479
|
+
# Restore a highlighted object's original style
|
480
|
+
#
|
481
|
+
# @example
|
482
|
+
# store_link.unhighlight
|
483
|
+
#
|
484
|
+
def unhighlight
|
485
|
+
obj, type = find_element
|
486
|
+
object_not_found_exception(obj, type)
|
487
|
+
return if @original_style.nil?
|
488
|
+
page.execute_script(
|
489
|
+
'arguments[0].setAttribute(arguments[1], arguments[2])',
|
490
|
+
obj,
|
491
|
+
'style',
|
492
|
+
@original_style
|
493
|
+
)
|
494
|
+
end
|
495
|
+
|
445
496
|
def get_attribute(attrib)
|
446
497
|
obj, type = find_element(false)
|
447
498
|
object_not_found_exception(obj, type)
|
@@ -462,33 +513,33 @@ module TestCentricity
|
|
462
513
|
end
|
463
514
|
|
464
515
|
def find_object(visible = true)
|
465
|
-
@alt_locator.nil? ?
|
516
|
+
obj_locator = @alt_locator.nil? ? @locator : @alt_locator
|
466
517
|
parent_section = @context == :section && !@parent.get_locator.nil?
|
467
|
-
parent_section ?
|
518
|
+
tries ||= parent_section ? 2 : 1
|
468
519
|
|
469
520
|
if parent_section && tries > 1
|
470
521
|
parent_locator = @parent.get_locator
|
471
|
-
parent_locator = parent_locator.
|
522
|
+
parent_locator = parent_locator.tr('|', ' ')
|
472
523
|
parent_locator_type = @parent.get_locator_type
|
473
524
|
obj = page.find(parent_locator_type, parent_locator, wait: 0.01).find(@locator_type, obj_locator, wait: 0.01, visible: visible)
|
474
525
|
else
|
475
526
|
obj = page.find(@locator_type, obj_locator, wait: 0.01, visible: visible)
|
476
527
|
end
|
477
528
|
[obj, @locator_type]
|
478
|
-
rescue
|
529
|
+
rescue StandardError
|
479
530
|
retry if (tries -= 1) > 0
|
480
531
|
[nil, nil]
|
481
532
|
end
|
482
533
|
|
483
534
|
def object_not_found_exception(obj, obj_type)
|
484
|
-
@alt_locator.nil? ?
|
485
|
-
obj_type.nil? ?
|
486
|
-
raise ObjectNotFoundError
|
535
|
+
locator = @alt_locator.nil? ? @locator : @alt_locator
|
536
|
+
object_type = obj_type.nil? ? 'Object' : obj_type
|
537
|
+
raise ObjectNotFoundError, "#{object_type} named '#{@name}' (#{locator}) not found" unless obj
|
487
538
|
end
|
488
539
|
|
489
540
|
def invalid_object_type_exception(obj, obj_type)
|
490
541
|
unless obj.tag_name == obj_type || obj.native.attribute('type') == obj_type
|
491
|
-
@alt_locator.nil? ?
|
542
|
+
locator = @alt_locator.nil? ? @locator : @alt_locator
|
492
543
|
raise "#{locator} is not a #{obj_type} element"
|
493
544
|
end
|
494
545
|
end
|
data/testcentricity_web.gemspec
CHANGED
@@ -15,12 +15,12 @@ Gem::Specification.new do |spec|
|
|
15
15
|
The TestCentricity™ Web core generic framework for desktop and mobile web browser-based applications testing implements
|
16
16
|
a Page Object Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver. The gem provides support for running
|
17
17
|
automated tests against locally hosted desktop browsers, locally hosted emulated mobile browsers (iOS, Android, Windows
|
18
|
-
Phone, Blackberry, Kindle Fire) running within a
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
|
19
|
+
or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
|
20
|
+
device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
|
21
|
+
BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).}
|
22
22
|
spec.homepage = ''
|
23
|
-
spec.license = '
|
23
|
+
spec.license = 'BSD-3-Clause'
|
24
24
|
|
25
25
|
spec.files = `git ls-files -z`.split("\x0")
|
26
26
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
@@ -31,16 +31,16 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
32
32
|
spec.add_development_dependency 'rake'
|
33
33
|
|
34
|
+
spec.add_runtime_dependency 'appium_lib'
|
35
|
+
spec.add_runtime_dependency 'browserstack-local'
|
34
36
|
spec.add_runtime_dependency 'capybara', '>= 3.1', '< 4'
|
35
|
-
spec.add_runtime_dependency '
|
36
|
-
spec.add_runtime_dependency 'selenium-webdriver', ['>= 3.11.0', '< 4.0']
|
37
|
-
spec.add_runtime_dependency 'faker'
|
37
|
+
spec.add_runtime_dependency 'childprocess', '~> 0.5'
|
38
38
|
spec.add_runtime_dependency 'chronic', '0.10.2'
|
39
|
-
spec.add_runtime_dependency '
|
40
|
-
spec.add_runtime_dependency 'os', '~> 1.0'
|
39
|
+
spec.add_runtime_dependency 'faker'
|
41
40
|
spec.add_runtime_dependency 'i18n'
|
42
|
-
spec.add_runtime_dependency '
|
43
|
-
spec.add_runtime_dependency '
|
41
|
+
spec.add_runtime_dependency 'os', '~> 1.0'
|
42
|
+
spec.add_runtime_dependency 'selenium-webdriver', ['>= 3.11.0', '< 4.0']
|
43
|
+
spec.add_runtime_dependency 'spreadsheet', '1.1.7'
|
44
|
+
spec.add_runtime_dependency 'test-unit'
|
44
45
|
spec.add_runtime_dependency 'webdrivers', '~> 3.3'
|
45
|
-
spec.add_runtime_dependency 'childprocess', '~> 0.5'
|
46
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,27 +39,21 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: appium_lib
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
- - "<"
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '4'
|
47
|
+
version: '0'
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
52
|
- - ">="
|
56
53
|
- !ruby/object:Gem::Version
|
57
|
-
version: '
|
58
|
-
- - "<"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '4'
|
54
|
+
version: '0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
56
|
+
name: browserstack-local
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
59
|
- - ">="
|
@@ -73,39 +67,39 @@ dependencies:
|
|
73
67
|
- !ruby/object:Gem::Version
|
74
68
|
version: '0'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
70
|
+
name: capybara
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: 3.
|
75
|
+
version: '3.1'
|
82
76
|
- - "<"
|
83
77
|
- !ruby/object:Gem::Version
|
84
|
-
version: '4
|
78
|
+
version: '4'
|
85
79
|
type: :runtime
|
86
80
|
prerelease: false
|
87
81
|
version_requirements: !ruby/object:Gem::Requirement
|
88
82
|
requirements:
|
89
83
|
- - ">="
|
90
84
|
- !ruby/object:Gem::Version
|
91
|
-
version: 3.
|
85
|
+
version: '3.1'
|
92
86
|
- - "<"
|
93
87
|
- !ruby/object:Gem::Version
|
94
|
-
version: '4
|
88
|
+
version: '4'
|
95
89
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
90
|
+
name: childprocess
|
97
91
|
requirement: !ruby/object:Gem::Requirement
|
98
92
|
requirements:
|
99
|
-
- - "
|
93
|
+
- - "~>"
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
95
|
+
version: '0.5'
|
102
96
|
type: :runtime
|
103
97
|
prerelease: false
|
104
98
|
version_requirements: !ruby/object:Gem::Requirement
|
105
99
|
requirements:
|
106
|
-
- - "
|
100
|
+
- - "~>"
|
107
101
|
- !ruby/object:Gem::Version
|
108
|
-
version: '0'
|
102
|
+
version: '0.5'
|
109
103
|
- !ruby/object:Gem::Dependency
|
110
104
|
name: chronic
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,19 +115,33 @@ dependencies:
|
|
121
115
|
- !ruby/object:Gem::Version
|
122
116
|
version: 0.10.2
|
123
117
|
- !ruby/object:Gem::Dependency
|
124
|
-
name:
|
118
|
+
name: faker
|
125
119
|
requirement: !ruby/object:Gem::Requirement
|
126
120
|
requirements:
|
127
|
-
- -
|
121
|
+
- - ">="
|
128
122
|
- !ruby/object:Gem::Version
|
129
|
-
version:
|
123
|
+
version: '0'
|
130
124
|
type: :runtime
|
131
125
|
prerelease: false
|
132
126
|
version_requirements: !ruby/object:Gem::Requirement
|
133
127
|
requirements:
|
134
|
-
- -
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: i18n
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
135
143
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
144
|
+
version: '0'
|
137
145
|
- !ruby/object:Gem::Dependency
|
138
146
|
name: os
|
139
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,35 +157,41 @@ dependencies:
|
|
149
157
|
- !ruby/object:Gem::Version
|
150
158
|
version: '1.0'
|
151
159
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
160
|
+
name: selenium-webdriver
|
153
161
|
requirement: !ruby/object:Gem::Requirement
|
154
162
|
requirements:
|
155
163
|
- - ">="
|
156
164
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
165
|
+
version: 3.11.0
|
166
|
+
- - "<"
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '4.0'
|
158
169
|
type: :runtime
|
159
170
|
prerelease: false
|
160
171
|
version_requirements: !ruby/object:Gem::Requirement
|
161
172
|
requirements:
|
162
173
|
- - ">="
|
163
174
|
- !ruby/object:Gem::Version
|
164
|
-
version:
|
175
|
+
version: 3.11.0
|
176
|
+
- - "<"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '4.0'
|
165
179
|
- !ruby/object:Gem::Dependency
|
166
|
-
name:
|
180
|
+
name: spreadsheet
|
167
181
|
requirement: !ruby/object:Gem::Requirement
|
168
182
|
requirements:
|
169
|
-
- -
|
183
|
+
- - '='
|
170
184
|
- !ruby/object:Gem::Version
|
171
|
-
version:
|
185
|
+
version: 1.1.7
|
172
186
|
type: :runtime
|
173
187
|
prerelease: false
|
174
188
|
version_requirements: !ruby/object:Gem::Requirement
|
175
189
|
requirements:
|
176
|
-
- -
|
190
|
+
- - '='
|
177
191
|
- !ruby/object:Gem::Version
|
178
|
-
version:
|
192
|
+
version: 1.1.7
|
179
193
|
- !ruby/object:Gem::Dependency
|
180
|
-
name:
|
194
|
+
name: test-unit
|
181
195
|
requirement: !ruby/object:Gem::Requirement
|
182
196
|
requirements:
|
183
197
|
- - ">="
|
@@ -204,29 +218,15 @@ dependencies:
|
|
204
218
|
- - "~>"
|
205
219
|
- !ruby/object:Gem::Version
|
206
220
|
version: '3.3'
|
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
221
|
description: |2-
|
222
222
|
|
223
223
|
The TestCentricity™ Web core generic framework for desktop and mobile web browser-based applications testing implements
|
224
224
|
a Page Object Model DSL for use with Cucumber, Capybara, and Selenium-Webdriver. The gem provides support for running
|
225
225
|
automated tests against locally hosted desktop browsers, locally hosted emulated mobile browsers (iOS, Android, Windows
|
226
|
-
Phone, Blackberry, Kindle Fire) running within a
|
227
|
-
|
228
|
-
|
229
|
-
|
226
|
+
Phone, Blackberry, Kindle Fire) running within a local instance of Chrome, mobile Safari browsers on iOS device simulators
|
227
|
+
or physical iOS devices (using Appium and XCode on OS X), mobile Chrome or Android browsers on Android Studio virtual
|
228
|
+
device emulators (using Appium and Android Studio on OS X), or cloud hosted desktop or mobile web browsers (using the
|
229
|
+
BrowserStack, Sauce Labs, CrossBrowserTesting, TestingBot, or Gridlastic services).
|
230
230
|
email:
|
231
231
|
- testcentricity@gmail.com
|
232
232
|
executables: []
|
@@ -239,10 +239,15 @@ files:
|
|
239
239
|
- ".idea/misc.xml"
|
240
240
|
- ".idea/modules.xml"
|
241
241
|
- ".idea/vcs.xml"
|
242
|
+
- ".rspec"
|
242
243
|
- ".rubocop.yml"
|
244
|
+
- ".ruby-gemset"
|
245
|
+
- ".ruby-version"
|
243
246
|
- ".yardopts"
|
247
|
+
- CHANGELOG.md
|
248
|
+
- CODE_OF_CONDUCT.md
|
244
249
|
- Gemfile
|
245
|
-
-
|
250
|
+
- Gemfile.lock
|
246
251
|
- LICENSE.md
|
247
252
|
- README.md
|
248
253
|
- Rakefile
|
@@ -283,10 +288,11 @@ files:
|
|
283
288
|
- lib/testcentricity_web/web_elements/textfield.rb
|
284
289
|
- lib/testcentricity_web/web_elements/ui_elements_helper.rb
|
285
290
|
- lib/testcentricity_web/world_extensions.rb
|
291
|
+
- my_templates/default/method_details/setup.rb
|
286
292
|
- testcentricity_web.gemspec
|
287
293
|
homepage: ''
|
288
294
|
licenses:
|
289
|
-
-
|
295
|
+
- BSD-3-Clause
|
290
296
|
metadata: {}
|
291
297
|
post_install_message:
|
292
298
|
rdoc_options: []
|