testcentricity_web 0.6.7 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -3
- data/lib/testcentricity_web/elements/checkbox.rb +18 -0
- data/lib/testcentricity_web/elements/radio.rb +55 -0
- data/lib/testcentricity_web/page_objects_helper.rb +12 -0
- data/lib/testcentricity_web/page_sections_helper.rb +13 -1
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/webdriver_helper.rb +1 -1
- data/lib/testcentricity_web.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cb0e1a1851e2ac0feb4df8e4f1b0b80b7b7f2d4
|
4
|
+
data.tar.gz: 35ac1c8ade715fdd4ed7b1157caa297561b8e0a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 653539ce697349cc81341c96669abc6cb647e687fa630bc79c57acc844892a667c871d771673501c71b6427b25ad570142d6c0b570c28f9827ba1b3739432043
|
7
|
+
data.tar.gz: 6305c88271b41331e3dfca4fffd697c8b4223b69a03bc8821523dd0d3fbd98ad2d289922af589c600a7c5241202d00f143a7d5789730b3ea25e52d6c42768b31
|
data/README.md
CHANGED
@@ -4,8 +4,9 @@ The TestCentricity™ core generic framework for desktop and mobile web site tes
|
|
4
4
|
use with Cucumber, Capybara, and Selenium-Webdriver.
|
5
5
|
|
6
6
|
The TestCentricity™ web gem supports running testing against the following web test targets:
|
7
|
+
|
7
8
|
* locally hosted desktop browsers (Firefox, Chrome, Safari, IE, or Edge)
|
8
|
-
* locally hosted emulated iOS and
|
9
|
+
* locally hosted emulated iOS, Android, and Windows Phone mobile browsers (using Firefox)
|
9
10
|
* a "headless" browser (using Poltergeist and PhantomJS)
|
10
11
|
* cloud hosted desktop or mobile web browsers using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services.
|
11
12
|
|
@@ -345,8 +346,9 @@ For locally hosted desktop web browsers, the `WEB_BROWSER` Environment Variable
|
|
345
346
|
|
346
347
|
### Locally hosted emulated mobile web browser
|
347
348
|
|
348
|
-
You can also run your tests against emulated mobile device browsers within a locally hosted instance of the Firefox desktop browser.
|
349
|
-
|
349
|
+
You can also run your tests against emulated mobile device browsers within a locally hosted instance of the Firefox desktop browser. The specified
|
350
|
+
mobile browser's user agent and default screen resolution and orientation will be automatically be set in the local Firefox browser instance. You
|
351
|
+
may even specify the emulated device's screen orientation. For locally hosted emulated mobile web browsers, the `WEB_BROWSER` Environment Variable
|
350
352
|
must be set to one of the values from the table below:
|
351
353
|
|
352
354
|
`WEB_BROWSER` |
|
@@ -360,6 +362,8 @@ must be set to one of the values from the table below:
|
|
360
362
|
`iphone6_plus` |
|
361
363
|
`android_phone` |
|
362
364
|
`android_tablet` |
|
365
|
+
`windows_phone7` |
|
366
|
+
`windows_phone8` |
|
363
367
|
|
364
368
|
To specify the emulated device's screen orientation, you set the `ORIENTATION` Environment Variable to either `portrait` or `landscape`.
|
365
369
|
|
@@ -526,6 +530,8 @@ replace the placeholder text with your user account and authorization code for t
|
|
526
530
|
iphone6_plus: WEB_BROWSER=iphone6_plus <%= mobile %>
|
527
531
|
android_phone: WEB_BROWSER=android_phone <%= mobile %>
|
528
532
|
android_tablet: WEB_BROWSER=android_tablet <%= mobile %>
|
533
|
+
windows_phone7: WEB_BROWSER=windows_phone7 <%= mobile %>
|
534
|
+
windows_phone8: WEB_BROWSER=windows_phone8 <%= mobile %>
|
529
535
|
|
530
536
|
|
531
537
|
#==============
|
@@ -34,6 +34,24 @@ module TestCentricity
|
|
34
34
|
obj.set(state)
|
35
35
|
end
|
36
36
|
|
37
|
+
# Set the check state of a checkbox object.
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# remember_me_checkbox.check
|
41
|
+
#
|
42
|
+
def check
|
43
|
+
set_checkbox_state(true)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Uncheck a checkbox object.
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# remember_me_checkbox.uncheck
|
50
|
+
#
|
51
|
+
def uncheck
|
52
|
+
set_checkbox_state(false)
|
53
|
+
end
|
54
|
+
|
37
55
|
def verify_check_state(state, enqueue = false)
|
38
56
|
actual = checked?
|
39
57
|
enqueue ?
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module TestCentricity
|
2
|
+
class Radio < UIElement
|
3
|
+
|
4
|
+
def initialize(parent, locator, context)
|
5
|
+
@parent = parent
|
6
|
+
@locator = locator
|
7
|
+
@context = context
|
8
|
+
@type = :radio
|
9
|
+
@alt_locator = nil
|
10
|
+
end
|
11
|
+
|
12
|
+
# Is radio button selected?
|
13
|
+
#
|
14
|
+
# @return [Boolean]
|
15
|
+
# @example
|
16
|
+
# accept_terms_radio.selected?
|
17
|
+
#
|
18
|
+
def selected?
|
19
|
+
obj, _ = find_element
|
20
|
+
object_not_found_exception(obj, 'Radio')
|
21
|
+
obj.checked?
|
22
|
+
end
|
23
|
+
|
24
|
+
# Set the select state of a radio button object.
|
25
|
+
#
|
26
|
+
# @param state [Boolean] true = selected / false = unselected
|
27
|
+
# @example
|
28
|
+
# accept_terms_radio.set_selected_state(true)
|
29
|
+
#
|
30
|
+
def set_selected_state(state)
|
31
|
+
obj, _ = find_element
|
32
|
+
object_not_found_exception(obj, 'Radio')
|
33
|
+
invalid_object_type_exception(obj, 'radio')
|
34
|
+
obj.set(state)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Set the selected state of a radio button object.
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# accept_terms_radio.select
|
41
|
+
#
|
42
|
+
def select
|
43
|
+
set_selected_state(true)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Unselect a radio button object.
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# accept_terms_radio.unselect
|
50
|
+
#
|
51
|
+
def unselect
|
52
|
+
set_selected_state(false)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -67,6 +67,18 @@ module TestCentricity
|
|
67
67
|
class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :page);end))
|
68
68
|
end
|
69
69
|
|
70
|
+
# Declare and instantiate a radio button UI Element for this page object.
|
71
|
+
#
|
72
|
+
# @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
|
+
# @example
|
75
|
+
# radio :accept_terms_radio, "//input[@id='Accept_Terms']"
|
76
|
+
# radio :decline_terms_radio, "decline_terms_conditions"
|
77
|
+
#
|
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
|
+
end
|
81
|
+
|
70
82
|
# Declare and instantiate a label UI Element for this page object.
|
71
83
|
#
|
72
84
|
# @param element_name [Symbol] name of label object (as a symbol)
|
@@ -75,6 +75,18 @@ module TestCentricity
|
|
75
75
|
class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::CheckBox.new(self, "#{locator}", :section);end))
|
76
76
|
end
|
77
77
|
|
78
|
+
# Declare and instantiate a radio button UI Element for this page section.
|
79
|
+
#
|
80
|
+
# @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
|
+
# @example
|
83
|
+
# radio :accept_terms_radio, "//input[@id='Accept_Terms']"
|
84
|
+
# radio :decline_terms_radio, "decline_terms_conditions"
|
85
|
+
#
|
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
|
+
end
|
89
|
+
|
78
90
|
# Declare and instantiate a label UI Element for this page section.
|
79
91
|
#
|
80
92
|
# @param element_name [Symbol] name of label object (as a symbol)
|
@@ -134,7 +146,7 @@ module TestCentricity
|
|
134
146
|
class_eval(%Q(def #{element_name.to_s};@#{element_name.to_s} ||= TestCentricity::Image.new(self, "#{locator}", :section);end))
|
135
147
|
end
|
136
148
|
|
137
|
-
# Declare and instantiate a File Field UI Element for this page
|
149
|
+
# Declare and instantiate a File Field UI Element for this page section.
|
138
150
|
#
|
139
151
|
# @param element_name [Symbol] name of file field object (as a symbol)
|
140
152
|
# @param locator [String] css selector or xpath expression that uniquely identifies object
|
@@ -51,7 +51,7 @@ module TestCentricity
|
|
51
51
|
case browser.downcase.to_sym
|
52
52
|
when :firefox, :chrome, :ie, :safari, :edge
|
53
53
|
Capybara::Selenium::Driver.new(app, :browser => browser.to_sym)
|
54
|
-
when :iphone, :iphone5, :iphone6, :iphone6_plus, :ipad, :ipad_pro, :android_phone, :android_tablet
|
54
|
+
when :iphone, :iphone5, :iphone6, :iphone6_plus, :ipad, :ipad_pro, :android_phone, :android_tablet, :windows_phone7, :windows_phone8
|
55
55
|
Environ.set_platform(:mobile)
|
56
56
|
profile = Selenium::WebDriver::Firefox::Profile.new
|
57
57
|
profile['general.useragent.override'] = Browsers.mobile_device_agent(browser)
|
data/lib/testcentricity_web.rb
CHANGED
@@ -23,6 +23,7 @@ require 'testcentricity_web/elements/file_field'
|
|
23
23
|
require 'testcentricity_web/elements/image'
|
24
24
|
require 'testcentricity_web/elements/label'
|
25
25
|
require 'testcentricity_web/elements/link'
|
26
|
+
require 'testcentricity_web/elements/radio'
|
26
27
|
require 'testcentricity_web/elements/select_list'
|
27
28
|
require 'testcentricity_web/elements/table'
|
28
29
|
require 'testcentricity_web/elements/textfield'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- lib/testcentricity_web/elements/image.rb
|
177
177
|
- lib/testcentricity_web/elements/label.rb
|
178
178
|
- lib/testcentricity_web/elements/link.rb
|
179
|
+
- lib/testcentricity_web/elements/radio.rb
|
179
180
|
- lib/testcentricity_web/elements/select_list.rb
|
180
181
|
- lib/testcentricity_web/elements/table.rb
|
181
182
|
- lib/testcentricity_web/elements/textfield.rb
|