cornucopia 0.1.40 → 0.1.41
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/cornucopia.gemspec +1 -1
- data/lib/cornucopia.rb +7 -0
- data/lib/cornucopia/capybara/finder_diagnostics.rb +10 -6
- data/lib/cornucopia/capybara/finder_extensions.rb +24 -15
- data/lib/cornucopia/capybara/install_extensions.rb +44 -0
- data/lib/cornucopia/capybara/matcher_extensions.rb +33 -21
- data/lib/cornucopia/capybara/page_diagnostics.rb +44 -1
- data/lib/cornucopia/capybara/selectable_values.rb +47 -0
- data/lib/cornucopia/capybara/synchronizable.rb +24 -0
- data/lib/cornucopia/cucumber_hooks.rb +6 -3
- data/lib/cornucopia/rspec_hooks.rb +5 -4
- data/lib/cornucopia/site_prism/element_extensions.rb +16 -2
- data/lib/cornucopia/site_prism/install_extensions.rb +18 -0
- data/lib/cornucopia/site_prism/page_application.rb +3 -1
- data/lib/cornucopia/site_prism/section_extensions.rb +23 -0
- data/lib/cornucopia/spinach_hooks.rb +6 -3
- data/lib/cornucopia/util/configuration.rb +14 -6
- data/lib/cornucopia/util/configured_report.rb +3 -1
- data/lib/cornucopia/util/file_asset.rb +3 -1
- data/lib/cornucopia/util/generic_settings.rb +3 -1
- data/lib/cornucopia/util/log_capture.rb +4 -2
- data/lib/cornucopia/util/pretty_formatter.rb +4 -2
- data/lib/cornucopia/util/report_builder.rb +9 -6
- data/lib/cornucopia/util/report_formatters.rb +3 -1
- data/lib/cornucopia/util/report_table.rb +4 -2
- data/lib/cornucopia/util/test_helper.rb +8 -2
- data/lib/cornucopia/version.rb +2 -2
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/config/application.rb +2 -0
- data/spec/dummy/config/boot.rb +2 -0
- data/spec/dummy/config/environment.rb +2 -0
- data/spec/dummy/config/environments/development.rb +2 -0
- data/spec/dummy/config/environments/production.rb +2 -0
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +2 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +2 -0
- data/spec/dummy/config/initializers/inflections.rb +2 -0
- data/spec/dummy/config/initializers/mime_types.rb +2 -0
- data/spec/dummy/config/initializers/secret_token.rb +2 -0
- data/spec/dummy/config/initializers/session_store.rb +2 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +2 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/db/schema.rb +2 -0
- data/spec/dummy/features/support/env.rb +2 -0
- data/spec/lib/capybara/finder_diagnostics_spec.rb +68 -58
- data/spec/lib/capybara/finder_extensions_spec.rb +13 -6
- data/spec/lib/capybara/matcher_extensions_spec.rb +2 -0
- data/spec/lib/capybara/page_diagnostics_spec.rb +2 -0
- data/spec/lib/site_prism/element_extensions_spec.rb +2 -0
- data/spec/lib/site_prism/page_application_spec.rb +2 -0
- data/spec/lib/util/configuration_spec.rb +2 -0
- data/spec/lib/util/configured_report_spec.rb +2 -0
- data/spec/lib/util/file_asset_spec.rb +2 -0
- data/spec/lib/util/generic_settings_spec.rb +2 -0
- data/spec/lib/util/log_capture_spec.rb +2 -0
- data/spec/lib/util/pretty_formatter_spec.rb +29 -27
- data/spec/lib/util/report_builder_spec.rb +5 -3
- data/spec/lib/util/report_formatters_spec.rb +2 -0
- data/spec/lib/util/report_table_exception_spec.rb +2 -0
- data/spec/lib/util/report_table_spec.rb +4 -2
- data/spec/lib/util/test_helper_spec.rb +2 -0
- data/spec/pages/cornucopia_report_app.rb +2 -0
- data/spec/pages/cornucopia_report_pages/cornucopia_report_holder_page.rb +2 -0
- data/spec/pages/cornucopia_report_pages/cornucopia_report_test_contents_page.rb +2 -0
- data/spec/pages/cornucopia_report_pages/index_page.rb +2 -0
- data/spec/pages/google/email_page.rb +2 -0
- data/spec/pages/google/login_page.rb +2 -0
- data/spec/rails_helper.rb +2 -0
- data/spec/sample_report.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- metadata +11 -9
- data/lib/cornucopia/capybara/install_finder_extensions.rb +0 -105
- data/lib/cornucopia/capybara/install_matcher_extensions.rb +0 -43
- data/lib/cornucopia/site_prism/install_element_extensions.rb +0 -54
data/spec/dummy/config/routes.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "rails_helper"
|
2
4
|
require ::File.expand_path("../../../lib/cornucopia/util/report_builder", File.dirname(__FILE__))
|
3
5
|
require ::File.expand_path("../../../lib/cornucopia/capybara/page_diagnostics", File.dirname(__FILE__))
|
@@ -87,29 +89,31 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
87
89
|
expect(contents_frame.errors[0].tables[0].rows[4].values[0].text.length).to be > 0
|
88
90
|
|
89
91
|
contents_frame.errors[0].more_details.show_hide.click
|
90
|
-
expect(contents_frame.errors[0].more_details.details.rows.length).to be ==
|
92
|
+
expect(contents_frame.errors[0].more_details.details.rows.length).to be == 12
|
91
93
|
expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "name"
|
92
94
|
expect(contents_frame.errors[0].more_details.details.rows[0].values[0].text).to be == "Capybara::ElementNotFound"
|
93
95
|
expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "support_options"
|
94
96
|
expect(contents_frame.errors[0].more_details.details.rows[1].values[0].text).to be == "{:__cornucopia_no_analysis=>true, :__cornucopia_retry_with_found=>nil}"
|
95
97
|
expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to be == "page_url"
|
96
|
-
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to match /
|
98
|
+
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to match %r{sample_report/index\.html}
|
97
99
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "title"
|
98
100
|
expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).to be == "Diagnostics report list"
|
99
101
|
expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "screen_shot"
|
100
102
|
expect(contents_frame.errors[0].more_details.details.rows[4].value_images[0][:src]).to match /\/screen_shot\.png/
|
101
|
-
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "
|
102
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
103
|
+
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "browser_info"
|
104
|
+
expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "browser_logs"
|
105
|
+
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "html_file"
|
106
|
+
expect(contents_frame.errors[0].more_details.details.rows[7].value_links[0][:href]).
|
103
107
|
to match /html_save_file\/__cornucopia_save_page\.html/
|
104
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
105
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
108
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "html_frame"
|
109
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].value_frames[0][:src]).
|
106
110
|
to match /page_dump\.html/
|
107
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
108
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
109
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
110
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
111
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
112
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
111
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "html_source"
|
112
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].value_textareas[0].text).to be
|
113
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "page_height"
|
114
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].values[0].text).to be
|
115
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to be == "page_width"
|
116
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].values[0].text).to be
|
113
117
|
end
|
114
118
|
end
|
115
119
|
end
|
@@ -160,7 +164,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
160
164
|
expect(contents_frame.errors[0].tables[0].rows[4].values[0].text.length).to be > 0
|
161
165
|
|
162
166
|
contents_frame.errors[0].more_details.show_hide.click
|
163
|
-
expect(contents_frame.errors[0].more_details.details.rows.length).to be ==
|
167
|
+
expect(contents_frame.errors[0].more_details.details.rows.length).to be == 14
|
164
168
|
expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "name"
|
165
169
|
expect(contents_frame.errors[0].more_details.details.rows[0].values[0].text).to be == "Capybara::Ambiguous"
|
166
170
|
expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to be == "all_elements"
|
@@ -171,23 +175,25 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
171
175
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "support_options"
|
172
176
|
expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).to be == "{:__cornucopia_no_analysis=>true, :__cornucopia_retry_with_found=>nil}"
|
173
177
|
expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "page_url"
|
174
|
-
expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).to match /
|
178
|
+
expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).to match %r{sample_report/index\.html}
|
175
179
|
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "title"
|
176
180
|
expect(contents_frame.errors[0].more_details.details.rows[5].values[0].text).to be == "Diagnostics report list"
|
177
181
|
expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "screen_shot"
|
178
182
|
expect(contents_frame.errors[0].more_details.details.rows[6].value_images[0][:src]).to match /\/screen_shot\.png/
|
179
|
-
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "
|
180
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
183
|
+
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "browser_info"
|
184
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "browser_logs"
|
185
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "html_file"
|
186
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].value_links[0][:href]).
|
181
187
|
to match /html_save_file\/__cornucopia_save_page\.html/
|
182
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
183
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
188
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "html_frame"
|
189
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].value_frames[0][:src]).
|
184
190
|
to match /page_dump\.html/
|
185
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
186
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
187
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
188
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
189
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
190
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
191
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to be == "html_source"
|
192
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].value_textareas[0].text).to be
|
193
|
+
expect(contents_frame.errors[0].more_details.details.rows[12].labels[0].text).to be == "page_height"
|
194
|
+
expect(contents_frame.errors[0].more_details.details.rows[12].values[0].text).to be
|
195
|
+
expect(contents_frame.errors[0].more_details.details.rows[13].labels[0].text).to be == "page_width"
|
196
|
+
expect(contents_frame.errors[0].more_details.details.rows[13].values[0].text).to be
|
191
197
|
end
|
192
198
|
end
|
193
199
|
end
|
@@ -229,11 +235,10 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
229
235
|
expect(diag).to receive(:run).and_call_original
|
230
236
|
expect(diag).to receive(:generate_report).and_call_original
|
231
237
|
|
232
|
-
find_all = contents_frame.all("a")
|
233
238
|
test_all = Cornucopia::Capybara::FinderDiagnostics.
|
234
239
|
diagnose_finder(contents_frame, :all, :css, "a", visible: true)
|
235
240
|
|
236
|
-
expect(
|
241
|
+
expect(total_tests).to be == test_all.length
|
237
242
|
end
|
238
243
|
|
239
244
|
report_page = CornucopiaReportApp.cornucopia_report_holder_page
|
@@ -267,7 +272,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
267
272
|
expect(contents_frame.errors[0].tables[0].rows[3].sub_tables[0].rows[0].values[0].text).to be == "true"
|
268
273
|
|
269
274
|
contents_frame.errors[0].more_details.show_hide.click
|
270
|
-
expect(contents_frame.errors[0].more_details.details.rows.length).to be ==
|
275
|
+
expect(contents_frame.errors[0].more_details.details.rows.length).to be == 13
|
271
276
|
expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to be == "all_elements"
|
272
277
|
expect(contents_frame.errors[0].more_details.details.rows[0].sub_tables.length).to eq 1
|
273
278
|
expect(contents_frame.errors[0].more_details.details.rows[0].sub_tables[0].rows.length).to eq total_tests
|
@@ -280,25 +285,27 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
280
285
|
expect(contents_frame.errors[0].more_details.details.rows[2].values[0].text).to be
|
281
286
|
expect(contents_frame.errors[0].more_details.details.rows[3].labels[0].text).to be == "page_url"
|
282
287
|
expect(contents_frame.errors[0].more_details.details.rows[3].values[0].text).
|
283
|
-
to match /
|
288
|
+
to match %r{sample_report/index\.html}
|
284
289
|
expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to be == "title"
|
285
290
|
expect(contents_frame.errors[0].more_details.details.rows[4].values[0].text).
|
286
291
|
to be == "Diagnostics report list"
|
287
292
|
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to be == "screen_shot"
|
288
293
|
expect(contents_frame.errors[0].more_details.details.rows[5].value_images[0][:src]).
|
289
294
|
to match /\/screen_shot\.png/
|
290
|
-
expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "
|
291
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
295
|
+
expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to be == "browser_info"
|
296
|
+
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "browser_logs"
|
297
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "html_file"
|
298
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].value_links[0][:href]).
|
292
299
|
to match /html_save_file\/__cornucopia_save_page\.html/
|
293
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
294
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
300
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "html_frame"
|
301
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].value_frames[0][:src]).
|
295
302
|
to match /page_dump\.html/
|
296
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
297
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
298
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
299
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
300
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
301
|
-
expect(contents_frame.errors[0].more_details.details.rows[
|
303
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "html_source"
|
304
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].value_textareas[0].text).to be
|
305
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to be == "page_height"
|
306
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].values[0].text).to be
|
307
|
+
expect(contents_frame.errors[0].more_details.details.rows[12].labels[0].text).to be == "page_width"
|
308
|
+
expect(contents_frame.errors[0].more_details.details.rows[12].values[0].text).to be
|
302
309
|
end
|
303
310
|
end
|
304
311
|
end
|
@@ -326,7 +333,7 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
326
333
|
test_page.contents do |contents_frame|
|
327
334
|
expect(contents_frame.errors.length).to be == 1
|
328
335
|
contents_frame.errors[0].more_details.show_hide.click
|
329
|
-
expect(contents_frame.errors[0].more_details.details.rows.length).to eq
|
336
|
+
expect(contents_frame.errors[0].more_details.details.rows.length).to eq 14
|
330
337
|
expect(contents_frame.errors[0].more_details.details.rows[0].labels[0].text).to eq "name"
|
331
338
|
expect(contents_frame.errors[0].more_details.details.rows[1].labels[0].text).to eq "args"
|
332
339
|
expect(contents_frame.errors[0].more_details.details.rows[2].labels[0].text).to eq "guessed_types"
|
@@ -334,11 +341,13 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
334
341
|
expect(contents_frame.errors[0].more_details.details.rows[4].labels[0].text).to eq "page_url"
|
335
342
|
expect(contents_frame.errors[0].more_details.details.rows[5].labels[0].text).to eq "title"
|
336
343
|
expect(contents_frame.errors[0].more_details.details.rows[6].labels[0].text).to eq "screen_shot"
|
337
|
-
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to
|
338
|
-
expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to
|
339
|
-
expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to eq "
|
340
|
-
expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to eq "
|
341
|
-
expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to eq "
|
344
|
+
expect(contents_frame.errors[0].more_details.details.rows[7].labels[0].text).to be == "browser_info"
|
345
|
+
expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "browser_logs"
|
346
|
+
expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to eq "html_file"
|
347
|
+
expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to eq "html_frame"
|
348
|
+
expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to eq "html_source"
|
349
|
+
expect(contents_frame.errors[0].more_details.details.rows[12].labels[0].text).to eq "page_height"
|
350
|
+
expect(contents_frame.errors[0].more_details.details.rows[13].labels[0].text).to eq "page_width"
|
342
351
|
end
|
343
352
|
end
|
344
353
|
end
|
@@ -366,19 +375,20 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
366
375
|
expect(hidden_row_specs[2].sub_tables[0].rows[0].labels[0].text).to be == "x"
|
367
376
|
expect(hidden_row_specs[2].sub_tables[0].rows[1].labels[0].text).to be == "y"
|
368
377
|
expect(hidden_row_specs[3].labels[0].text).to be == "elem_outerHTML"
|
369
|
-
expect(hidden_row_specs[4].labels[0].text).to be == "
|
370
|
-
expect(hidden_row_specs[5].labels[0].text).to be == "
|
371
|
-
expect(hidden_row_specs[6].labels[0].text).to be == "
|
372
|
-
expect(hidden_row_specs[7].labels[0].text).to be == "
|
373
|
-
expect(hidden_row_specs[
|
374
|
-
expect(hidden_row_specs[8].
|
375
|
-
expect(hidden_row_specs[9].labels[0].text).to be == "
|
376
|
-
expect(hidden_row_specs[10].labels[0].text).to be == "
|
377
|
-
expect(hidden_row_specs[11].labels[0].text).to be == "
|
378
|
-
expect(hidden_row_specs[
|
379
|
-
expect(hidden_row_specs[
|
380
|
-
expect(hidden_row_specs[12].labels[0].text).to be == "
|
381
|
-
expect(hidden_row_specs[
|
378
|
+
expect(hidden_row_specs[4].labels[0].text).to be == "elem_path"
|
379
|
+
expect(hidden_row_specs[5].labels[0].text).to be == "elem_selected"
|
380
|
+
expect(hidden_row_specs[6].labels[0].text).to be == "elem_tag_name"
|
381
|
+
expect(hidden_row_specs[7].labels[0].text).to be == "elem_value"
|
382
|
+
expect(hidden_row_specs[8].labels[0].text).to be == "elem_visible"
|
383
|
+
expect(hidden_row_specs[8].values[0].text).to be == "false"
|
384
|
+
expect(hidden_row_specs[9].labels[0].text).to be == "native_aria_meta_data"
|
385
|
+
expect(hidden_row_specs[10].labels[0].text).to be == "native_class"
|
386
|
+
expect(hidden_row_specs[11].labels[0].text).to be == "native_onclick"
|
387
|
+
expect(hidden_row_specs[12].labels[0].text).to be == "native_size"
|
388
|
+
expect(hidden_row_specs[12].sub_tables[0].rows[0].labels[0].text).to be == "width"
|
389
|
+
expect(hidden_row_specs[12].sub_tables[0].rows[1].labels[0].text).to be == "height"
|
390
|
+
expect(hidden_row_specs[13].labels[0].text).to be == "native_type"
|
391
|
+
expect(hidden_row_specs[13].values[0].text).to be == "button"
|
382
392
|
end
|
383
393
|
end
|
384
394
|
end
|
@@ -692,4 +702,4 @@ describe Cornucopia::Capybara::FinderDiagnostics, type: :feature do
|
|
692
702
|
end
|
693
703
|
end
|
694
704
|
end
|
695
|
-
end
|
705
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "rails_helper"
|
2
4
|
require ::File.expand_path("../../../lib/cornucopia/capybara/finder_extensions", File.dirname(__FILE__))
|
3
5
|
|
@@ -61,7 +63,7 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
61
63
|
|
62
64
|
allow(contents_frame.page.document).
|
63
65
|
to receive(:__cornucopia_orig_all).
|
64
|
-
|
66
|
+
and_call_original
|
65
67
|
|
66
68
|
# I realize that this is almost like testing that the stub worked, which we don't need to test.
|
67
69
|
# However, we are really testing that the results returned by the stub are passed back all the way
|
@@ -84,7 +86,7 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
84
86
|
# because it cannot work properly.
|
85
87
|
expect(contents_frame.page.document).
|
86
88
|
to receive(:__cornucopia__analyze_finder).
|
87
|
-
|
89
|
+
and_return(found_elements)
|
88
90
|
|
89
91
|
allow(contents_frame.page.document).
|
90
92
|
to receive(:__cornucopia_orig_all) do |*args|
|
@@ -95,7 +97,7 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
95
97
|
|
96
98
|
allow(contents_frame.page.document).
|
97
99
|
to receive(:__cornucopia_orig_all).
|
98
|
-
|
100
|
+
and_call_original
|
99
101
|
|
100
102
|
# I realize that this is almost like testing that the stub worked, which we don't need to test.
|
101
103
|
# However, we are really testing that the results returned by the stub are passed back all the way
|
@@ -116,7 +118,7 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
116
118
|
# because it cannot work properly.
|
117
119
|
expect(contents_frame.page.document).
|
118
120
|
to receive(:__cornucopia__analyze_finder).
|
119
|
-
|
121
|
+
and_return(found_elements)
|
120
122
|
|
121
123
|
allow(contents_frame.page.document).
|
122
124
|
to receive(:__cornucopia_orig_find) do |*args|
|
@@ -127,7 +129,7 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
127
129
|
|
128
130
|
allow(contents_frame.page.document).
|
129
131
|
to receive(:__cornucopia_orig_find).
|
130
|
-
|
132
|
+
and_call_original
|
131
133
|
|
132
134
|
# I realize that this is almost like testing that the stub worked, which we don't need to test.
|
133
135
|
# However, we are really testing that the results returned by the stub are passed back all the way
|
@@ -145,7 +147,12 @@ describe Cornucopia::Capybara::FinderExtensions, type: :feature do
|
|
145
147
|
|
146
148
|
expect do
|
147
149
|
::Capybara.current_session.synchronize_test do
|
148
|
-
|
150
|
+
if ::Capybara.respond_to?(:default_max_wait_time)
|
151
|
+
sleep(::Capybara.default_max_wait_time - 0.5)
|
152
|
+
else
|
153
|
+
sleep(::Capybara.default_wait_time - 0.5)
|
154
|
+
end
|
155
|
+
|
149
156
|
true
|
150
157
|
end
|
151
158
|
end.not_to raise_exception
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "rails_helper"
|
2
4
|
require ::File.expand_path("../../../lib/cornucopia/util/pretty_formatter", File.dirname(__FILE__))
|
3
5
|
|
@@ -362,8 +364,8 @@ def create_value(level, type, options = {})
|
|
362
364
|
when :parameters
|
363
365
|
sub_options = options.merge({ spaces_only: true })
|
364
366
|
|
365
|
-
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
366
|
-
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
367
|
+
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
368
|
+
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
367
369
|
|
368
370
|
unless pre_value.blank?
|
369
371
|
if rand(0..1) == 0
|
@@ -386,12 +388,12 @@ def create_value(level, type, options = {})
|
|
386
388
|
post_value = "\n#{post_value}"
|
387
389
|
end
|
388
390
|
|
389
|
-
value_val = "#{pre_value}Parameters:#{create_simple_value(:whitespace, sub_options)}#{val}#{post_value}"
|
390
|
-
value_expect = "#{pre_value.rstrip}#{pre_value.rstrip.blank? ? "" : "\n "}Parameters:\n#{expected}\n#{post_value.rstrip}"
|
391
|
+
value_val = "#{pre_value}Parameters:#{create_simple_value(:whitespace, sub_options)}#{val}#{post_value}".dup
|
392
|
+
value_expect = "#{pre_value.rstrip}#{pre_value.rstrip.blank? ? "" : "\n "}Parameters:\n#{expected}\n#{post_value.rstrip}".dup
|
391
393
|
|
392
394
|
rand(0..5).times do
|
393
|
-
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
394
|
-
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
395
|
+
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
396
|
+
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
395
397
|
|
396
398
|
if rand(0..1) == 0
|
397
399
|
val = create_simple_value(:whitespace, options)
|
@@ -438,8 +440,8 @@ def create_value(level, type, options = {})
|
|
438
440
|
value_expect.rstrip!
|
439
441
|
|
440
442
|
when :embedded_class
|
441
|
-
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
442
|
-
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
443
|
+
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
444
|
+
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
443
445
|
|
444
446
|
unless pre_value.blank?
|
445
447
|
if rand(0..1) == 0
|
@@ -462,12 +464,12 @@ def create_value(level, type, options = {})
|
|
462
464
|
post_value = "\n#{post_value}"
|
463
465
|
end
|
464
466
|
|
465
|
-
value_val = "#{pre_value}#{val}#{post_value}"
|
466
|
-
value_expect = "#{pre_value.rstrip}#{pre_value.rstrip.blank? ? "" : "\n"}#{expected}\n#{post_value.rstrip}"
|
467
|
+
value_val = "#{pre_value}#{val}#{post_value}".dup
|
468
|
+
value_expect = "#{pre_value.rstrip}#{pre_value.rstrip.blank? ? "" : "\n"}#{expected}\n#{post_value.rstrip}".dup
|
467
469
|
|
468
470
|
rand(0..5).times do
|
469
|
-
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
470
|
-
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : ""
|
471
|
+
pre_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
472
|
+
post_value = rand(0..1) == 0 ? Faker::Lorem.sentence : "".dup
|
471
473
|
|
472
474
|
if rand(0..1) == 0
|
473
475
|
val = create_simple_value(:whitespace, options)
|
@@ -515,9 +517,9 @@ def create_value(level, type, options = {})
|
|
515
517
|
|
516
518
|
when :class, :class_with_value
|
517
519
|
name = create_simple_value(:value_name_simple, options)
|
518
|
-
value_val = "\#<#{name}#{" " * rand(1..10)}"
|
519
|
-
value_expect = "#{" " * level}\#<#{name}"
|
520
|
-
append_value = ""
|
520
|
+
value_val = "\#<#{name}#{" " * rand(1..10)}".dup
|
521
|
+
value_expect = "#{" " * level}\#<#{name}".dup
|
522
|
+
append_value = "".dup
|
521
523
|
append_expect = "\n"
|
522
524
|
|
523
525
|
range_start = type == :class ? 0 : 1
|
@@ -561,9 +563,9 @@ def create_value(level, type, options = {})
|
|
561
563
|
options.merge!({ spaces_only: true })
|
562
564
|
|
563
565
|
name = create_simple_value(:value_name_simple, options)
|
564
|
-
value_val = "\#<#{name}#{" " * rand(1..10)}"
|
565
|
-
value_expect = "#{" " * level}\#<#{name}"
|
566
|
-
append_value = ""
|
566
|
+
value_val = "\#<#{name}#{" " * rand(1..10)}".dup
|
567
|
+
value_expect = "#{" " * level}\#<#{name}".dup
|
568
|
+
append_value = "".dup
|
567
569
|
append_expect = "\n"
|
568
570
|
|
569
571
|
rand(1..5).times do
|
@@ -583,7 +585,7 @@ def create_value(level, type, options = {})
|
|
583
585
|
|
584
586
|
case hash_type
|
585
587
|
when :hash_key_reversed_symbol
|
586
|
-
value_val << "#{append_value}#{name}#{" " * rand(0..10)}#{val}"
|
588
|
+
value_val << "#{append_value}#{name}#{" " * rand(0..10)}#{val}".dup
|
587
589
|
if val_type == :value
|
588
590
|
value_expect << "#{append_expect}#{" " * (level + 1)}#{name} #{expected}"
|
589
591
|
else
|
@@ -607,10 +609,10 @@ def create_value(level, type, options = {})
|
|
607
609
|
value_expect << "\n#{" " * level}>"
|
608
610
|
|
609
611
|
when :hash
|
610
|
-
value_val = "{#{create_simple_value(:whitespace, options)}"
|
611
|
-
value_expect = "#{" " * level}{\n"
|
612
|
-
append_value = ""
|
613
|
-
append_expect = ""
|
612
|
+
value_val = "{#{create_simple_value(:whitespace, options)}".dup
|
613
|
+
value_expect = "#{" " * level}{\n".dup
|
614
|
+
append_value = "".dup
|
615
|
+
append_expect = "".dup
|
614
616
|
|
615
617
|
rand(1..5).times do
|
616
618
|
hash_type = [:hash_key_string, :hash_key_complex_string, :hash_key_symbol, :hash_key_reversed_symbol].sample
|
@@ -653,10 +655,10 @@ def create_value(level, type, options = {})
|
|
653
655
|
value_expect << "\n#{" " * level}}"
|
654
656
|
|
655
657
|
when :array
|
656
|
-
value_val = "[#{create_simple_value(:whitespace, options)}"
|
657
|
-
value_expect = "#{" " * level}[\n"
|
658
|
-
append_value = ""
|
659
|
-
append_expect = ""
|
658
|
+
value_val = "[#{create_simple_value(:whitespace, options)}".dup
|
659
|
+
value_expect = "#{" " * level}[\n".dup
|
660
|
+
append_value = "".dup
|
661
|
+
append_expect = "".dup
|
660
662
|
|
661
663
|
rand(1..5).times do
|
662
664
|
val_type = [:class, :value, :hash, :array].sample
|