testcentricity_web 3.2.25 → 4.0.2

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