cornucopia 0.1.40 → 0.1.41

Sign up to get free protection for your applications and to get access to all the features.
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