testcentricity_web 3.2.25 → 4.0.2

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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +66 -33
  4. data/lib/testcentricity_web/browser_helper.rb +21 -13
  5. data/lib/testcentricity_web/data_objects/data_objects_helper.rb +34 -5
  6. data/lib/testcentricity_web/data_objects/environment.rb +30 -5
  7. data/lib/testcentricity_web/data_objects/excel_helper.rb +1 -25
  8. data/lib/testcentricity_web/version.rb +1 -1
  9. data/lib/testcentricity_web/web_core/page_object.rb +1 -93
  10. data/lib/testcentricity_web/web_core/page_objects_helper.rb +1 -7
  11. data/lib/testcentricity_web/web_core/page_section.rb +0 -91
  12. data/lib/testcentricity_web/web_core/webdriver_helper.rb +100 -41
  13. data/lib/testcentricity_web/web_elements/checkbox.rb +1 -15
  14. data/lib/testcentricity_web/web_elements/file_field.rb +1 -1
  15. data/lib/testcentricity_web/web_elements/radio.rb +1 -1
  16. data/lib/testcentricity_web/web_elements/select_list.rb +0 -52
  17. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +5 -14
  18. data/lib/testcentricity_web/world_extensions.rb +1 -1
  19. data/lib/testcentricity_web.rb +1 -11
  20. metadata +6 -18
  21. data/Gemfile.lock +0 -114
  22. data/lib/testcentricity_web/web_elements/cell_button.rb +0 -8
  23. data/lib/testcentricity_web/web_elements/cell_checkbox.rb +0 -38
  24. data/lib/testcentricity_web/web_elements/cell_element.rb +0 -69
  25. data/lib/testcentricity_web/web_elements/cell_image.rb +0 -8
  26. data/lib/testcentricity_web/web_elements/cell_radio.rb +0 -31
  27. data/lib/testcentricity_web/web_elements/list_button.rb +0 -8
  28. data/lib/testcentricity_web/web_elements/list_checkbox.rb +0 -38
  29. data/lib/testcentricity_web/web_elements/list_element.rb +0 -61
  30. data/lib/testcentricity_web/web_elements/list_radio.rb +0 -31
  31. data/lib/testcentricity_web/web_elements/siebel_open_ui_helper.rb +0 -15
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.2.25
4
+ version: 4.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-11 00:00:00.000000000 Z
11
+ date: 2021-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -253,7 +253,6 @@ files:
253
253
  - CHANGELOG.md
254
254
  - CODE_OF_CONDUCT.md
255
255
  - Gemfile
256
- - Gemfile.lock
257
256
  - LICENSE.md
258
257
  - README.md
259
258
  - Rakefile
@@ -274,26 +273,16 @@ files:
274
273
  - lib/testcentricity_web/web_core/webdriver_helper.rb
275
274
  - lib/testcentricity_web/web_elements/audio.rb
276
275
  - lib/testcentricity_web/web_elements/button.rb
277
- - lib/testcentricity_web/web_elements/cell_button.rb
278
- - lib/testcentricity_web/web_elements/cell_checkbox.rb
279
- - lib/testcentricity_web/web_elements/cell_element.rb
280
- - lib/testcentricity_web/web_elements/cell_image.rb
281
- - lib/testcentricity_web/web_elements/cell_radio.rb
282
276
  - lib/testcentricity_web/web_elements/checkbox.rb
283
277
  - lib/testcentricity_web/web_elements/file_field.rb
284
278
  - lib/testcentricity_web/web_elements/image.rb
285
279
  - lib/testcentricity_web/web_elements/label.rb
286
280
  - lib/testcentricity_web/web_elements/link.rb
287
281
  - lib/testcentricity_web/web_elements/list.rb
288
- - lib/testcentricity_web/web_elements/list_button.rb
289
- - lib/testcentricity_web/web_elements/list_checkbox.rb
290
- - lib/testcentricity_web/web_elements/list_element.rb
291
- - lib/testcentricity_web/web_elements/list_radio.rb
292
282
  - lib/testcentricity_web/web_elements/media.rb
293
283
  - lib/testcentricity_web/web_elements/radio.rb
294
284
  - lib/testcentricity_web/web_elements/range.rb
295
285
  - lib/testcentricity_web/web_elements/select_list.rb
296
- - lib/testcentricity_web/web_elements/siebel_open_ui_helper.rb
297
286
  - lib/testcentricity_web/web_elements/table.rb
298
287
  - lib/testcentricity_web/web_elements/textfield.rb
299
288
  - lib/testcentricity_web/web_elements/ui_elements_helper.rb
@@ -305,7 +294,7 @@ homepage: ''
305
294
  licenses:
306
295
  - BSD-3-Clause
307
296
  metadata: {}
308
- post_install_message:
297
+ post_install_message:
309
298
  rdoc_options: []
310
299
  require_paths:
311
300
  - lib
@@ -321,9 +310,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
310
  version: '0'
322
311
  requirements:
323
312
  - Capybara, Selenium-WebDriver
324
- rubyforge_project:
325
- rubygems_version: 2.7.9
326
- signing_key:
313
+ rubygems_version: 3.0.9
314
+ signing_key:
327
315
  specification_version: 4
328
316
  summary: A Page Object and Data Object Model Framework for desktop and mobile web
329
317
  testing
data/Gemfile.lock DELETED
@@ -1,114 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- testcentricity_web (3.2.25)
5
- appium_lib
6
- browserstack-local
7
- capybara (>= 3.1, < 4)
8
- childprocess (~> 0.5)
9
- chronic (= 0.10.2)
10
- faker
11
- i18n
12
- os (~> 1.0)
13
- selenium-webdriver
14
- spreadsheet (= 1.1.7)
15
- test-unit
16
- virtus
17
- webdrivers (~> 4.0)
18
-
19
- GEM
20
- remote: https://rubygems.org/
21
- specs:
22
- addressable (2.7.0)
23
- public_suffix (>= 2.0.2, < 5.0)
24
- appium_lib (11.2.0)
25
- appium_lib_core (~> 4.1)
26
- nokogiri (~> 1.8, >= 1.8.1)
27
- tomlrb (~> 1.1)
28
- appium_lib_core (4.4.1)
29
- faye-websocket (~> 0.11.0)
30
- selenium-webdriver (~> 3.14, >= 3.14.1)
31
- axiom-types (0.1.1)
32
- descendants_tracker (~> 0.0.4)
33
- ice_nine (~> 0.11.0)
34
- thread_safe (~> 0.3, >= 0.3.1)
35
- browserstack-local (1.3.0)
36
- capybara (3.35.3)
37
- addressable
38
- mini_mime (>= 0.1.3)
39
- nokogiri (~> 1.8)
40
- rack (>= 1.6.0)
41
- rack-test (>= 0.6.3)
42
- regexp_parser (>= 1.5, < 3.0)
43
- xpath (~> 3.2)
44
- childprocess (0.9.0)
45
- ffi (~> 1.0, >= 1.0.11)
46
- chronic (0.10.2)
47
- coercible (1.0.0)
48
- descendants_tracker (~> 0.0.1)
49
- concurrent-ruby (1.1.8)
50
- descendants_tracker (0.0.4)
51
- thread_safe (~> 0.3, >= 0.3.1)
52
- equalizer (0.0.11)
53
- eventmachine (1.2.7)
54
- faker (2.16.0)
55
- i18n (>= 1.6, < 2)
56
- faye-websocket (0.11.0)
57
- eventmachine (>= 0.12.0)
58
- websocket-driver (>= 0.5.1)
59
- ffi (1.15.0)
60
- i18n (1.8.9)
61
- concurrent-ruby (~> 1.0)
62
- ice_nine (0.11.2)
63
- mini_mime (1.0.2)
64
- mini_portile2 (2.5.0)
65
- nokogiri (1.11.2)
66
- mini_portile2 (~> 2.5.0)
67
- racc (~> 1.4)
68
- os (1.1.1)
69
- power_assert (2.0.0)
70
- public_suffix (4.0.6)
71
- racc (1.5.2)
72
- rack (2.2.3)
73
- rack-test (1.1.0)
74
- rack (>= 1.0, < 3)
75
- rake (13.0.1)
76
- redcarpet (3.5.0)
77
- regexp_parser (2.1.1)
78
- ruby-ole (1.2.12.2)
79
- rubyzip (2.3.0)
80
- selenium-webdriver (3.142.7)
81
- childprocess (>= 0.5, < 4.0)
82
- rubyzip (>= 1.2.2)
83
- spreadsheet (1.1.7)
84
- ruby-ole (>= 1.0)
85
- test-unit (3.4.0)
86
- power_assert
87
- thread_safe (0.3.6)
88
- tomlrb (1.3.0)
89
- virtus (1.0.5)
90
- axiom-types (~> 0.1)
91
- coercible (~> 1.0)
92
- descendants_tracker (~> 0.0, >= 0.0.3)
93
- equalizer (~> 0.0, >= 0.0.9)
94
- webdrivers (4.6.0)
95
- nokogiri (~> 1.6)
96
- rubyzip (>= 1.3.0)
97
- selenium-webdriver (>= 3.0, < 4.0)
98
- websocket-driver (0.7.3)
99
- websocket-extensions (>= 0.1.0)
100
- websocket-extensions (0.1.5)
101
- xpath (3.2.0)
102
- nokogiri (~> 1.8)
103
-
104
- PLATFORMS
105
- ruby
106
-
107
- DEPENDENCIES
108
- bundler
109
- rake
110
- redcarpet
111
- testcentricity_web!
112
-
113
- BUNDLED WITH
114
- 2.1.4
@@ -1,8 +0,0 @@
1
- module TestCentricity
2
- class CellButton < CellElement
3
- def initialize(name, parent, locator, context, table, column, proxy = nil)
4
- super
5
- @type = :cell_button
6
- end
7
- end
8
- end
@@ -1,38 +0,0 @@
1
- module TestCentricity
2
- class CellCheckBox < CellElement
3
- attr_accessor :proxy
4
-
5
- def initialize(name, parent, locator, context, table, column, proxy = nil)
6
- super
7
- @type = :cell_checkbox
8
- @proxy = proxy
9
- end
10
-
11
- def checked?(row)
12
- obj, = find_cell_element(row)
13
- cell_object_not_found_exception(obj, 'Cell CheckBox', row)
14
- obj.checked?
15
- end
16
-
17
- def set_checkbox_state(row, state)
18
- obj, = find_cell_element(row)
19
- cell_object_not_found_exception(obj, 'Cell CheckBox', row)
20
- obj.set(state)
21
- end
22
-
23
- def check(row)
24
- set_checkbox_state(row, true)
25
- end
26
-
27
- def uncheck(row)
28
- set_checkbox_state(row, false)
29
- end
30
-
31
- def verify_check_state(row, state, enqueue = false)
32
- actual = checked?(row)
33
- enqueue ?
34
- ExceptionQueue.enqueue_assert_equal(state, actual, "Expected Row #{row}/Col #{@column} Cell Checkbox #{object_ref_message}") :
35
- assert_equal(state, actual, "Expected Row #{row}/Col #{@column} Cell Checkbox #{object_ref_message} to be #{state} but found #{actual} instead")
36
- end
37
- end
38
- end
@@ -1,69 +0,0 @@
1
- module TestCentricity
2
- class CellElement < UIElement
3
- attr_accessor :table
4
- attr_accessor :column
5
- attr_accessor :element_locator
6
-
7
- def initialize(name, parent, locator, context, table, column, proxy = nil)
8
- @name = name
9
- @parent = parent
10
- @context = context
11
- @alt_locator = nil
12
- @table = table
13
- @column = column
14
- @element_locator = locator
15
-
16
- set_locator_type(@table.get_locator)
17
- set_column(column)
18
- end
19
-
20
- def set_column(column)
21
- @column = column
22
- @locator = case @locator_type
23
- when :xpath
24
- "#{@table.get_table_cell_locator('ROW_SPEC', @column)}/#{@element_locator}"
25
- when :css
26
- "#{@table.get_table_cell_locator('ROW_SPEC', @column)} > #{@element_locator}"
27
- end
28
- end
29
-
30
- def exists?(row)
31
- obj, = find_cell_element(row)
32
- obj != nil
33
- end
34
-
35
- def click(row)
36
- obj, = find_cell_element(row)
37
- cell_object_not_found_exception(obj, @type, row)
38
- obj.click
39
- end
40
-
41
- def get_native_attribute(row, attrib)
42
- obj, = find_cell_element(row)
43
- cell_object_not_found_exception(obj, @type, row)
44
- obj.get_native_attribute(attrib)
45
- end
46
-
47
- def get_value(row, visible = true)
48
- obj, = find_cell_element(row, visible)
49
- cell_object_not_found_exception(obj, @type, row)
50
- case obj.tag_name.downcase
51
- when 'input', 'select', 'textarea'
52
- obj.value
53
- else
54
- obj.text
55
- end
56
- end
57
-
58
- alias get_caption get_value
59
-
60
- def find_cell_element(row, visible = true)
61
- set_alt_locator("#{@locator.gsub('ROW_SPEC', row.to_s)}")
62
- find_element(visible)
63
- end
64
-
65
- def cell_object_not_found_exception(obj, obj_type, row)
66
- object_not_found_exception(obj, "Row #{row}/Col #{@column} #{obj_type}")
67
- end
68
- end
69
- end
@@ -1,8 +0,0 @@
1
- module TestCentricity
2
- class CellImage < CellElement
3
- def initialize(name, parent, locator, context, table, column, proxy = nil)
4
- super
5
- @type = :cell_image
6
- end
7
- end
8
- end
@@ -1,31 +0,0 @@
1
- module TestCentricity
2
- class CellRadio < CellElement
3
- attr_accessor :proxy
4
-
5
- def initialize(name, parent, locator, context, table, column, proxy = nil)
6
- super
7
- @type = :cell_radio
8
- @proxy = proxy
9
- end
10
-
11
- def selected?(row)
12
- obj, = find_cell_element(row)
13
- cell_object_not_found_exception(obj, 'Cell Radio', row)
14
- obj.checked?
15
- end
16
-
17
- def set_selected_state(row, state)
18
- obj, = find_cell_element(row)
19
- cell_object_not_found_exception(obj, 'Cell Radio', row)
20
- obj.set(state)
21
- end
22
-
23
- def select(row)
24
- set_selected_state(row, true)
25
- end
26
-
27
- def unselect(row)
28
- set_selected_state(row, false)
29
- end
30
- end
31
- end
@@ -1,8 +0,0 @@
1
- module TestCentricity
2
- class ListButton < ListElement
3
- def initialize(name, parent, locator, context, list, proxy = nil)
4
- super
5
- @type = :list_button
6
- end
7
- end
8
- end
@@ -1,38 +0,0 @@
1
- module TestCentricity
2
- class ListCheckBox < ListElement
3
- attr_accessor :proxy
4
-
5
- def initialize(name, parent, locator, context, list, proxy = nil)
6
- super
7
- @type = :list_checkbox
8
- @proxy = proxy
9
- end
10
-
11
- def checked?(row)
12
- obj, = find_list_element(row)
13
- list_object_not_found_exception(obj, 'List CheckBox', row)
14
- obj.checked?
15
- end
16
-
17
- def set_checkbox_state(row, state)
18
- obj, = find_list_element(row)
19
- list_object_not_found_exception(obj, 'List CheckBox', row)
20
- obj.set(state)
21
- end
22
-
23
- def check(row)
24
- set_checkbox_state(row, true)
25
- end
26
-
27
- def uncheck(row)
28
- set_checkbox_state(row, false)
29
- end
30
-
31
- def verify_check_state(row, state, enqueue = false)
32
- actual = checked?(row)
33
- enqueue ?
34
- ExceptionQueue.enqueue_assert_equal(state, actual, "Expected Row #{row} List Checkbox #{object_ref_message}") :
35
- assert_equal(state, actual, "Expected Row #{row} List Checkbox #{object_ref_message} to be #{state} but found #{actual} instead")
36
- end
37
- end
38
- end
@@ -1,61 +0,0 @@
1
- module TestCentricity
2
- class ListElement < UIElement
3
- attr_accessor :list
4
- attr_accessor :element_locator
5
-
6
- def initialize(name, parent, locator, context, list, proxy = nil)
7
- @name = name
8
- @parent = parent
9
- @context = context
10
- @alt_locator = nil
11
- @list = list
12
- @element_locator = locator
13
-
14
- set_locator_type(@list.get_locator)
15
-
16
- if locator.nil?
17
- @locator = list.get_list_row_locator('ROW_SPEC')
18
- else
19
- @locator = case @locator_type
20
- when :xpath
21
- "#{list.get_list_row_locator('ROW_SPEC')}/#{@element_locator}"
22
- when :css
23
- "#{list.get_list_row_locator('ROW_SPEC')} > #{@element_locator}"
24
- end
25
- end
26
- end
27
-
28
- def exists?(row)
29
- obj, = find_list_element(row)
30
- obj != nil
31
- end
32
-
33
- def click(row)
34
- obj, = find_list_element(row)
35
- list_object_not_found_exception(obj, @type, row)
36
- obj.click
37
- end
38
-
39
- def get_value(row, visible = true)
40
- obj, = find_list_element(row, visible)
41
- list_object_not_found_exception(obj, @type, row)
42
- case obj.tag_name.downcase
43
- when 'input', 'select', 'textarea'
44
- obj.value
45
- else
46
- obj.text
47
- end
48
- end
49
-
50
- alias get_caption get_value
51
-
52
- def find_list_element(row, visible = true)
53
- set_alt_locator("#{@locator.gsub('ROW_SPEC', row.to_s)}")
54
- find_element(visible)
55
- end
56
-
57
- def list_object_not_found_exception(obj, obj_type, row)
58
- object_not_found_exception(obj, "Row #{row} #{obj_type}")
59
- end
60
- end
61
- end
@@ -1,31 +0,0 @@
1
- module TestCentricity
2
- class ListRadio < ListElement
3
- attr_accessor :proxy
4
-
5
- def initialize(name, parent, locator, context, list, proxy = nil)
6
- super
7
- @type = :list_radio
8
- @proxy = proxy
9
- end
10
-
11
- def selected?(row)
12
- obj, = find_list_element(row)
13
- list_object_not_found_exception(obj, 'List Radio', row)
14
- obj.checked?
15
- end
16
-
17
- def set_selected_state(row, state)
18
- obj, = find_list_element(row)
19
- list_object_not_found_exception(obj, 'List Radio', row)
20
- obj.set(state)
21
- end
22
-
23
- def select(row)
24
- set_selected_state(row, true)
25
- end
26
-
27
- def unselect(row)
28
- set_selected_state(row, false)
29
- end
30
- end
31
- end
@@ -1,15 +0,0 @@
1
- module TestCentricity
2
- class UIElement
3
- def invoke_siebel_dialog(popup, seconds = nil)
4
- invoke_siebel_popup
5
- timeout = seconds.nil? ? 15 : seconds
6
- popup.wait_until_exists(timeout)
7
- end
8
-
9
- def get_siebel_object_type
10
- obj, = find_element
11
- object_not_found_exception(obj, 'Siebel object')
12
- obj.native.attribute('ot')
13
- end
14
- end
15
- end