cornucopia 0.1.40 → 0.1.41

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/cornucopia.gemspec +1 -1
  4. data/lib/cornucopia.rb +7 -0
  5. data/lib/cornucopia/capybara/finder_diagnostics.rb +10 -6
  6. data/lib/cornucopia/capybara/finder_extensions.rb +24 -15
  7. data/lib/cornucopia/capybara/install_extensions.rb +44 -0
  8. data/lib/cornucopia/capybara/matcher_extensions.rb +33 -21
  9. data/lib/cornucopia/capybara/page_diagnostics.rb +44 -1
  10. data/lib/cornucopia/capybara/selectable_values.rb +47 -0
  11. data/lib/cornucopia/capybara/synchronizable.rb +24 -0
  12. data/lib/cornucopia/cucumber_hooks.rb +6 -3
  13. data/lib/cornucopia/rspec_hooks.rb +5 -4
  14. data/lib/cornucopia/site_prism/element_extensions.rb +16 -2
  15. data/lib/cornucopia/site_prism/install_extensions.rb +18 -0
  16. data/lib/cornucopia/site_prism/page_application.rb +3 -1
  17. data/lib/cornucopia/site_prism/section_extensions.rb +23 -0
  18. data/lib/cornucopia/spinach_hooks.rb +6 -3
  19. data/lib/cornucopia/util/configuration.rb +14 -6
  20. data/lib/cornucopia/util/configured_report.rb +3 -1
  21. data/lib/cornucopia/util/file_asset.rb +3 -1
  22. data/lib/cornucopia/util/generic_settings.rb +3 -1
  23. data/lib/cornucopia/util/log_capture.rb +4 -2
  24. data/lib/cornucopia/util/pretty_formatter.rb +4 -2
  25. data/lib/cornucopia/util/report_builder.rb +9 -6
  26. data/lib/cornucopia/util/report_formatters.rb +3 -1
  27. data/lib/cornucopia/util/report_table.rb +4 -2
  28. data/lib/cornucopia/util/test_helper.rb +8 -2
  29. data/lib/cornucopia/version.rb +2 -2
  30. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  31. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  32. data/spec/dummy/config/application.rb +2 -0
  33. data/spec/dummy/config/boot.rb +2 -0
  34. data/spec/dummy/config/environment.rb +2 -0
  35. data/spec/dummy/config/environments/development.rb +2 -0
  36. data/spec/dummy/config/environments/production.rb +2 -0
  37. data/spec/dummy/config/environments/test.rb +2 -0
  38. data/spec/dummy/config/initializers/backtrace_silencers.rb +2 -0
  39. data/spec/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  40. data/spec/dummy/config/initializers/inflections.rb +2 -0
  41. data/spec/dummy/config/initializers/mime_types.rb +2 -0
  42. data/spec/dummy/config/initializers/secret_token.rb +2 -0
  43. data/spec/dummy/config/initializers/session_store.rb +2 -0
  44. data/spec/dummy/config/initializers/wrap_parameters.rb +2 -0
  45. data/spec/dummy/config/routes.rb +2 -0
  46. data/spec/dummy/db/schema.rb +2 -0
  47. data/spec/dummy/features/support/env.rb +2 -0
  48. data/spec/lib/capybara/finder_diagnostics_spec.rb +68 -58
  49. data/spec/lib/capybara/finder_extensions_spec.rb +13 -6
  50. data/spec/lib/capybara/matcher_extensions_spec.rb +2 -0
  51. data/spec/lib/capybara/page_diagnostics_spec.rb +2 -0
  52. data/spec/lib/site_prism/element_extensions_spec.rb +2 -0
  53. data/spec/lib/site_prism/page_application_spec.rb +2 -0
  54. data/spec/lib/util/configuration_spec.rb +2 -0
  55. data/spec/lib/util/configured_report_spec.rb +2 -0
  56. data/spec/lib/util/file_asset_spec.rb +2 -0
  57. data/spec/lib/util/generic_settings_spec.rb +2 -0
  58. data/spec/lib/util/log_capture_spec.rb +2 -0
  59. data/spec/lib/util/pretty_formatter_spec.rb +29 -27
  60. data/spec/lib/util/report_builder_spec.rb +5 -3
  61. data/spec/lib/util/report_formatters_spec.rb +2 -0
  62. data/spec/lib/util/report_table_exception_spec.rb +2 -0
  63. data/spec/lib/util/report_table_spec.rb +4 -2
  64. data/spec/lib/util/test_helper_spec.rb +2 -0
  65. data/spec/pages/cornucopia_report_app.rb +2 -0
  66. data/spec/pages/cornucopia_report_pages/cornucopia_report_holder_page.rb +2 -0
  67. data/spec/pages/cornucopia_report_pages/cornucopia_report_test_contents_page.rb +2 -0
  68. data/spec/pages/cornucopia_report_pages/index_page.rb +2 -0
  69. data/spec/pages/google/email_page.rb +2 -0
  70. data/spec/pages/google/login_page.rb +2 -0
  71. data/spec/rails_helper.rb +2 -0
  72. data/spec/sample_report.rb +2 -0
  73. data/spec/spec_helper.rb +2 -0
  74. metadata +11 -9
  75. data/lib/cornucopia/capybara/install_finder_extensions.rb +0 -105
  76. data/lib/cornucopia/capybara/install_matcher_extensions.rb +0 -43
  77. data/lib/cornucopia/site_prism/install_element_extensions.rb +0 -54
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new inflection rules using the following format. Inflections
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new mime types for use in respond_to blocks:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Your secret key is used for verifying the integrity of signed cookies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # This file contains settings for ActionController::ParamsWrapper which
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dummy::Application.routes.draw do
2
4
  # The priority is based upon order of creation: first created -> highest priority.
3
5
  # See how all your routes lay out with "rake routes".
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # encoding: UTF-8
2
4
  # This file is auto-generated from the current state of the database. Instead
3
5
  # of editing this file, please use the migrations feature of Active Record to
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ENV["RAILS_ENV"] ||= "test"
2
4
  require File.absolute_path(File.join(File.dirname(__FILE__), "../../config/environment.rb"))
3
5
  ENV["RAILS_ROOT"] ||= File.absolute_path(File.join(File.dirname(__FILE__), "../../"))
@@ -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 == 10
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 /report_contents\.html/
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 == "html_file"
102
- expect(contents_frame.errors[0].more_details.details.rows[5].value_links[0][:href]).
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[6].labels[0].text).to be == "html_frame"
105
- expect(contents_frame.errors[0].more_details.details.rows[6].value_frames[0][:src]).
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[7].labels[0].text).to be == "html_source"
108
- expect(contents_frame.errors[0].more_details.details.rows[7].value_textareas[0].text).to be
109
- expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to be == "page_height"
110
- expect(contents_frame.errors[0].more_details.details.rows[8].values[0].text).to be
111
- expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "page_width"
112
- expect(contents_frame.errors[0].more_details.details.rows[9].values[0].text).to be
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 == 12
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 /report_contents\.html/
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 == "html_file"
180
- expect(contents_frame.errors[0].more_details.details.rows[7].value_links[0][:href]).
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[8].labels[0].text).to be == "html_frame"
183
- expect(contents_frame.errors[0].more_details.details.rows[8].value_frames[0][:src]).
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[9].labels[0].text).to be == "html_source"
186
- expect(contents_frame.errors[0].more_details.details.rows[9].value_textareas[0].text).to be
187
- expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "page_height"
188
- expect(contents_frame.errors[0].more_details.details.rows[10].values[0].text).to be
189
- expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to be == "page_width"
190
- expect(contents_frame.errors[0].more_details.details.rows[11].values[0].text).to be
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(find_all.length).to be == test_all.length
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 == 11
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 /report_contents\.html/
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 == "html_file"
291
- expect(contents_frame.errors[0].more_details.details.rows[6].value_links[0][:href]).
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[7].labels[0].text).to be == "html_frame"
294
- expect(contents_frame.errors[0].more_details.details.rows[7].value_frames[0][:src]).
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[8].labels[0].text).to be == "html_source"
297
- expect(contents_frame.errors[0].more_details.details.rows[8].value_textareas[0].text).to be
298
- expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to be == "page_height"
299
- expect(contents_frame.errors[0].more_details.details.rows[9].values[0].text).to be
300
- expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to be == "page_width"
301
- expect(contents_frame.errors[0].more_details.details.rows[10].values[0].text).to be
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 12
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 eq "html_file"
338
- expect(contents_frame.errors[0].more_details.details.rows[8].labels[0].text).to eq "html_frame"
339
- expect(contents_frame.errors[0].more_details.details.rows[9].labels[0].text).to eq "html_source"
340
- expect(contents_frame.errors[0].more_details.details.rows[10].labels[0].text).to eq "page_height"
341
- expect(contents_frame.errors[0].more_details.details.rows[11].labels[0].text).to eq "page_width"
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 == "elem_selected"
370
- expect(hidden_row_specs[5].labels[0].text).to be == "elem_tag_name"
371
- expect(hidden_row_specs[6].labels[0].text).to be == "elem_value"
372
- expect(hidden_row_specs[7].labels[0].text).to be == "elem_visible"
373
- expect(hidden_row_specs[7].values[0].text).to be == "false"
374
- expect(hidden_row_specs[8].labels[0].text).to be == "native_aria_meta_data"
375
- expect(hidden_row_specs[9].labels[0].text).to be == "native_class"
376
- expect(hidden_row_specs[10].labels[0].text).to be == "native_onclick"
377
- expect(hidden_row_specs[11].labels[0].text).to be == "native_size"
378
- expect(hidden_row_specs[11].sub_tables[0].rows[0].labels[0].text).to be == "width"
379
- expect(hidden_row_specs[11].sub_tables[0].rows[1].labels[0].text).to be == "height"
380
- expect(hidden_row_specs[12].labels[0].text).to be == "native_type"
381
- expect(hidden_row_specs[12].values[0].text).to be == "button"
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
- and_call_original
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
- and_return(found_elements)
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
- and_call_original
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
- and_return(found_elements)
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
- and_call_original
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
- sleep(::Capybara.default_wait_time - 0.5)
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/capybara/matcher_extensions", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require 'rack/file'
3
5
  require ::File.expand_path("../../../lib/cornucopia/util/report_builder", File.dirname(__FILE__))
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/site_prism/element_extensions", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/site_prism/page_application", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/util/configuration", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/util/configured_report", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require "tempfile"
3
5
  require ::File.expand_path("../../../lib/cornucopia/util/file_asset", File.dirname(__FILE__))
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/util/generic_settings", File.dirname(__FILE__))
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/util/log_capture", File.dirname(__FILE__))
3
5
 
@@ -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