testcentricity_web 0.9.1.1 → 0.9.2

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