testcentricity_web 0.9.1.1 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b1ea3399f3c43738e6c88b4d80a4f15c7da9ab3
4
- data.tar.gz: 4e3ef296cb0a1e510736328abdfba64d048a6149
3
+ metadata.gz: 78784c531cb446f5986d569b91b84bdb6002ed19
4
+ data.tar.gz: 42aa00f2944127038d56240d3555eb9b667b7a4f
5
5
  SHA512:
6
- metadata.gz: 329d32abef4368ca1e1437aff9c0d490a5b514fe686d135938b7f83b33eb7f45dfc06ff481299facfe34ae39b64f2e136dedaab4c9d8ddff51197265c12c375c
7
- data.tar.gz: ae739de1e3630c00c297d91588914d59a09efbab13c31141921fc659f0d67862f52fac7bf40d00b111d063fd9293050203dc7cd878b67dee0aca3a9ff4010bf3
6
+ metadata.gz: 78d409b2e5595588f2c1749373c757388887762ffb8c994cf8267e5a0a2408384c2f5d4bd5761a640a831cc641ad8293b9e66d4f39730b4449eff3bafe03fd05
7
+ data.tar.gz: 275d81ea900ca24848da1adf48cb6c052ee8486b8cdfe8e9ddbd2094b1f6d70efdb1ac086c1a5f26ec238a4eb00c7ef3df19106de33502386323204ffb9834ec
@@ -1,11 +1,13 @@
1
1
  module TestCentricity
2
2
  class CheckBox < UIElement
3
+ attr_accessor :proxy
3
4
 
4
- def initialize(parent, locator, context)
5
- @parent = parent
6
- @locator = locator
7
- @context = context
8
- @type = :checkbox
5
+ def initialize(parent, locator, context, proxy = nil)
6
+ @parent = parent
7
+ @locator = locator
8
+ @context = context
9
+ @proxy = proxy
10
+ @type = :checkbox
9
11
  @alt_locator = nil
10
12
  end
11
13
 
@@ -42,14 +44,18 @@ module TestCentricity
42
44
  obj, _ = find_element(:all)
43
45
  object_not_found_exception(obj, 'Checkbox')
44
46
  invalid_object_type_exception(obj, 'checkbox')
45
- begin
46
- obj.set(state)
47
- rescue
48
- unless state == obj.checked?
49
- check_id = obj.native.attribute('id')
50
- label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
51
- label.click unless label.nil?
47
+ if @proxy.nil?
48
+ begin
49
+ obj.set(state)
50
+ rescue
51
+ unless state == obj.checked?
52
+ check_id = obj.native.attribute('id')
53
+ label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
54
+ label.click unless label.nil?
55
+ end
52
56
  end
57
+ else
58
+ @proxy.click unless state == obj.checked?
53
59
  end
54
60
  end
55
61
 
@@ -1,11 +1,13 @@
1
1
  module TestCentricity
2
2
  class Radio < UIElement
3
+ attr_accessor :proxy
3
4
 
4
- def initialize(parent, locator, context)
5
- @parent = parent
6
- @locator = locator
7
- @context = context
8
- @type = :radio
5
+ def initialize(parent, locator, context, proxy = nil)
6
+ @parent = parent
7
+ @locator = locator
8
+ @context = context
9
+ @proxy = proxy
10
+ @type = :radio
9
11
  @alt_locator = nil
10
12
  end
11
13
 
@@ -42,14 +44,18 @@ module TestCentricity
42
44
  obj, _ = find_element(:all)
43
45
  object_not_found_exception(obj, 'Radio')
44
46
  invalid_object_type_exception(obj, 'radio')
45
- begin
46
- obj.set(state)
47
- rescue
48
- unless state == obj.checked?
49
- check_id = obj.native.attribute('id')
50
- label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
51
- label.click unless label.nil?
47
+ if @proxy.nil?
48
+ begin
49
+ obj.set(state)
50
+ rescue
51
+ unless state == obj.checked?
52
+ check_id = obj.native.attribute('id')
53
+ label = first("label[for='#{check_id}']", :wait => 1, :visible => true)
54
+ label.click unless label.nil?
55
+ end
52
56
  end
57
+ else
58
+ @proxy.click unless state == obj.checked?
53
59
  end
54
60
  end
55
61
 
@@ -22,7 +22,7 @@ module TestCentricity
22
22
  # Declare and instantiate a generic UI Element for this page object.
23
23
  #
24
24
  # @param element_name [Symbol] name of UI object (as a symbol)
25
- # @param locator [String] css selector or xpath expression that uniquely identifies object
25
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
26
26
  # @example
27
27
  # element :siebel_view, 'div#_sweview'
28
28
  # element :siebel_busy, "//html[contains(@class, 'siebui-busy')]"
@@ -34,7 +34,7 @@ module TestCentricity
34
34
  # Declare and instantiate a button UI Element for this page object.
35
35
  #
36
36
  # @param element_name [Symbol] name of button object (as a symbol)
37
- # @param locator [String] css selector or xpath expression that uniquely identifies object
37
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
38
38
  # @example
39
39
  # button :checkout_button, "button.checkout_button"
40
40
  # button :login_button, "//input[@id='submit_button']"
@@ -46,7 +46,7 @@ module TestCentricity
46
46
  # Declare and instantiate a text field UI Element for this page object.
47
47
  #
48
48
  # @param element_name [Symbol] name of text field object (as a symbol)
49
- # @param locator [String] css selector or xpath expression that uniquely identifies object
49
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
50
50
  # @example
51
51
  # textfield :user_id_field, "//input[@id='UserName']"
52
52
  # textfield :password_field, "consumer_password"
@@ -58,31 +58,33 @@ module TestCentricity
58
58
  # Declare and instantiate a checkbox UI Element for this page object.
59
59
  #
60
60
  # @param element_name [Symbol] name of checkbox object (as a symbol)
61
- # @param locator [String] css selector or xpath expression that uniquely identifies object
61
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
62
+ # @param proxy [Symbol] Optional name (as a symbol) of proxy object to receive click actions
62
63
  # @example
63
64
  # checkbox :remember_checkbox, "//input[@id='RememberUser']"
64
- # checkbox :accept_terms_checkbox, "accept_terms_conditions"
65
+ # checkbox :accept_terms_checkbox, "#accept_terms_conditions", :accept_terms_label
65
66
  #
66
- def self.checkbox(element_name, locator)
67
- class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :page);end))
67
+ def self.checkbox(element_name, locator, proxy = nil)
68
+ class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :page, #{proxy});end))
68
69
  end
69
70
 
70
71
  # Declare and instantiate a radio button UI Element for this page object.
71
72
  #
72
73
  # @param element_name [Symbol] name of radio object (as a symbol)
73
- # @param locator [String] css selector or xpath expression that uniquely identifies object
74
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
75
+ # @param proxy [Symbol] Optional name (as a symbol) of proxy object to receive click actions
74
76
  # @example
75
77
  # radio :accept_terms_radio, "//input[@id='Accept_Terms']"
76
- # radio :decline_terms_radio, "decline_terms_conditions"
78
+ # radio :decline_terms_radio, "#decline_terms_conditions", :decline_terms_label
77
79
  #
78
- def self.radio(element_name, locator)
79
- class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::Radio.new(self, "#{locator}", :page);end))
80
+ def self.radio(element_name, locator, proxy = nil)
81
+ class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::Radio.new(self, "#{locator}", :page, #{proxy});end))
80
82
  end
81
83
 
82
84
  # Declare and instantiate a label UI Element for this page object.
83
85
  #
84
86
  # @param element_name [Symbol] name of label object (as a symbol)
85
- # @param locator [String] css selector or xpath expression that uniquely identifies object
87
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
86
88
  # @example
87
89
  # label :welcome_label, 'div.Welcome'
88
90
  # label :rollup_price_label, "//div[contains(@id, 'Rollup Item Price')]"
@@ -94,7 +96,7 @@ module TestCentricity
94
96
  # Declare and instantiate a link UI Element for this page object.
95
97
  #
96
98
  # @param element_name [Symbol] name of link object (as a symbol)
97
- # @param locator [String] css selector or xpath expression that uniquely identifies object
99
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
98
100
  # @example
99
101
  # link :registration_link, "a.account-nav__link.register"
100
102
  # link :shopping_basket_link, "//a[@href='shopping_basket']"
@@ -106,7 +108,7 @@ module TestCentricity
106
108
  # Declare and instantiate a table UI Element for this page object.
107
109
  #
108
110
  # @param element_name [Symbol] name of table object (as a symbol)
109
- # @param locator [String] css selector or xpath expression that uniquely identifies object
111
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
110
112
  # @example
111
113
  # table :payments_table, "//table[@class='payments_table']"
112
114
  #
@@ -117,9 +119,9 @@ module TestCentricity
117
119
  # Declare and instantiate a select list UI Element for this page object.
118
120
  #
119
121
  # @param element_name [Symbol] name of select list object (as a symbol)
120
- # @param locator [String] css selector or xpath expression that uniquely identifies object
122
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
121
123
  # @example
122
- # selectlist :category_selector, "search_form_category_chosen"
124
+ # selectlist :category_selector, "#search_form_category_chosen"
123
125
  # selectlist :gender_select, "//select[@id='customer_gender']"
124
126
  #
125
127
  def self.selectlist(element_name, locator)
@@ -129,7 +131,7 @@ module TestCentricity
129
131
  # Declare and instantiate an image UI Element for this page object.
130
132
  #
131
133
  # @param element_name [Symbol] name of image object (as a symbol)
132
- # @param locator [String] css selector or xpath expression that uniquely identifies object
134
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
133
135
  # @example
134
136
  # image :basket_item_image, "div.product_image"
135
137
  # image :corporate_logo_image, "//img[@alt='MyCompany_logo']"
@@ -141,7 +143,7 @@ module TestCentricity
141
143
  # Declare and instantiate a File Field UI Element for this page object.
142
144
  #
143
145
  # @param element_name [Symbol] name of file field object (as a symbol)
144
- # @param locator [String] css selector or xpath expression that uniquely identifies object
146
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
145
147
  # @example
146
148
  # filefield :attach_file, "s_SweFileName"
147
149
  #
@@ -21,7 +21,7 @@ module TestCentricity
21
21
  # @param block [&block] trait value
22
22
  # @example
23
23
  # trait(:section_locator) { "//div[@class='Messaging_Applet']" }
24
- # trait(:list_table_name) { 'Messages' }
24
+ # trait(:list_table_name) { '#Messages' }
25
25
  #
26
26
  def self.trait(trait_name, &block)
27
27
  define_method(trait_name.to_s, &block)
@@ -30,7 +30,7 @@ module TestCentricity
30
30
  # Declare and instantiate a generic UI Element for this page section.
31
31
  #
32
32
  # @param element_name [Symbol] name of UI object (as a symbol)
33
- # @param locator [String] css selector or xpath expression that uniquely identifies object
33
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
34
34
  # @example
35
35
  # element :undo_record_item, "//li[@rn='Undo Record']/a"
36
36
  # element :basket_header, "div.basket_header"
@@ -42,7 +42,7 @@ module TestCentricity
42
42
  # Declare and instantiate a button UI Element for this page section.
43
43
  #
44
44
  # @param element_name [Symbol] name of button object (as a symbol)
45
- # @param locator [String] css selector or xpath expression that uniquely identifies object
45
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
46
46
  # @example
47
47
  # button :checkout_button, "button.checkout_button"
48
48
  # button :login_button, "//input[@id='submit_button']"
@@ -54,10 +54,10 @@ module TestCentricity
54
54
  # Declare and instantiate a text field UI Element for this page section.
55
55
  #
56
56
  # @param element_name [Symbol] name of text field object (as a symbol)
57
- # @param locator [String] css selector or xpath expression that uniquely identifies object
57
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
58
58
  # @example
59
59
  # textfield :user_id_field, "//input[@id='UserName']"
60
- # textfield :password_field, "consumer_password"
60
+ # textfield :password_field, "#consumer_password"
61
61
  #
62
62
  def self.textfield(element_name, locator)
63
63
  class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::TextField.new(self, "#{locator}", :section);end))
@@ -66,31 +66,33 @@ module TestCentricity
66
66
  # Declare and instantiate a checkbox UI Element for this page section.
67
67
  #
68
68
  # @param element_name [Symbol] name of checkbox object (as a symbol)
69
- # @param locator [String] css selector or xpath expression that uniquely identifies object
69
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
70
+ # @param proxy [Symbol] Optional name (as a symbol) of proxy object to receive click actions
70
71
  # @example
71
72
  # checkbox :remember_checkbox, "//input[@id='RememberUser']"
72
- # checkbox :accept_terms_checkbox, "accept_terms_conditions"
73
+ # checkbox :accept_terms_checkbox, "#accept_terms_conditions", :accept_terms_label
73
74
  #
74
- def self.checkbox(element_name, locator)
75
- class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :section);end))
75
+ def self.checkbox(element_name, locator, proxy = nil)
76
+ class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :section, #{proxy});end))
76
77
  end
77
78
 
78
79
  # Declare and instantiate a radio button UI Element for this page section.
79
80
  #
80
81
  # @param element_name [Symbol] name of radio object (as a symbol)
81
- # @param locator [String] css selector or xpath expression that uniquely identifies object
82
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
83
+ # @param proxy [Symbol] Optional name (as a symbol) of proxy object to receive click actions
82
84
  # @example
83
85
  # radio :accept_terms_radio, "//input[@id='Accept_Terms']"
84
- # radio :decline_terms_radio, "decline_terms_conditions"
86
+ # radio :decline_terms_radio, "#decline_terms_conditions", :decline_terms_label
85
87
  #
86
- def self.radio(element_name, locator)
87
- class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::Radio.new(self, "#{locator}", :section);end))
88
+ def self.radio(element_name, locator, proxy = nil)
89
+ class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::Radio.new(self, "#{locator}", :section, #{proxy});end))
88
90
  end
89
91
 
90
92
  # Declare and instantiate a label UI Element for this page section.
91
93
  #
92
94
  # @param element_name [Symbol] name of label object (as a symbol)
93
- # @param locator [String] css selector or xpath expression that uniquely identifies object
95
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
94
96
  # @example
95
97
  # label :welcome_label, 'div.Welcome'
96
98
  # label :rollup_price_label, "//div[contains(@id, 'Rollup Item Price')]"
@@ -102,7 +104,7 @@ module TestCentricity
102
104
  # Declare and instantiate a link UI Element for this page section.
103
105
  #
104
106
  # @param element_name [Symbol] name of link object (as a symbol)
105
- # @param locator [String] css selector or xpath expression that uniquely identifies object
107
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
106
108
  # @example
107
109
  # link :registration_link, "a.account-nav__link.register"
108
110
  # link :shopping_basket_link, "//a[@href='shopping_basket']"
@@ -114,7 +116,7 @@ module TestCentricity
114
116
  # Declare and instantiate a table UI Element for this page section.
115
117
  #
116
118
  # @param element_name [Symbol] name of table object (as a symbol)
117
- # @param locator [String] css selector or xpath expression that uniquely identifies object
119
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
118
120
  # @example
119
121
  # table :payments_table, "//table[@class='payments_table']"
120
122
  #
@@ -125,9 +127,9 @@ module TestCentricity
125
127
  # Declare and instantiate a select list UI Element for this page section.
126
128
  #
127
129
  # @param element_name [Symbol] name of select list object (as a symbol)
128
- # @param locator [String] css selector or xpath expression that uniquely identifies object
130
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
129
131
  # @example
130
- # selectlist :category_selector, "search_form_category_chosen"
132
+ # selectlist :category_selector, "#search_form_category_chosen"
131
133
  # selectlist :gender_select, "//select[@id='customer_gender']"
132
134
  #
133
135
  def self.selectlist(element_name, locator)
@@ -137,7 +139,7 @@ module TestCentricity
137
139
  # Declare and instantiate an image UI Element for this page section.
138
140
  #
139
141
  # @param element_name [Symbol] name of image object (as a symbol)
140
- # @param locator [String] css selector or xpath expression that uniquely identifies object
142
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
141
143
  # @example
142
144
  # image :basket_item_image, "div.product_image"
143
145
  # image :corporate_logo_image, "//img[@alt='MyCompany_logo']"
@@ -149,7 +151,7 @@ module TestCentricity
149
151
  # Declare and instantiate a File Field UI Element for this page section.
150
152
  #
151
153
  # @param element_name [Symbol] name of file field object (as a symbol)
152
- # @param locator [String] css selector or xpath expression that uniquely identifies object
154
+ # @param locator [String] CSS selector or XPath expression that uniquely identifies object
153
155
  # @example
154
156
  # filefield :attach_file, "s_SweFileName"
155
157
  #
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '0.9.1.1'
2
+ VERSION = '0.9.2'
3
3
  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: 0.9.1.1
4
+ version: 0.9.2
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: 2016-05-12 00:00:00.000000000 Z
11
+ date: 2016-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project:
217
- rubygems_version: 2.2.2
217
+ rubygems_version: 2.5.1
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: A Page Object and Data Object Model Framework for desktop and mobile web