testcentricity_web 3.0.19.1 → 3.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +14 -12
- data/README.md +17 -11
- data/lib/testcentricity_web/exception_queue_helper.rb +6 -1
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/page_objects_helper.rb +7 -1
- data/lib/testcentricity_web/web_core/page_sections_helper.rb +7 -1
- data/lib/testcentricity_web/web_core/webdriver_helper.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3b8fe8d95173d598c24d3537c293f21da627eb0
|
4
|
+
data.tar.gz: 58de63e3525101ce846970603a55a89323d4d055
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2051e9f2f1c2b0abafa66cac87a325cf4f2c426e4a167028d8cba15cd2098e9a2c0f7f11e17340e5169772e04a1773a8129c72b961999f8b37aa6d89d5fe600e
|
7
|
+
data.tar.gz: ccea7de027af0c5655a536d22395ef4987954b202995d66aea1c0a638bde1db9a5d0ca4bb9b4f611acfde8509cd29ddba6ea96183e21f2c8150b43fdb4bccdd2
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
4
|
|
5
|
+
## [3.0.20] - 2018-11-08
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
* `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods now ignore case and whitespace when verifying text
|
9
|
+
captions and values when running tests against Microsoft Edge browsers to accommodate known Edge WebDriver [Issue #11322543](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11322543/).
|
10
|
+
* Updated `PageObject.populate_data_fields` and `PageSection.populate_data_fields` methods to accept optional `integrity_check` parameter.
|
11
|
+
|
12
|
+
|
5
13
|
## [3.0.19] - 2018-10-10
|
6
14
|
|
7
15
|
### Added
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
testcentricity_web (3.0.
|
4
|
+
testcentricity_web (3.0.20)
|
5
5
|
appium_lib
|
6
6
|
browserstack-local
|
7
7
|
capybara (>= 3.1, < 4)
|
@@ -20,25 +20,26 @@ GEM
|
|
20
20
|
specs:
|
21
21
|
addressable (2.5.2)
|
22
22
|
public_suffix (>= 2.0.2, < 4.0)
|
23
|
-
appium_lib (9.15.
|
23
|
+
appium_lib (9.15.2)
|
24
24
|
appium_lib_core (~> 2.0.0)
|
25
25
|
nokogiri (~> 1.8, >= 1.8.1)
|
26
26
|
tomlrb (~> 1.1)
|
27
|
-
appium_lib_core (2.0.
|
27
|
+
appium_lib_core (2.0.6)
|
28
28
|
faye-websocket (~> 0.10.0)
|
29
|
-
selenium-webdriver (~> 3.14.1)
|
29
|
+
selenium-webdriver (~> 3.14, >= 3.14.1)
|
30
30
|
browserstack-local (1.3.0)
|
31
|
-
capybara (3.
|
31
|
+
capybara (3.10.1)
|
32
32
|
addressable
|
33
33
|
mini_mime (>= 0.1.3)
|
34
34
|
nokogiri (~> 1.8)
|
35
35
|
rack (>= 1.6.0)
|
36
36
|
rack-test (>= 0.6.3)
|
37
|
-
|
37
|
+
regexp_parser (~> 1.2)
|
38
|
+
xpath (~> 3.2)
|
38
39
|
childprocess (0.9.0)
|
39
40
|
ffi (~> 1.0, >= 1.0.11)
|
40
41
|
chronic (0.10.2)
|
41
|
-
concurrent-ruby (1.
|
42
|
+
concurrent-ruby (1.1.3)
|
42
43
|
eventmachine (1.2.7)
|
43
44
|
faker (1.9.1)
|
44
45
|
i18n (>= 0.7)
|
@@ -46,7 +47,7 @@ GEM
|
|
46
47
|
eventmachine (>= 0.12.0)
|
47
48
|
websocket-driver (>= 0.5.1)
|
48
49
|
ffi (1.9.25)
|
49
|
-
i18n (1.1.
|
50
|
+
i18n (1.1.1)
|
50
51
|
concurrent-ruby (~> 1.0)
|
51
52
|
mini_mime (1.0.1)
|
52
53
|
mini_portile2 (2.3.0)
|
@@ -55,14 +56,15 @@ GEM
|
|
55
56
|
os (1.0.0)
|
56
57
|
power_assert (1.1.3)
|
57
58
|
public_suffix (3.0.3)
|
58
|
-
rack (2.0.
|
59
|
+
rack (2.0.6)
|
59
60
|
rack-test (1.1.0)
|
60
61
|
rack (>= 1.0, < 3)
|
61
62
|
rake (11.1.2)
|
62
63
|
redcarpet (3.3.4)
|
64
|
+
regexp_parser (1.2.0)
|
63
65
|
ruby-ole (1.2.12.1)
|
64
66
|
rubyzip (1.2.2)
|
65
|
-
selenium-webdriver (3.
|
67
|
+
selenium-webdriver (3.141.0)
|
66
68
|
childprocess (~> 0.5)
|
67
69
|
rubyzip (~> 1.2, >= 1.2.2)
|
68
70
|
spreadsheet (1.1.7)
|
@@ -70,14 +72,14 @@ GEM
|
|
70
72
|
test-unit (3.2.8)
|
71
73
|
power_assert
|
72
74
|
tomlrb (1.2.7)
|
73
|
-
webdrivers (3.4.
|
75
|
+
webdrivers (3.4.3)
|
74
76
|
nokogiri (~> 1.6)
|
75
77
|
rubyzip (~> 1.0)
|
76
78
|
selenium-webdriver (~> 3.0)
|
77
79
|
websocket-driver (0.7.0)
|
78
80
|
websocket-extensions (>= 0.1.0)
|
79
81
|
websocket-extensions (0.1.3)
|
80
|
-
xpath (3.
|
82
|
+
xpath (3.2.0)
|
81
83
|
nokogiri (~> 1.8)
|
82
84
|
|
83
85
|
PLATFORMS
|
data/README.md
CHANGED
@@ -718,14 +718,15 @@ To maximize a desktop browser window, you set the `BROWSER_SIZE` Environment Var
|
|
718
718
|
File download functionality can be tested with locally hosted instances of Chrome or Firefox desktop browsers. Your automation project must include
|
719
719
|
a `/downloads` folder at the same level as the `/config` and `/features` folders, as depicted below:
|
720
720
|
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
721
|
+
my_automation_project
|
722
|
+
├── config
|
723
|
+
├── downloads
|
724
|
+
├── features
|
725
|
+
│ ├── step_definitions
|
726
|
+
│ ├── support
|
727
|
+
│ └── test_data
|
728
|
+
├── Gemfile
|
729
|
+
└── README.md
|
729
730
|
|
730
731
|
|
731
732
|
When testing file downloads using a local instance of Firefox, you will need to specify the MIME types of the various file types that your tests will
|
@@ -844,7 +845,7 @@ Once your test environment is properly configured, the following **Environment V
|
|
844
845
|
### Mobile Chrome or Android browsers on Android Studio Virtual Device emulators
|
845
846
|
|
846
847
|
You can run your mobile web tests against the mobile Chrome or Android browser on emulated Android devices using Appium and Android Studio on OS X. You
|
847
|
-
must install Android Studio, the desired Android version-specific virtual device emulators, and Appium. Refer to [this page](
|
848
|
+
must install Android Studio, the desired Android version-specific virtual device emulators, and Appium. Refer to [this page](http://appium.io/docs/en/drivers/android-uiautomator2/index.html)
|
848
849
|
for information on configuring Appium to work with the Android SDK. You must also ensure that the `appium_capybara` gem is installed and required as
|
849
850
|
described in **section 3.3 (Setup - Using Appium)** above.
|
850
851
|
|
@@ -898,7 +899,7 @@ for information regarding the specific capabilities.
|
|
898
899
|
`BROWSER_SIZE` | [Optional] Specify width, height of browser window
|
899
900
|
`RECORD_VIDEO` | [Optional] Enable screen video recording during test execution (`true` or `false`)
|
900
901
|
`TIME_ZONE` | [Optional] Specify custom time zone. Refer to `browserstack.timezone` capability in chart
|
901
|
-
`IP_GEOLOCATION` | [Optional] Specify IP Geolocation. Refer to [IP Geolocation](https://www.browserstack.com/
|
902
|
+
`IP_GEOLOCATION` | [Optional] Specify IP Geolocation. Refer to [IP Geolocation](https://www.browserstack.com/ip-geolocation) to select a country code.
|
902
903
|
`SELENIUM_VERSION` | [Optional] Specify Selenium WebDriver version to use
|
903
904
|
`CONSOLE_LOGS` | [Optional] Used to capture browser console logs. Refer to `browserstack.console` capability in chart
|
904
905
|
`WD_VERSION` | [Optional] Specify browser-specific WebDriver version to use. Refer to `browserstack.geckodriver`, `browserstack.ie.driver`, and `browserstack.safari.driver` capabilities in chart
|
@@ -933,7 +934,7 @@ for information regarding the specific capabilities.
|
|
933
934
|
`ORIENTATION` | [Optional] Set to `portrait` or `landscape`
|
934
935
|
`RECORD_VIDEO` | [Optional] Enable screen video recording during test execution (`true` or `false`)
|
935
936
|
`TIME_ZONE` | [Optional] Specify custom time zone. Refer to `browserstack.timezone` capability in chart
|
936
|
-
`IP_GEOLOCATION` | [Optional] Specify IP Geolocation. Refer to [IP Geolocation](https://www.browserstack.com/
|
937
|
+
`IP_GEOLOCATION` | [Optional] Specify IP Geolocation. Refer to [IP Geolocation](https://www.browserstack.com/ip-geolocation) to select a country code.
|
937
938
|
`CONSOLE_LOGS` | [Optional] Used to capture browser console logs. Refer to `browserstack.console` capability in chart
|
938
939
|
|
939
940
|
|
@@ -1209,6 +1210,11 @@ text with the Subdomain specified on the Grid Configuration Parameters section o
|
|
1209
1210
|
bs_mobile: --profile browserstack <%= mobile %>
|
1210
1211
|
|
1211
1212
|
# BrowserStack OS X desktop browser profiles
|
1213
|
+
bs_macos_mojave: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="Mojave"
|
1214
|
+
bs_ff_mojave: --profile bs_macos_mojave BS_BROWSER="Firefox"
|
1215
|
+
bs_chrome_mojave: --profile bs_macos_mojave BS_BROWSER="Chrome"
|
1216
|
+
bs_safari_mojave: --profile bs_macos_mojave BS_BROWSER="Safari"
|
1217
|
+
|
1212
1218
|
bs_macos_high_sierra: --profile bs_desktop BS_OS="OS X" BS_OS_VERSION="High Sierra"
|
1213
1219
|
bs_ff_high_sierra: --profile bs_macos_high_sierra BS_BROWSER="Firefox"
|
1214
1220
|
bs_chrome_high_sierra: --profile bs_macos_high_sierra BS_BROWSER="Chrome"
|
@@ -7,7 +7,12 @@ module TestCentricity
|
|
7
7
|
attr_accessor :mru_ui_element
|
8
8
|
|
9
9
|
def self.enqueue_assert_equal(expected, actual, error_message)
|
10
|
-
|
10
|
+
is_equal = if %i[edge safari].include?(Environ.browser) && expected.is_a?(String) && actual.is_a?(String)
|
11
|
+
expected.downcase.strip == actual.downcase.strip
|
12
|
+
else
|
13
|
+
expected == actual
|
14
|
+
end
|
15
|
+
unless is_equal
|
11
16
|
enqueue("#{error_message} to be\n '#{expected}'\nbut found\n '#{actual}'")
|
12
17
|
enqueue_screenshot
|
13
18
|
end
|
@@ -729,6 +729,7 @@ module TestCentricity
|
|
729
729
|
#
|
730
730
|
# @param data [Hash] UI element(s) and associated data to be entered
|
731
731
|
# @param wait_time [Integer] wait time in seconds
|
732
|
+
# @param integrity_check [Boolean] if TRUE, ensure that text entered into text fields matches what was entered
|
732
733
|
# @example
|
733
734
|
# field_data = { prefix_select => 'Ms',
|
734
735
|
# first_name_field => 'Priscilla',
|
@@ -740,7 +741,7 @@ module TestCentricity
|
|
740
741
|
# }
|
741
742
|
# populate_data_fields(field_data)
|
742
743
|
#
|
743
|
-
def populate_data_fields(data, wait_time = nil)
|
744
|
+
def populate_data_fields(data, wait_time = nil, integrity_check = false)
|
744
745
|
timeout = wait_time.nil? ? 5 : wait_time
|
745
746
|
data.each do |data_field, data_param|
|
746
747
|
unless data_param.blank?
|
@@ -762,6 +763,11 @@ module TestCentricity
|
|
762
763
|
data_field.set_selected_state(data_param.to_bool)
|
763
764
|
when :textfield
|
764
765
|
data_field.set("#{data_param}\t")
|
766
|
+
if integrity_check && data_field.get_value != data_param
|
767
|
+
data_field.set('')
|
768
|
+
data_field.send_keys(data_param)
|
769
|
+
data_field.send_keys(:tab)
|
770
|
+
end
|
765
771
|
when :section
|
766
772
|
data_field.set(data_param)
|
767
773
|
end
|
@@ -930,6 +930,7 @@ module TestCentricity
|
|
930
930
|
#
|
931
931
|
# @param data [Hash] UI element(s) and associated data to be entered
|
932
932
|
# @param wait_time [Integer] wait time in seconds
|
933
|
+
# @param integrity_check [Boolean] if TRUE, ensure that text entered into text fields matches what was entered
|
933
934
|
# @example
|
934
935
|
# data = { prefix_select => 'Mr.',
|
935
936
|
# first_name_field => 'Ignatious',
|
@@ -941,7 +942,7 @@ module TestCentricity
|
|
941
942
|
# }
|
942
943
|
# populate_data_fields(data)
|
943
944
|
#
|
944
|
-
def populate_data_fields(data, wait_time = nil)
|
945
|
+
def populate_data_fields(data, wait_time = nil, integrity_check = false)
|
945
946
|
timeout = wait_time.nil? ? 5 : wait_time
|
946
947
|
data.each do |data_field, data_param|
|
947
948
|
unless data_param.blank?
|
@@ -963,6 +964,11 @@ module TestCentricity
|
|
963
964
|
data_field.set_selected_state(data_param.to_bool)
|
964
965
|
when :textfield
|
965
966
|
data_field.set("#{data_param}\t")
|
967
|
+
if integrity_check && data_field.get_value != data_param
|
968
|
+
data_field.set('')
|
969
|
+
data_field.send_keys(data_param)
|
970
|
+
data_field.send_keys(:tab)
|
971
|
+
end
|
966
972
|
when :section
|
967
973
|
data_field.set(data_param)
|
968
974
|
end
|
@@ -287,7 +287,7 @@ module TestCentricity
|
|
287
287
|
capabilities['project'] = ENV['AUTOMATE_PROJECT'] if ENV['AUTOMATE_PROJECT']
|
288
288
|
capabilities['build'] = ENV['AUTOMATE_BUILD'] if ENV['AUTOMATE_BUILD']
|
289
289
|
|
290
|
-
context_message = ENV['TEST_CONTEXT'] ? "#{Environ.test_environment} - #{ENV['TEST_CONTEXT']}" : Environ.test_environment
|
290
|
+
context_message = ENV['TEST_CONTEXT'] ? "#{Environ.test_environment.upcase} - #{ENV['TEST_CONTEXT']}" : Environ.test_environment.upcase
|
291
291
|
if ENV['PARALLEL']
|
292
292
|
thread_num = ENV['TEST_ENV_NUMBER']
|
293
293
|
thread_num = 1 if thread_num.blank?
|
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.0.
|
4
|
+
version: 3.0.20
|
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: 2018-
|
11
|
+
date: 2018-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|