watir 7.2.0 → 7.2.1

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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/chrome.yml +1 -1
  3. data/.github/workflows/edge.yml +1 -1
  4. data/.github/workflows/firefox.yml +1 -1
  5. data/.github/workflows/ie.yml +1 -1
  6. data/.github/workflows/safari.yml +1 -1
  7. data/.github/workflows/unit.yml +1 -1
  8. data/.rubocop.yml +25 -12
  9. data/.rubocop_todo.yml +8 -1
  10. data/CHANGES.md +6 -1
  11. data/LICENSE +2 -2
  12. data/lib/watir/capabilities.rb +1 -1
  13. data/lib/watir/locators/anchor/selector_builder.rb +3 -0
  14. data/lib/watir/locators/element/matcher.rb +2 -1
  15. data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +2 -1
  16. data/lib/watir/locators/text_field/matcher.rb +0 -4
  17. data/lib/watir/version.rb +1 -1
  18. data/spec/locator_spec_helper.rb +0 -8
  19. data/spec/unit/capabilities_spec.rb +553 -561
  20. data/spec/unit/element_locator_spec.rb +89 -78
  21. data/spec/unit/match_elements/button_spec.rb +69 -62
  22. data/spec/unit/match_elements/element_spec.rb +303 -309
  23. data/spec/unit/match_elements/text_field_spec.rb +76 -73
  24. data/spec/unit/selector_builder/anchor_spec.rb +39 -33
  25. data/spec/unit/selector_builder/button_spec.rb +209 -202
  26. data/spec/unit/selector_builder/cell_spec.rb +48 -42
  27. data/spec/unit/selector_builder/element_spec.rb +634 -627
  28. data/spec/unit/selector_builder/row_spec.rb +119 -113
  29. data/spec/unit/selector_builder/text_field_spec.rb +195 -188
  30. data/spec/unit/selector_builder/textarea_spec.rb +22 -14
  31. data/spec/unit/wait_spec.rb +85 -81
  32. data/spec/watirspec/adjacent_spec.rb +249 -247
  33. data/spec/watirspec/after_hooks_spec.rb +161 -159
  34. data/spec/watirspec/alert_spec.rb +61 -58
  35. data/spec/watirspec/browser_spec.rb +409 -409
  36. data/spec/watirspec/capabilities_spec.rb +89 -99
  37. data/spec/watirspec/cookies_spec.rb +120 -118
  38. data/spec/watirspec/drag_and_drop_spec.rb +26 -24
  39. data/spec/watirspec/element_hidden_spec.rb +66 -60
  40. data/spec/watirspec/elements/area_spec.rb +49 -47
  41. data/spec/watirspec/elements/areas_spec.rb +27 -25
  42. data/spec/watirspec/elements/button_spec.rb +253 -251
  43. data/spec/watirspec/elements/buttons_spec.rb +36 -34
  44. data/spec/watirspec/elements/checkbox_spec.rb +48 -36
  45. data/spec/watirspec/elements/checkboxes_spec.rb +29 -27
  46. data/spec/watirspec/elements/collections_spec.rb +126 -119
  47. data/spec/watirspec/elements/date_field_spec.rb +185 -183
  48. data/spec/watirspec/elements/date_fields_spec.rb +29 -27
  49. data/spec/watirspec/elements/date_time_field_spec.rb +197 -195
  50. data/spec/watirspec/elements/date_time_fields_spec.rb +30 -28
  51. data/spec/watirspec/elements/dd_spec.rb +87 -85
  52. data/spec/watirspec/elements/dds_spec.rb +27 -25
  53. data/spec/watirspec/elements/del_spec.rb +106 -104
  54. data/spec/watirspec/elements/dels_spec.rb +26 -24
  55. data/spec/watirspec/elements/div_spec.rb +225 -221
  56. data/spec/watirspec/elements/divs_spec.rb +37 -35
  57. data/spec/watirspec/elements/dl_spec.rb +110 -108
  58. data/spec/watirspec/elements/dls_spec.rb +28 -26
  59. data/spec/watirspec/elements/dt_spec.rb +86 -84
  60. data/spec/watirspec/elements/dts_spec.rb +27 -25
  61. data/spec/watirspec/elements/element_spec.rb +794 -775
  62. data/spec/watirspec/elements/elements_spec.rb +40 -38
  63. data/spec/watirspec/elements/em_spec.rb +62 -60
  64. data/spec/watirspec/elements/ems_spec.rb +28 -26
  65. data/spec/watirspec/elements/filefield_spec.rb +116 -114
  66. data/spec/watirspec/elements/filefields_spec.rb +28 -26
  67. data/spec/watirspec/elements/font_spec.rb +20 -18
  68. data/spec/watirspec/elements/form_spec.rb +51 -49
  69. data/spec/watirspec/elements/forms_spec.rb +29 -27
  70. data/spec/watirspec/elements/frame_spec.rb +89 -87
  71. data/spec/watirspec/elements/frames_spec.rb +27 -25
  72. data/spec/watirspec/elements/hidden_spec.rb +81 -79
  73. data/spec/watirspec/elements/hiddens_spec.rb +28 -26
  74. data/spec/watirspec/elements/hn_spec.rb +59 -57
  75. data/spec/watirspec/elements/hns_spec.rb +26 -24
  76. data/spec/watirspec/elements/iframe_spec.rb +195 -191
  77. data/spec/watirspec/elements/iframes_spec.rb +31 -29
  78. data/spec/watirspec/elements/image_spec.rb +148 -146
  79. data/spec/watirspec/elements/images_spec.rb +26 -24
  80. data/spec/watirspec/elements/input_spec.rb +9 -7
  81. data/spec/watirspec/elements/ins_spec.rb +106 -104
  82. data/spec/watirspec/elements/inses_spec.rb +26 -24
  83. data/spec/watirspec/elements/label_spec.rb +56 -54
  84. data/spec/watirspec/elements/labels_spec.rb +26 -24
  85. data/spec/watirspec/elements/li_spec.rb +76 -74
  86. data/spec/watirspec/elements/link_spec.rb +173 -177
  87. data/spec/watirspec/elements/links_spec.rb +45 -43
  88. data/spec/watirspec/elements/lis_spec.rb +27 -25
  89. data/spec/watirspec/elements/list_spec.rb +44 -42
  90. data/spec/watirspec/elements/map_spec.rb +57 -55
  91. data/spec/watirspec/elements/maps_spec.rb +27 -25
  92. data/spec/watirspec/elements/meta_spec.rb +16 -14
  93. data/spec/watirspec/elements/metas_spec.rb +26 -24
  94. data/spec/watirspec/elements/ol_spec.rb +56 -65
  95. data/spec/watirspec/elements/ols_spec.rb +26 -24
  96. data/spec/watirspec/elements/option_spec.rb +91 -89
  97. data/spec/watirspec/elements/p_spec.rb +81 -79
  98. data/spec/watirspec/elements/pre_spec.rb +77 -75
  99. data/spec/watirspec/elements/pres_spec.rb +26 -24
  100. data/spec/watirspec/elements/ps_spec.rb +26 -24
  101. data/spec/watirspec/elements/radio_spec.rb +251 -249
  102. data/spec/watirspec/elements/radios_spec.rb +28 -26
  103. data/spec/watirspec/elements/select_list_spec.rb +537 -526
  104. data/spec/watirspec/elements/select_lists_spec.rb +32 -30
  105. data/spec/watirspec/elements/span_spec.rb +112 -110
  106. data/spec/watirspec/elements/spans_spec.rb +26 -24
  107. data/spec/watirspec/elements/strong_spec.rb +58 -58
  108. data/spec/watirspec/elements/strongs_spec.rb +28 -26
  109. data/spec/watirspec/elements/table_spec.rb +192 -139
  110. data/spec/watirspec/elements/tables_spec.rb +28 -26
  111. data/spec/watirspec/elements/tbody_spec.rb +74 -72
  112. data/spec/watirspec/elements/tbodys_spec.rb +40 -38
  113. data/spec/watirspec/elements/td_spec.rb +66 -64
  114. data/spec/watirspec/elements/tds_spec.rb +41 -39
  115. data/spec/watirspec/elements/text_field_spec.rb +206 -204
  116. data/spec/watirspec/elements/text_fields_spec.rb +30 -28
  117. data/spec/watirspec/elements/textarea_spec.rb +20 -18
  118. data/spec/watirspec/elements/textareas_spec.rb +18 -16
  119. data/spec/watirspec/elements/tfoot_spec.rb +65 -63
  120. data/spec/watirspec/elements/tfoots_spec.rb +42 -40
  121. data/spec/watirspec/elements/thead_spec.rb +65 -63
  122. data/spec/watirspec/elements/theads_spec.rb +42 -40
  123. data/spec/watirspec/elements/tr_spec.rb +48 -46
  124. data/spec/watirspec/elements/trs_spec.rb +42 -40
  125. data/spec/watirspec/elements/ul_spec.rb +56 -54
  126. data/spec/watirspec/elements/uls_spec.rb +26 -24
  127. data/spec/watirspec/radio_set_spec.rb +269 -267
  128. data/spec/watirspec/screenshot_spec.rb +20 -18
  129. data/spec/watirspec/scroll_spec.rb +152 -148
  130. data/spec/watirspec/shadow_root_spec.rb +86 -83
  131. data/spec/watirspec/user_editable_spec.rb +200 -198
  132. data/spec/watirspec/wait_spec.rb +289 -295
  133. data/spec/watirspec/window_switching_spec.rb +422 -434
  134. data/spec/watirspec_helper.rb +1 -23
  135. data/watir.gemspec +5 -4
  136. metadata +44 -33
  137. data/spec/watirspec/attributes_spec.rb +0 -18
  138. data/spec/watirspec/elements/table_nesting_spec.rb +0 -51
  139. data/spec/watirspec/special_chars_spec.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e21571e92209dad62a8048886e0d383b0a2d8c720b2fa42cdb8d23c0f790a28
4
- data.tar.gz: 2ebaf5e9faf6aa665986cb333b264e29a1b3400438f8eabecdc91ec42ce640b3
3
+ metadata.gz: ec69631e8533b0c1f5a428fd9ae4e65ed1b6400d194f8d3ba7608de1e29704de
4
+ data.tar.gz: e45269a6afa488650533d56afd20d12ad542e9557b96b084c16c13db6b746bcf
5
5
  SHA512:
6
- metadata.gz: b631f01f18c1741b4949188ead10e9f42dd9e7f20853e6a11a4563c1cfeca71efd9cc4dc5d186ab9021f7b8134d73760519d34a765cd21498a4e454361d23ae9
7
- data.tar.gz: 433d5075795f765aa516811c956573670f97efe667e2fbadb7a41be9acc96ad3a85df712b21ed23f73dcd8c7f0f70a15ad1db2c4a888f3a92ab2a1380c6f0e8b
6
+ metadata.gz: c9dd6b62ab7a055f8dcf5630a387f9023ac3041934c0d14a41eb3812b300f73756ba298e0c81eb7a5cb7b4f2fd289249e945bf6bbe8500eb1097e903b08b3d05
7
+ data.tar.gz: ea9a050b5a5dd631fa6403c48f4cb641987a94f10b72e37d9afa6648f02f0eba2a5cb91fa795fefb5132e6b47fffe39d917216ab34bc29cca9174e1435fbb8dd
@@ -13,7 +13,7 @@ jobs:
13
13
  fail-fast: false
14
14
  matrix:
15
15
  os: [ubuntu-latest, macos-latest, windows-latest]
16
- ruby: [ 2.7, 3.1 ]
16
+ ruby: [ 2.7, 3.2 ]
17
17
  steps:
18
18
  - name: Checkout source tree
19
19
  uses: actions/checkout@v2
@@ -13,7 +13,7 @@ jobs:
13
13
  fail-fast: false
14
14
  matrix:
15
15
  os: [macos-latest, windows-latest]
16
- ruby: [ 2.7, 3.1 ]
16
+ ruby: [ 2.7, 3.2 ]
17
17
  steps:
18
18
  - name: Checkout source tree
19
19
  uses: actions/checkout@v2
@@ -13,7 +13,7 @@ jobs:
13
13
  fail-fast: false
14
14
  matrix:
15
15
  os: [ubuntu-latest, macos-latest, windows-latest]
16
- ruby: [ 2.7, 3.1 ]
16
+ ruby: [ 2.7, 3.2 ]
17
17
  steps:
18
18
  - name: Checkout source tree
19
19
  uses: actions/checkout@v2
@@ -12,7 +12,7 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- ruby: [ 2.7, 3.1 ]
15
+ ruby: [ 2.7, 3.2 ]
16
16
  steps:
17
17
  - name: Checkout source tree
18
18
  uses: actions/checkout@v2
@@ -12,7 +12,7 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- ruby: [ 2.7, 3.1 ]
15
+ ruby: [ 2.7, 3.2 ]
16
16
  steps:
17
17
  - name: Checkout source tree
18
18
  uses: actions/checkout@v2
@@ -33,7 +33,7 @@ jobs:
33
33
  strategy:
34
34
  fail-fast: false
35
35
  matrix:
36
- ruby: ['2.7', '3.0', '3.1']
36
+ ruby: ['2.7', '3.0', '3.1', '3.2', 'jruby-9.4.0.0', 'truffleruby-22.3.0']
37
37
  steps:
38
38
  - name: Checkout source tree
39
39
  uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -3,6 +3,7 @@ inherit_from: .rubocop_todo.yml
3
3
  require:
4
4
  - rubocop-performance
5
5
  - rubocop-rake
6
+ - rubocop-rspec
6
7
 
7
8
  AllCops:
8
9
  TargetRubyVersion: 2.7
@@ -14,10 +15,6 @@ AllCops:
14
15
  Layout/SpaceInsideHashLiteralBraces:
15
16
  EnforcedStyle: no_space
16
17
 
17
- Lint/UnifiedInteger:
18
- Exclude:
19
- - 'lib/watir/locators/element/selector_builder.rb'
20
-
21
18
  Metrics/AbcSize:
22
19
  Max: 22
23
20
  Exclude:
@@ -28,15 +25,10 @@ Metrics/AbcSize:
28
25
 
29
26
  Metrics/BlockLength:
30
27
  Exclude:
31
- - 'spec/**/*'
32
28
  - 'support/doctest_helper.rb'
33
29
  - 'watir.gemspec'
34
30
  - 'Rakefile'
35
31
 
36
- Metrics/ModuleLength:
37
- Exclude:
38
- - 'spec/**/*'
39
-
40
32
  Metrics/ClassLength:
41
33
  Max: 93
42
34
  Exclude:
@@ -50,6 +42,7 @@ Metrics/ClassLength:
50
42
  - 'lib/watir/elements/select.rb'
51
43
  - 'lib/watir/generator/base/spec_extractor.rb'
52
44
  - 'lib/watir/element_collection.rb'
45
+ - 'spec/**/*_spec.rb'
53
46
 
54
47
  Metrics/CyclomaticComplexity:
55
48
  Max: 9
@@ -61,14 +54,34 @@ Metrics/MethodLength:
61
54
  Max: 18
62
55
  Exclude:
63
56
  - 'lib/watir/locators/element/selector_builder.rb'
64
- - 'lib/watir/locators/element/selector_builder/xpath.rb'
65
57
  - 'lib/watir/locators/element/selector_builder/regexp_disassembler.rb'
66
58
 
59
+ Metrics/ModuleLength:
60
+ Exclude:
61
+ - 'spec/**/*'
62
+
67
63
  Metrics/PerceivedComplexity:
68
64
  Max: 10
69
65
 
70
- Performance/CollectionLiteralInLoop:
71
- MinSize: 3
66
+ RSpec/AnyInstance:
67
+ Enabled: false
68
+
69
+ RSpec/BeforeAfterAll:
70
+ Enabled: false
71
+
72
+ RSpec/ExampleLength:
73
+ Enabled: false
74
+
75
+ RSpec/MultipleExpectations:
76
+ Enabled: false
77
+
78
+ RSpec/MultipleMemoizedHelpers:
79
+ Exclude:
80
+ - 'spec/watirspec/capabilities_spec.rb'
81
+
82
+ RSpec/NoExpectationExample:
83
+ Exclude:
84
+ - 'spec/watirspec/cookies_spec.rb'
72
85
 
73
86
  Style/BlockDelimiters:
74
87
  EnforcedStyle: braces_for_chaining
data/.rubocop_todo.yml CHANGED
@@ -1,10 +1,17 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2020-08-27 01:55:04 UTC using RuboCop version 0.89.1.
3
+ # on 2022-12-31 19:29:43 UTC using RuboCop version 1.40.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 1
10
+ RSpec/PendingWithoutReason:
11
+ Exclude:
12
+ - 'spec/watirspec/browser_spec.rb'
13
+
14
+ # Offense count: 114
15
+ # Configuration parameters: AllowedConstants.
9
16
  Style/Documentation:
10
17
  Enabled: false
data/CHANGES.md CHANGED
@@ -1,4 +1,9 @@
1
- ### 7.2.0 (2022-12-22)
1
+ ### 7.2.1 (2023-01-02)
2
+
3
+ * Fix bug for building locators with JRuby
4
+ * Fix bug for inferring internet explorer browser name from options
5
+
6
+ ### 7.2.0 (2022-12-24)
2
7
 
3
8
  * Implement Shadow DOM support (#953)
4
9
  * Implement existing `Scroll#by` with Selenium Actions Class instead of JavaScript
data/LICENSE CHANGED
@@ -1,8 +1,8 @@
1
1
  (the MIT License)
2
2
 
3
3
  Copyright (c) 2009-2015 Jari Bakken
4
- Copyright (c) 2015-2021 Alex Rodionov, Titus Fortner
5
- Copyright (c) 2018-2021 Justin Ko
4
+ Copyright (c) 2015-2023 Alex Rodionov, Titus Fortner
5
+ Copyright (c) 2018-2023 Justin Ko
6
6
 
7
7
  Permission is hereby granted, free of charge, to any person obtaining
8
8
  a copy of this software and associated documentation files (the
@@ -172,7 +172,7 @@ module Watir
172
172
  elsif options[:options].is_a?(Selenium::WebDriver::Options)
173
173
  options[:options].class.to_s.split('::')[-2].downcase.to_sym
174
174
  elsif options.key?(:options)
175
- options.dig(:options, :browser_name).downcase.to_sym
175
+ options.dig(:options, :browser_name).tr(' ', '_').downcase.to_sym
176
176
  else
177
177
  :chrome
178
178
  end
@@ -4,6 +4,9 @@ module Watir
4
4
  module Locators
5
5
  class Anchor
6
6
  class SelectorBuilder < Element::SelectorBuilder
7
+ class XPath < Element::SelectorBuilder::XPath
8
+ end
9
+
7
10
  private
8
11
 
9
12
  def build_wd_selector(selector)
@@ -58,11 +58,12 @@ module Watir
58
58
  end
59
59
 
60
60
  def elements_match?(element, values_to_match)
61
+ class_keys = %i[class class_name]
61
62
  values_to_match.all? do |how, expected|
62
63
  if how == :tag_name
63
64
  validate_tag(element, expected)
64
65
  # TODO: Can this be class_name here or does that get converted?
65
- elsif %i[class class_name].include?(how)
66
+ elsif class_keys.include?(how)
66
67
  value = fetch_value(element, how)
67
68
  [expected].flatten.all? do |match|
68
69
  value.split.any? do |class_value|
@@ -36,12 +36,13 @@ module Watir
36
36
  end
37
37
 
38
38
  def extract_strings(expression, strings)
39
+ meta_set = %i[meta set]
39
40
  expression.each do |exp|
40
41
  if optional?(exp)
41
42
  strings.push(+'')
42
43
  next
43
44
  end
44
- if %i[meta set].include?(exp.type)
45
+ if meta_set.include?(exp.type)
45
46
  strings.push(+'')
46
47
  next
47
48
  end
@@ -27,10 +27,6 @@ module Watir
27
27
  super
28
28
  end
29
29
 
30
- def text_regexp_deprecation(*)
31
- # does not apply to text_field
32
- end
33
-
34
30
  def validate_tag(element, _expected)
35
31
  tag_name = fetch_value(element, :tag_name)
36
32
  matches_values?(tag_name, 'input')
data/lib/watir/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Watir
4
- VERSION = '7.2.0'
4
+ VERSION = '7.2.1'
5
5
  end
@@ -39,14 +39,6 @@ module LocatorSpecHelper
39
39
  Watir::Locators::Element::Locator.new(element_matcher)
40
40
  end
41
41
 
42
- def expect_one(*args)
43
- expect(driver).to receive(:find_element).with(*args)
44
- end
45
-
46
- def expect_all(*args)
47
- expect(driver).to receive(:find_elements).with(*args)
48
- end
49
-
50
42
  def locate_one(selector = nil)
51
43
  selector ||= @locator || {}
52
44
  locator.locate ordered_hash(selector)