cornucopia 0.1.55 → 0.2.0
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 +5 -5
- data/.gitignore +0 -2
- data/.ruby-version +1 -0
- data/Gemfile +4 -1
- data/Gemfile.lock +297 -0
- data/cornucopia.gemspec +13 -12
- data/lib/cornucopia/capybara/finder_diagnostics/find_action/found_element.rb +155 -0
- data/lib/cornucopia/capybara/finder_diagnostics/find_action.rb +417 -0
- data/lib/cornucopia/capybara/finder_diagnostics.rb +9 -551
- data/lib/cornucopia/capybara/finder_extensions.rb +34 -26
- data/lib/cornucopia/capybara/install_extensions.rb +6 -6
- data/lib/cornucopia/capybara/matcher_extensions.rb +110 -47
- data/lib/cornucopia/capybara/page_diagnostics/window_iterator.rb +42 -0
- data/lib/cornucopia/capybara/page_diagnostics.rb +1 -30
- data/lib/cornucopia/capybara/synchronizable.rb +1 -1
- data/lib/cornucopia/site_prism/class_extensions.rb +13 -0
- data/lib/cornucopia/site_prism/element_extensions.rb +7 -4
- data/lib/cornucopia/site_prism/install_extensions.rb +1 -1
- data/lib/cornucopia/site_prism/page_application.rb +3 -3
- data/lib/cornucopia/site_prism/section_extensions.rb +3 -11
- data/lib/cornucopia/util/report_builder.rb +1 -1
- data/lib/cornucopia/version.rb +1 -1
- data/spec/dummy/app/assets/config/manifest.js +2 -0
- data/spec/dummy/config/application.rb +1 -1
- data/spec/lib/capybara/finder_diagnostics_spec.rb +11 -13
- data/spec/lib/capybara/finder_extensions_spec.rb +19 -11
- data/spec/lib/capybara/matcher_extensions_spec.rb +13 -15
- data/spec/lib/capybara/page_diagnostics_spec.rb +1 -1
- data/spec/lib/site_prism/element_extensions_spec.rb +3 -3
- data/spec/lib/util/configured_report_spec.rb +4 -4
- data/spec/lib/util/log_capture_spec.rb +5 -5
- data/spec/lib/util/report_builder_spec.rb +3 -3
- data/spec/lib/util/report_table_spec.rb +5 -5
- data/spec/pages/cornucopia_report_pages/cornucopia_report_test_contents_page.rb +1 -1
- data/spec/sample_report.rb +6 -6
- data/spec/spec_helper.rb +5 -1
- metadata +37 -10
@@ -4,10 +4,10 @@ if Object.const_defined?("Capybara") &&
|
|
4
4
|
Capybara.const_defined?("Node") &&
|
5
5
|
Capybara::Node.const_defined?("Document")
|
6
6
|
unless Capybara::Node::Document.included_modules.include?(Cornucopia::Capybara::FinderExtensions)
|
7
|
-
Capybara::Node::Document.
|
7
|
+
Capybara::Node::Document.prepend Cornucopia::Capybara::FinderExtensions
|
8
8
|
end
|
9
9
|
unless Capybara::Node::Document.included_modules.include?(Cornucopia::Capybara::MatcherExtensions)
|
10
|
-
Capybara::Node::Document.
|
10
|
+
Capybara::Node::Document.prepend Cornucopia::Capybara::MatcherExtensions
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -15,10 +15,10 @@ if Object.const_defined?("Capybara") &&
|
|
15
15
|
Capybara.const_defined?("Node") &&
|
16
16
|
Capybara::Node.const_defined?("Simple")
|
17
17
|
unless Capybara::Node::Simple.included_modules.include?(Cornucopia::Capybara::FinderExtensions)
|
18
|
-
Capybara::Node::Simple.
|
18
|
+
Capybara::Node::Simple.prepend Cornucopia::Capybara::FinderExtensions
|
19
19
|
end
|
20
20
|
unless Capybara::Node::Simple.included_modules.include?(Cornucopia::Capybara::MatcherExtensions)
|
21
|
-
Capybara::Node::Simple.
|
21
|
+
Capybara::Node::Simple.prepend Cornucopia::Capybara::MatcherExtensions
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -26,10 +26,10 @@ if Object.const_defined?("Capybara") &&
|
|
26
26
|
Capybara.const_defined?("Node") &&
|
27
27
|
Capybara::Node.const_defined?("Element")
|
28
28
|
unless Capybara::Node::Element.included_modules.include?(Cornucopia::Capybara::FinderExtensions)
|
29
|
-
Capybara::Node::Element.
|
29
|
+
Capybara::Node::Element.prepend Cornucopia::Capybara::FinderExtensions
|
30
30
|
end
|
31
31
|
unless Capybara::Node::Element.included_modules.include?(Cornucopia::Capybara::MatcherExtensions)
|
32
|
-
Capybara::Node::Element.
|
32
|
+
Capybara::Node::Element.prepend Cornucopia::Capybara::MatcherExtensions
|
33
33
|
end
|
34
34
|
unless Capybara::Node::Element.included_modules.include?(Cornucopia::Capybara::SelectableValues)
|
35
35
|
Capybara::Node::Element.include Cornucopia::Capybara::SelectableValues
|
@@ -10,62 +10,109 @@ module Cornucopia
|
|
10
10
|
module MatcherExtensions
|
11
11
|
extend ActiveSupport::Concern
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
def assert_selector(*args, &block)
|
14
|
+
retry_count = 0
|
15
|
+
result = nil
|
16
|
+
no_option_args = args.clone
|
17
|
+
options = no_option_args.pop if no_option_args.last.is_a?(Hash)
|
18
|
+
options ||= {}
|
19
|
+
|
20
|
+
support_options, normal_options = __cornucopia__extract_selector_support_options(**options)
|
21
|
+
|
22
|
+
begin
|
23
|
+
retry_count += 1
|
24
|
+
if __cornucopia__call_super?(:assert_selector, *no_option_args, **normal_options, &block)
|
25
|
+
result = super(*no_option_args, normal_options, &block)
|
26
|
+
end
|
27
|
+
rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
28
|
+
retry if __cornucopia__retry_selector?(retry_count, support_options)
|
22
29
|
|
23
|
-
|
24
|
-
|
30
|
+
result = __cornucopia__analyze_selector(:assert_selector, support_options, *no_option_args, **normal_options)
|
31
|
+
rescue
|
32
|
+
result = __cornucopia__analyze_selector(:assert_selector, support_options, *no_option_args, **normal_options)
|
25
33
|
end
|
26
34
|
|
27
|
-
|
28
|
-
|
29
|
-
|
35
|
+
result
|
36
|
+
end
|
37
|
+
|
38
|
+
def assert_no_selector(*args, &block)
|
39
|
+
retry_count = 0
|
40
|
+
result = nil
|
41
|
+
no_option_args = args.clone
|
42
|
+
options = no_option_args.pop if no_option_args.last.is_a?(Hash)
|
43
|
+
options ||= {}
|
30
44
|
|
31
|
-
|
32
|
-
|
45
|
+
support_options, normal_options = __cornucopia__extract_selector_support_options(**options)
|
46
|
+
|
47
|
+
begin
|
48
|
+
retry_count += 1
|
49
|
+
if __cornucopia__call_super?(:assert_no_selector, *no_option_args, **normal_options, &block)
|
50
|
+
result = super(*no_option_args, **normal_options, &block)
|
33
51
|
end
|
52
|
+
rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
53
|
+
retry if __cornucopia__retry_selector?(retry_count, support_options)
|
34
54
|
|
35
|
-
|
55
|
+
result = __cornucopia__analyze_selector(:assert_no_selector, support_options, *no_option_args, **normal_options)
|
56
|
+
rescue
|
57
|
+
result = __cornucopia__analyze_selector(:assert_no_selector, support_options, *no_option_args, **normal_options)
|
36
58
|
end
|
37
59
|
|
38
|
-
|
39
|
-
|
40
|
-
|
60
|
+
result
|
61
|
+
end
|
62
|
+
|
63
|
+
def has_selector?(*args, **options, &block)
|
64
|
+
new_args = args.dup
|
65
|
+
retry_count = 0
|
66
|
+
result = nil
|
41
67
|
|
42
|
-
|
43
|
-
|
68
|
+
support_options, normal_options = __cornucopia__extract_selector_support_options(**options)
|
69
|
+
|
70
|
+
begin
|
71
|
+
retry_count += 1
|
72
|
+
if __cornucopia__call_super?(:has_selector?, *new_args, **options, &block)
|
73
|
+
__cornucopia_with_no_analysis do
|
74
|
+
result = super(*new_args, **options, &block)
|
75
|
+
|
76
|
+
unless Cornucopia::Util::Configuration.ignore_has_selector_errors
|
77
|
+
result ||= __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
|
78
|
+
end
|
79
|
+
end
|
44
80
|
end
|
45
|
-
|
81
|
+
rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
82
|
+
retry if __cornucopia__retry_selector?(retry_count, support_options)
|
83
|
+
|
84
|
+
result = __cornucopia__analyze_selector(:has_selector?, support_options, *new_args, **normal_options)
|
85
|
+
rescue
|
86
|
+
result = __cornucopia__analyze_selector(:has_selector?, support_options, *new_args, **normal_options)
|
46
87
|
end
|
47
|
-
end
|
48
88
|
|
89
|
+
result
|
90
|
+
end
|
49
91
|
|
50
|
-
def
|
92
|
+
def has_no_selector?(*args, **options, &block)
|
93
|
+
new_args = args.dup
|
51
94
|
retry_count = 0
|
52
95
|
result = nil
|
53
96
|
|
54
|
-
support_options =
|
55
|
-
{}
|
56
|
-
else
|
57
|
-
__cornucopia__extract_selector_support_options(*args)
|
58
|
-
end
|
97
|
+
support_options, normal_options = __cornucopia__extract_selector_support_options(**options)
|
59
98
|
|
60
99
|
begin
|
61
100
|
retry_count += 1
|
62
|
-
|
101
|
+
if __cornucopia__call_super?(:has_no_selector?, *new_args, **options, &block)
|
102
|
+
__cornucopia_with_no_analysis do
|
103
|
+
result = super(*new_args, **options, &block)
|
104
|
+
|
105
|
+
unless Cornucopia::Util::Configuration.ignore_has_selector_errors
|
106
|
+
result ||= __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
63
110
|
rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
64
|
-
retry if __cornucopia__retry_selector(retry_count, support_options)
|
111
|
+
retry if __cornucopia__retry_selector?(retry_count, support_options)
|
65
112
|
|
66
|
-
result = __cornucopia__analyze_selector(
|
67
|
-
rescue
|
68
|
-
result = __cornucopia__analyze_selector(
|
113
|
+
result = __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
|
114
|
+
rescue
|
115
|
+
result = __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
|
69
116
|
end
|
70
117
|
|
71
118
|
result
|
@@ -73,18 +120,22 @@ module Cornucopia
|
|
73
120
|
|
74
121
|
private
|
75
122
|
|
76
|
-
|
77
|
-
support_options = {}
|
123
|
+
attr_reader :__cornucopia_block_analysis
|
78
124
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
125
|
+
def __cornucopia__call_super?(_funciton_name, *_args, **_options, &_block)
|
126
|
+
true
|
127
|
+
end
|
128
|
+
|
129
|
+
def __cornucopia__extract_selector_support_options(**options)
|
130
|
+
support_options = options.slice(:__cornucopia_no_analysis, :__cornucopia_retry_with_found)
|
131
|
+
normal_options = options.slice(*(options.keys - %i[__cornucopia_no_analysis __cornucopia_retry_with_found]))
|
83
132
|
|
84
|
-
support_options
|
133
|
+
support_options[:__cornucopia_no_analysis] = true if __cornucopia_block_analysis
|
134
|
+
|
135
|
+
[support_options, normal_options]
|
85
136
|
end
|
86
137
|
|
87
|
-
def __cornucopia__analyze_selector(function_name, support_options, *args)
|
138
|
+
def __cornucopia__analyze_selector(function_name, support_options, *args, **options)
|
88
139
|
return_value = nil
|
89
140
|
error = $!
|
90
141
|
|
@@ -97,26 +148,38 @@ module Cornucopia
|
|
97
148
|
{},
|
98
149
|
support_options,
|
99
150
|
function_name,
|
100
|
-
*args
|
151
|
+
*args,
|
152
|
+
**options)
|
101
153
|
|
102
154
|
if find_action.perform_analysis(Cornucopia::Util::Configuration.retry_match_with_found ||
|
103
155
|
support_options[:__cornucopia_retry_with_found])
|
104
156
|
return_value = find_action.simple_run({ __cornucopia_no_analysis: true }) rescue nil
|
105
157
|
return_value ||= find_action.return_value
|
106
158
|
else
|
107
|
-
raise error
|
159
|
+
raise error if error
|
108
160
|
end
|
109
161
|
else
|
110
|
-
raise error
|
162
|
+
raise error if error
|
111
163
|
end
|
112
164
|
|
113
165
|
return_value
|
114
166
|
end
|
115
167
|
|
116
|
-
def __cornucopia__retry_selector(retry_count, support_options)
|
168
|
+
def __cornucopia__retry_selector?(retry_count, support_options)
|
117
169
|
retry_count <= Cornucopia::Util::Configuration.selenium_cache_retry_count &&
|
118
170
|
!support_options[:__cornucopia_no_analysis]
|
119
171
|
end
|
172
|
+
|
173
|
+
def __cornucopia_with_no_analysis
|
174
|
+
orig_block = __cornucopia_block_analysis
|
175
|
+
|
176
|
+
begin
|
177
|
+
@__cornucopia_block_analysis = true
|
178
|
+
yield
|
179
|
+
ensure
|
180
|
+
@__cornucopia_block_analysis = orig_block
|
181
|
+
end
|
182
|
+
end
|
120
183
|
end
|
121
184
|
end
|
122
185
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "digest"
|
4
|
+
# require ::File.expand_path("../../util/configuration", File.dirname(__FILE__))
|
5
|
+
require ::File.expand_path("../../util/report_builder", File.dirname(__FILE__))
|
6
|
+
require ::File.expand_path("../../util/report_table", File.dirname(__FILE__))
|
7
|
+
|
8
|
+
module Cornucopia
|
9
|
+
module Capybara
|
10
|
+
class PageDiagnostics
|
11
|
+
class WindowIterator
|
12
|
+
def initialize(window_handles, current_window, diagnostics)
|
13
|
+
@window_handles = window_handles
|
14
|
+
@current_window = current_window
|
15
|
+
@diagnostics = diagnostics
|
16
|
+
end
|
17
|
+
|
18
|
+
def each(&block)
|
19
|
+
begin
|
20
|
+
@diagnostics.allow_other_windows = false
|
21
|
+
|
22
|
+
if @window_handles.length > 1
|
23
|
+
@window_handles.each do |window_handle|
|
24
|
+
unless @current_window && @current_window == window_handle
|
25
|
+
switched = @diagnostics.execute_driver_function(:switch_to_window,
|
26
|
+
"could not switch windows",
|
27
|
+
window_handle)
|
28
|
+
if switched != "could not switch windows"
|
29
|
+
block.yield @diagnostics
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
ensure
|
35
|
+
@diagnostics.allow_other_windows = true
|
36
|
+
@diagnostics.execute_driver_function(:switch_to_window, "could not switch windows", @current_window)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -4,6 +4,7 @@ require "digest"
|
|
4
4
|
# require ::File.expand_path("../util/configuration", File.dirname(__FILE__))
|
5
5
|
require ::File.expand_path("../util/report_builder", File.dirname(__FILE__))
|
6
6
|
require ::File.expand_path("../util/report_table", File.dirname(__FILE__))
|
7
|
+
require ::File.expand_path("page_diagnostics/window_iterator", File.dirname(__FILE__))
|
7
8
|
|
8
9
|
module Cornucopia
|
9
10
|
module Capybara
|
@@ -104,36 +105,6 @@ module Cornucopia
|
|
104
105
|
end
|
105
106
|
end
|
106
107
|
|
107
|
-
class WindowIterator
|
108
|
-
def initialize(window_handles, current_window, diagnostics)
|
109
|
-
@window_handles = window_handles
|
110
|
-
@current_window = current_window
|
111
|
-
@diagnostics = diagnostics
|
112
|
-
end
|
113
|
-
|
114
|
-
def each(&block)
|
115
|
-
begin
|
116
|
-
@diagnostics.allow_other_windows = false
|
117
|
-
|
118
|
-
if @window_handles.length > 1
|
119
|
-
@window_handles.each do |window_handle|
|
120
|
-
unless @current_window && @current_window == window_handle
|
121
|
-
switched = @diagnostics.execute_driver_function(:switch_to_window,
|
122
|
-
"could not switch windows",
|
123
|
-
window_handle)
|
124
|
-
if switched != "could not switch windows"
|
125
|
-
block.yield @diagnostics
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
ensure
|
131
|
-
@diagnostics.allow_other_windows = true
|
132
|
-
@diagnostics.execute_driver_function(:switch_to_window, "could not switch windows", @current_window)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
108
|
def other_windows
|
138
109
|
if @allow_other_windows
|
139
110
|
Cornucopia::Capybara::PageDiagnostics::WindowIterator.new(@window_handles, @current_window, self)
|
@@ -15,7 +15,7 @@ module Cornucopia
|
|
15
15
|
def synchronize_test(seconds = nil, options = {}, &block)
|
16
16
|
seconds ||= ::Capybara.respond_to?(:default_max_wait_time) ? ::Capybara.default_max_wait_time : ::Capybara.default_wait_time
|
17
17
|
|
18
|
-
document.synchronize(seconds, options) do
|
18
|
+
document.synchronize(seconds, **options) do
|
19
19
|
raise ::Capybara::ElementNotFound unless block.yield
|
20
20
|
end
|
21
21
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'active_support/concern'
|
4
|
+
require ::File.expand_path("class_extensions", File.dirname(__FILE__))
|
4
5
|
|
5
6
|
module Cornucopia
|
6
7
|
module SitePrism
|
@@ -9,16 +10,18 @@ module Cornucopia
|
|
9
10
|
|
10
11
|
included do
|
11
12
|
::Capybara::Session::DSL_METHODS.each do |method|
|
12
|
-
|
13
|
+
next if Cornucopia::SitePrism::ClassExtensions.methods.include?(method)
|
13
14
|
|
14
|
-
|
15
|
+
Cornucopia::SitePrism::ClassExtensions.define_singleton_method(method) do |*args, **options, &block|
|
15
16
|
if @__corunucopia_base_node
|
16
|
-
@__corunucopia_base_node.send
|
17
|
+
@__corunucopia_base_node.send(method, *args, **options, &block)
|
17
18
|
else
|
18
|
-
|
19
|
+
super(*args, **options, &block)
|
19
20
|
end
|
20
21
|
end
|
21
22
|
end
|
23
|
+
|
24
|
+
self.prepend Cornucopia::SitePrism::ClassExtensions
|
22
25
|
end
|
23
26
|
|
24
27
|
module ClassMethods
|
@@ -13,6 +13,6 @@ if Object.const_defined?("SitePrism") &&
|
|
13
13
|
SitePrism::Section.include Cornucopia::SitePrism::ElementExtensions
|
14
14
|
end
|
15
15
|
unless SitePrism::Section.included_modules.include?(Cornucopia::SitePrism::SectionExtensions)
|
16
|
-
SitePrism::Section.
|
16
|
+
SitePrism::Section.prepend Cornucopia::SitePrism::SectionExtensions
|
17
17
|
end
|
18
18
|
end
|
@@ -66,8 +66,8 @@ module Cornucopia
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
def
|
70
|
-
if self.current_instance.
|
69
|
+
def respond_to_missing?(method_name, include_private = false)
|
70
|
+
if self.current_instance.respond_to_missing?(method_sym, include_private)
|
71
71
|
true
|
72
72
|
else
|
73
73
|
super
|
@@ -114,7 +114,7 @@ module Cornucopia
|
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
-
def
|
117
|
+
def respond_to_missing?(method_sym, include_private = false)
|
118
118
|
method_name = method_sym.to_s
|
119
119
|
|
120
120
|
if is_page_name?(method_name)
|
@@ -5,18 +5,10 @@ require 'active_support/concern'
|
|
5
5
|
module Cornucopia
|
6
6
|
module SitePrism
|
7
7
|
module SectionExtensions
|
8
|
-
|
8
|
+
def initialize(*args)
|
9
|
+
super(*args)
|
9
10
|
|
10
|
-
|
11
|
-
base.class_exec do
|
12
|
-
alias :__cornucopia_site_prism_orig_initialize :initialize
|
13
|
-
|
14
|
-
def initialize(*args)
|
15
|
-
__cornucopia_site_prism_orig_initialize(*args)
|
16
|
-
|
17
|
-
self.owner_node = args[0].owner_node
|
18
|
-
end
|
19
|
-
end
|
11
|
+
self.owner_node = args[0].owner_node
|
20
12
|
end
|
21
13
|
end
|
22
14
|
end
|
@@ -313,7 +313,7 @@ module Cornucopia
|
|
313
313
|
|
314
314
|
def delete_old_folders
|
315
315
|
old_directories = Dir[File.join(index_folder_name, "#{@base_folder_name}_*")].
|
316
|
-
map { |dir| File.directory?(dir) ? dir : nil }.compact
|
316
|
+
map { |dir| File.directory?(dir) ? dir : nil }.compact.sort
|
317
317
|
|
318
318
|
if Array.wrap(old_directories).length > MAX_OLD_FOLDERS
|
319
319
|
old_directories.each_with_index do |dir, index|
|
data/lib/cornucopia/version.rb
CHANGED
@@ -6,7 +6,7 @@ require File.expand_path('../boot', __FILE__)
|
|
6
6
|
# require "active_record/railtie"
|
7
7
|
require "action_controller/railtie"
|
8
8
|
require "action_mailer/railtie"
|
9
|
-
require "sprockets/railtie"
|
9
|
+
# require "sprockets/railtie"
|
10
10
|
# require "rails/test_unit/railtie"
|
11
11
|
|
12
12
|
Bundler.require(*Rails.groups)
|
@@ -81,7 +81,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
81
81
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[0].values[0].text).to be == ":css"
|
82
82
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].labels[0].text).to be == "1"
|
83
83
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].values[0].text).to be == "#base-contentss"
|
84
|
-
expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "
|
84
|
+
expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "message"
|
85
85
|
expect(contents_frame.errors[0].tables[0].rows[3].values[0].text).to be == "Unable to find css \"#base-contentss\""
|
86
86
|
expect(contents_frame.errors[0].tables[0].rows[4].labels[0].text).to be == "backtrace"
|
87
87
|
expect(contents_frame.errors[0].tables[0].rows[4].expands[0]).to be
|
@@ -93,7 +93,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
93
93
|
expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "name"
|
94
94
|
expect(contents_frame.errors[0].more_details.details.rows[0].values[0].text).to be == "Capybara::ElementNotFound"
|
95
95
|
expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "support_options"
|
96
|
-
expect(contents_frame.errors[0].more_details.details.rows[1].values[0].text).to be == "{:__cornucopia_no_analysis=>true
|
96
|
+
expect(contents_frame.errors[0].more_details.details.rows[1].values[0].text).to be == "{:__cornucopia_no_analysis=>true}"
|
97
97
|
expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "page_url"
|
98
98
|
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to match %r{sample_report/index\.html}
|
99
99
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "title"
|
@@ -156,8 +156,8 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
156
156
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[0].values[0].text).to be == ":css"
|
157
157
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].labels[0].text).to be == "1"
|
158
158
|
expect(contents_frame.errors[0].tables[0].rows[2].sub_tables[0].rows[1].values[0].text).to be == "a"
|
159
|
-
expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "
|
160
|
-
expect(contents_frame.errors[0].tables[0].rows[3].values[0].text).to match /Ambiguous match, found .+ elements matching css "a"/
|
159
|
+
expect(contents_frame.errors[0].tables[0].rows[3].labels[0].text).to be == "message"
|
160
|
+
expect(contents_frame.errors[0].tables[0].rows[3].values[0].text).to match /Ambiguous match, found .+ elements matching visible css "a"/
|
161
161
|
expect(contents_frame.errors[0].tables[0].rows[4].labels[0].text).to be == "backtrace"
|
162
162
|
expect(contents_frame.errors[0].tables[0].rows[4].expands[0]).to be
|
163
163
|
expect(contents_frame.errors[0].tables[0].rows[4].mores[0]).to be
|
@@ -173,7 +173,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
173
173
|
expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "guessed_types"
|
174
174
|
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to be
|
175
175
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "support_options"
|
176
|
-
expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).to be == "{:__cornucopia_no_analysis=>true
|
176
|
+
expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).to be == "{:__cornucopia_no_analysis=>true}"
|
177
177
|
expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "page_url"
|
178
178
|
expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).to match %r{sample_report/index\.html}
|
179
179
|
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "title"
|
@@ -279,8 +279,6 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
279
279
|
expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "args"
|
280
280
|
expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[0].labels[0].text).to be == "1"
|
281
281
|
expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[0].values[0].text).to be == "a"
|
282
|
-
expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[1].labels[0].text).to be == "2"
|
283
|
-
expect(contents_frame.errors[0].more_details.details.rows[1].sub_tables[0].rows[1].values[0].text).to be == "{:visible=>true}"
|
284
282
|
expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "guessed_types"
|
285
283
|
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to be
|
286
284
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "page_url"
|
@@ -539,7 +537,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
539
537
|
to receive(:execute_script).at_least(1).times.and_raise(::Capybara::NotSupportedByDriverError)
|
540
538
|
|
541
539
|
base_object = ::Capybara.current_session.find(:css, "#hidden-div", visible: false)
|
542
|
-
button = base_object.first("
|
540
|
+
button = base_object.first("input[type='button']", count: 1)
|
543
541
|
|
544
542
|
expect(button.class).to be == ::Capybara::Node::Element
|
545
543
|
|
@@ -574,7 +572,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
574
572
|
to receive(:execute_script).at_least(1).times.and_raise(::Capybara::NotSupportedByDriverError)
|
575
573
|
|
576
574
|
base_object = ::Capybara.current_session.find(:css, "#hidden-div", visible: false)
|
577
|
-
button = base_object.assert_selector("
|
575
|
+
button = base_object.assert_selector("input[type='button']", count: 1)
|
578
576
|
|
579
577
|
expect(button).to be true
|
580
578
|
|
@@ -617,18 +615,18 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
617
615
|
allow_any_instance_of(::Cornucopia::Capybara::FinderDiagnostics::FindAction).
|
618
616
|
to receive(:all_other_elements).and_return []
|
619
617
|
allow(empty_find_button).to receive(:size).and_return 0
|
620
|
-
allow_any_instance_of(::Capybara::
|
618
|
+
allow_any_instance_of(Cornucopia::Capybara::FinderDiagnostics::FindAction).
|
621
619
|
to receive(:all).
|
622
620
|
and_call_original
|
623
|
-
allow_any_instance_of(::Capybara::
|
621
|
+
allow_any_instance_of(Cornucopia::Capybara::FinderDiagnostics::FindAction).
|
624
622
|
to receive(:all).
|
625
623
|
with("Still cool!", { count: 1 }).
|
626
624
|
and_return(find_button)
|
627
|
-
allow_any_instance_of(::Capybara::
|
625
|
+
allow_any_instance_of(Cornucopia::Capybara::FinderDiagnostics::FindAction).
|
628
626
|
to receive(:all).
|
629
627
|
with(instance_of(Symbol), "Still cool!", { visible: false, __cornucopia_no_analysis: true }).
|
630
628
|
and_return(empty_find_button)
|
631
|
-
allow_any_instance_of(::Capybara::
|
629
|
+
allow_any_instance_of(Cornucopia::Capybara::FinderDiagnostics::FindAction).
|
632
630
|
to receive(:all).
|
633
631
|
with("Still cool!", { visible: false, __cornucopia_no_analysis: true }).
|
634
632
|
and_return(empty_find_button)
|