testcentricity_web 3.2.18 → 3.2.23

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
  SHA256:
3
- metadata.gz: 66918a3be374c63099e336a72f1268a4c88731665b88a4312d7404e5117d5bb5
4
- data.tar.gz: 58bf51382e66e4ea862ddf46256a5835e3fabf3dd2acb112b36fa37902f3521f
3
+ metadata.gz: 201a3a1fe2a5b1283ab8a737e74926b33499996716889284fe01b529ae139ea5
4
+ data.tar.gz: d34074fd5d9a2f3c651a70dca4dd0698bf4213033df533804ec3d6cd3e834b54
5
5
  SHA512:
6
- metadata.gz: 9d851b338d770021602a109ea3271a8a6e027b24abe42fe94c0c0411996c014eead5ac55c526008ebcab53fe78e76c80e4b11f1483b066533f3983fcbcc37ac8
7
- data.tar.gz: c8e421a8ef6b136814c8a7b78c590659d7ab4258ea60fccec602465fe03f18ccb2da2de02663509113b637ae5d4bd6c771b47f6c04ba48b5df6d9fad7b2006fa
6
+ metadata.gz: 421f09ad690ae3edbab6ac272d80e6e9839d7cd2651323419dbc0b3226839a3b370fce2d5e1900ccf6fc8aac6c441e0b7f1167022f0b908effabaac6d3b94f48
7
+ data.tar.gz: d1c0c2cc3d8225515d9305be4a26ad13ccc6ef00bd05ac9d4328db9e5251e85d2a8872866d702e72b535b4da0978c83c05f3c86be24124adf8e718aa7dd4ca40
data/CHANGELOG.md CHANGED
@@ -1,6 +1,37 @@
1
1
  # CHANGELOG
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+
5
+ ## [3.2.23] - 11-FEB-2021
6
+
7
+ ### Changed
8
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to allow `:translate_upcase`,
9
+ `:translate_downcase`, `:translate_capitalize`, and `:translate_titlecase` conversions to fall back to `:en` default
10
+ locale if translated strings are missing from the current locale specified in `I18n.locale`.
11
+
12
+ ## [3.2.22] - 09-FEB-2021
13
+
14
+ ### Fixed
15
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to correctly handle `:translate_upcase`,
16
+ `:translate_downcase`, `:translate_capitalize`, and `:translate_titlecase` conversions for Arrays of `String`.
17
+
18
+ ## [3.2.21] - 04-FEB-2021
19
+
20
+ ### Changed
21
+ * `UIElement.hover_at` method now accepts an optional `visible` parameter to allow hovering over UI elements that are not
22
+ visible.
23
+
24
+ ## [3.2.20] - 21-JAN-2021
25
+
26
+ ### Changed
27
+ * `UIElement.hover` method now accepts an optional `visible` parameter to allow hovering over UI elements that are not
28
+ visible.
29
+
30
+ ## [3.2.19] - 05-JAN-2021
31
+
32
+ ### Fixed
33
+ * `SelectList.choose_option` and `SelectList.get_options` methods now wait up to 5 seconds for list drop menu to appear.
34
+
4
35
  ## [3.2.18] - 12-AUG-2020
5
36
 
6
37
  ### Fixed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testcentricity_web (3.2.18)
4
+ testcentricity_web (3.2.23)
5
5
  appium_lib
6
6
  browserstack-local
7
7
  capybara (>= 3.1, < 4)
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2020, Tony Mrozinski
1
+ Copyright (c) 2014-2021, Tony Mrozinski
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -1673,7 +1673,7 @@ landscape orientation running on the BrowserStack service:
1673
1673
 
1674
1674
  ## Copyright and License
1675
1675
 
1676
- TestCentricity™ Framework is Copyright (c) 2014-2020, Tony Mrozinski.
1676
+ TestCentricity™ Framework is Copyright (c) 2014-2021, Tony Mrozinski.
1677
1677
  All rights reserved.
1678
1678
 
1679
1679
  Redistribution and use in source and binary forms, with or without
@@ -76,20 +76,31 @@ module TestCentricity
76
76
  expected = expected.downcase
77
77
  enqueue_exception("#{error_msg} be like '#{value}' but found '#{actual}'") unless actual_like.include?(expected)
78
78
  when :translate
79
- expected = I18n.t(value)
79
+ expected = translate(value)
80
80
  enqueue_assert_equal(expected, actual, error_msg)
81
81
  when :translate_upcase
82
- expected = I18n.t(value).upcase
82
+ expected = translate(value)
83
+ expected = expected.is_a?(Array) ? expected.map(&:upcase) : expected.upcase
83
84
  enqueue_assert_equal(expected, actual, error_msg)
84
85
  when :translate_downcase
85
- expected = I18n.t(value).downcase
86
+ expected = translate(value)
87
+ expected = expected.is_a?(Array) ? expected.map(&:downcase) : expected.downcase
86
88
  enqueue_assert_equal(expected, actual, error_msg)
87
89
  when :translate_capitalize
88
- expected = I18n.t(value).capitalize
90
+ expected = translate(value)
91
+ expected = expected.is_a?(Array) ? expected.map(&:capitalize) : expected.capitalize
89
92
  enqueue_assert_equal(expected, actual, error_msg)
90
93
  when :translate_titlecase
91
- expected = I18n.t(value)
92
- expected = "#{expected.split.each{ |expected| expected.capitalize! }.join(' ')}"
94
+ expected = translate(value)
95
+ expected = if expected.is_a?(Array)
96
+ result = []
97
+ expected.each do |item|
98
+ result.push("#{item.split.each{ |item| item.capitalize! }.join(' ')}")
99
+ end
100
+ result
101
+ else
102
+ "#{expected.split.each{ |expected| expected.capitalize! }.join(' ')}"
103
+ end
93
104
  enqueue_assert_equal(expected, actual, error_msg)
94
105
  end
95
106
  end
@@ -126,6 +137,29 @@ module TestCentricity
126
137
  screen_shot = {path: path, filename: filename}
127
138
  Environ.save_screen_shot(screen_shot)
128
139
  end
140
+
141
+ def self.translate(*args, **opts)
142
+ opts[:locale] ||= I18n.locale
143
+ opts[:raise] = true
144
+ I18n.translate(*args, **opts)
145
+ rescue I18n::MissingTranslationData => err
146
+ puts err
147
+ opts[:locale] = :en
148
+
149
+ # fallback to en if the translation is missing. If the translation isn't
150
+ # in en, then raise again.
151
+ disable_enforce_available_locales do
152
+ I18n.translate(*args, **opts)
153
+ end
154
+ end
155
+
156
+ def self.disable_enforce_available_locales
157
+ saved_enforce_available_locales = I18n.enforce_available_locales
158
+ I18n.enforce_available_locales = false
159
+ yield
160
+ ensure
161
+ I18n.enforce_available_locales = saved_enforce_available_locales
162
+ end
129
163
  end
130
164
 
131
165
 
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '3.2.18'
2
+ VERSION = '3.2.23'
3
3
  end
@@ -68,7 +68,7 @@ module TestCentricity
68
68
 
69
69
  unless @options_list.nil?
70
70
  find_component(@options_list, 'drop menu')
71
- raise "Could not find option #{option} to choose" unless first(:css, @list_item, minimum: 0, wait: 2)
71
+ raise "Could not find option #{option} to choose" unless first(:css, @list_item, minimum: 0, wait: 5)
72
72
 
73
73
  if option.is_a?(Array)
74
74
  option.each do |item|
@@ -344,7 +344,7 @@ module TestCentricity
344
344
  element = @base_object.find(:css, component, minimum: 0, wait: 1)
345
345
  rescue
346
346
  begin
347
- element = page.find(:css, component, minimum: 0, wait: 1)
347
+ element = page.find(:css, component, minimum: 0, wait: 5)
348
348
  rescue
349
349
  raise "List #{component_name} (#{component}) for selectlist named '#{@name}' (#{locator}) not found"
350
350
  end
@@ -528,11 +528,17 @@ module TestCentricity
528
528
 
529
529
  # Hover the cursor over an object
530
530
  #
531
+ # @param visible [Boolean, Symbol] Only find elements with the specified visibility:
532
+ # * true - only finds visible elements.
533
+ # * false - finds invisible _and_ visible elements.
534
+ # * :all - same as false; finds visible and invisible elements.
535
+ # * :hidden - only finds invisible elements.
536
+ # * :visible - same as true; only finds visible elements.
531
537
  # @example
532
538
  # basket_link.hover
533
539
  #
534
- def hover
535
- obj, type = find_element
540
+ def hover(visible = true)
541
+ obj, type = find_element(visible)
536
542
  object_not_found_exception(obj, type)
537
543
  obj.hover
538
544
  end
@@ -541,11 +547,17 @@ module TestCentricity
541
547
  #
542
548
  # @param x [Integer] X offset
543
549
  # @param y [Integer] Y offset
550
+ # @param visible [Boolean, Symbol] Only find elements with the specified visibility:
551
+ # * true - only finds visible elements.
552
+ # * false - finds invisible _and_ visible elements.
553
+ # * :all - same as false; finds visible and invisible elements.
554
+ # * :hidden - only finds invisible elements.
555
+ # * :visible - same as true; only finds visible elements.
544
556
  # @example
545
557
  # timeline_bar.hover_at(100, 5)
546
558
  #
547
- def hover_at(x, y)
548
- obj, = find_element
559
+ def hover_at(x, y, visible = true)
560
+ obj, = find_element(visible)
549
561
  raise "UI #{object_ref_message} not found" unless obj
550
562
  obj.hover_at(x, y)
551
563
  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: 3.2.18
4
+ version: 3.2.23
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: 2020-08-13 00:00:00.000000000 Z
11
+ date: 2021-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler