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
  require "rails_helper"
2
4
  require ::File.expand_path("../../../lib/cornucopia/util/report_builder", File.dirname(__FILE__))
3
5
 
@@ -251,7 +253,7 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
251
253
  end
252
254
 
253
255
  it "returns a string as-is" do
254
- test_object = "a string"
256
+ test_object = "a string".dup
255
257
 
256
258
  expect(test_object).not_to receive(:pretty_inspect)
257
259
  expect(test_object).not_to receive(:to_s)
@@ -1524,8 +1526,8 @@ This is a sample string c:/bizarro/ <span class=\"cornucopia-app-file\">features
1524
1526
 
1525
1527
  expect(report_table.errors.count).to eq 1
1526
1528
  section = report_table.errors[0]
1527
- # this line is the same as the next one. I added this line to test a line in the site-prims extentions.
1529
+
1528
1530
  expect(section.find("p").text).to eq section_names[0]
1529
1531
  expect(section.name.text).to eq section_names[0]
1530
1532
  end
1531
- end
1533
+ end
@@ -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_formatters", 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/report_table", 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/report_table", File.dirname(__FILE__))
3
5
 
@@ -263,7 +265,7 @@ describe Cornucopia::Util::ReportTable do
263
265
  raise Exception.new("This is an exception")
264
266
  end
265
267
  end
266
- end.to raise_error(Exception)
268
+ end.to raise_error(Exception, "This is an exception")
267
269
 
268
270
  expect(report_table).to be
269
271
  expect(report_table.full_table).to match /#{second_label}/
@@ -301,7 +303,7 @@ describe Cornucopia::Util::ReportTable do
301
303
  end
302
304
  end
303
305
  end
304
- end.to raise_error(Exception)
306
+ end.to raise_error(Exception, "This is an exception")
305
307
 
306
308
  expect(report_table).to be
307
309
  expect(report_table.full_table).to match /#{second_label}/
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rails_helper"
2
4
 
3
5
  class FakeFeature
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require ::File.expand_path("../../lib/cornucopia/site_prism/page_application", File.dirname(__FILE__))
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 File.expand_path("cornucopia_report_test_contents_page", File.dirname(__FILE__))
2
4
 
3
5
  module CornucopiaReportPages
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CornucopiaReportPages
2
4
  class CornucopiaReportTestContentsPage < SitePrism::Page
3
5
  class RowSection < SitePrism::Section
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CornucopiaReportPages
2
4
  class IndexPage < SitePrism::Page
3
5
  class IndexContentsPage < SitePrism::Page
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GooglePages
2
4
  class EmailSection < SitePrism::Section
3
5
  # include GalaxyPages::SimpleElements
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "rspec/expectations"
2
4
 
3
5
  module GooglePages
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file is copied to spec/ when you run 'rails generate rspec:install'
2
4
  ENV["RAILS_ENV"] ||= 'test'
3
5
  require "spec_helper"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require ::File.expand_path("../lib/cornucopia/util/report_builder", File.dirname(__FILE__))
2
4
 
3
5
  def generate_report_file(folder_name)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'simplecov'
2
4
  SimpleCov.start do
3
5
  add_filter "/spec/"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cornucopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.40
4
+ version: 0.1.41
5
5
  platform: ruby
6
6
  authors:
7
7
  - RealNobody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-11 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -223,15 +223,17 @@ files:
223
223
  - lib/cornucopia.rb
224
224
  - lib/cornucopia/capybara/finder_diagnostics.rb
225
225
  - lib/cornucopia/capybara/finder_extensions.rb
226
- - lib/cornucopia/capybara/install_finder_extensions.rb
227
- - lib/cornucopia/capybara/install_matcher_extensions.rb
226
+ - lib/cornucopia/capybara/install_extensions.rb
228
227
  - lib/cornucopia/capybara/matcher_extensions.rb
229
228
  - lib/cornucopia/capybara/page_diagnostics.rb
229
+ - lib/cornucopia/capybara/selectable_values.rb
230
+ - lib/cornucopia/capybara/synchronizable.rb
230
231
  - lib/cornucopia/cucumber_hooks.rb
231
232
  - lib/cornucopia/rspec_hooks.rb
232
233
  - lib/cornucopia/site_prism/element_extensions.rb
233
- - lib/cornucopia/site_prism/install_element_extensions.rb
234
+ - lib/cornucopia/site_prism/install_extensions.rb
234
235
  - lib/cornucopia/site_prism/page_application.rb
236
+ - lib/cornucopia/site_prism/section_extensions.rb
235
237
  - lib/cornucopia/source_files/collapse.gif
236
238
  - lib/cornucopia/source_files/cornucopia.css
237
239
  - lib/cornucopia/source_files/expand.gif
@@ -1,105 +0,0 @@
1
- $cornucopia_finder_extension_installed = false unless defined? $cornucopia_finder_extension_installed
2
-
3
- if Object.const_defined?("Capybara") &&
4
- Capybara.const_defined?("Node") &&
5
- Capybara::Node.const_defined?("Document") &&
6
- !$cornucopia_finder_extension_installed
7
- module Capybara
8
- module Node
9
- class Document
10
- alias_method :__cornucopia_orig_find, :find
11
- alias_method :__cornucopia_orig_all, :all
12
-
13
- include Cornucopia::Capybara::FinderExtensions
14
- end
15
- end
16
- end
17
- end
18
-
19
- if Object.const_defined?("Capybara") &&
20
- Capybara.const_defined?("Node") &&
21
- Capybara::Node.const_defined?("Simple") &&
22
- !$cornucopia_finder_extension_installed
23
- module Capybara
24
- module Node
25
- class Simple
26
- alias_method :__cornucopia_orig_find, :find
27
- alias_method :__cornucopia_orig_all, :all
28
-
29
- include Cornucopia::Capybara::FinderExtensions
30
- end
31
- end
32
- end
33
- end
34
-
35
- if Object.const_defined?("Capybara") &&
36
- Capybara.const_defined?("Node") &&
37
- Capybara::Node.const_defined?("Element") &&
38
- !$cornucopia_finder_extension_installed
39
- module Capybara
40
- module Node
41
- class Element
42
- alias_method :__cornucopia_orig_find, :find
43
- alias_method :__cornucopia_orig_all, :all
44
-
45
- include Cornucopia::Capybara::FinderExtensions
46
-
47
- # select_value finds the option with the value #value then calls select_option on that item.
48
- #
49
- # select_value only works on select boxes.
50
- def select_value(values)
51
- raise "select_value is only valid for select items" unless self.tag_name == "select"
52
-
53
- if values.is_a?(Array)
54
- values.each do |value|
55
- html_safe_value = "".html_safe + value.to_s
56
- self.find("option[value=\"#{html_safe_value}\"]", visible: false).select_option
57
- end
58
- else
59
- html_safe_value = "".html_safe + values.to_s
60
- self.find("option[value=\"#{html_safe_value}\"]", visible: false).select_option
61
- end
62
- end
63
-
64
- # value_text returns the text for the selected items in the select box instead of the value(s)
65
- #
66
- # value_text only works on select boxes.
67
- def value_text
68
- raise "value_text is only valid for select items" unless self.tag_name == "select"
69
-
70
- values = self.value
71
- if values.is_a?(Array)
72
- values.map do |value|
73
- self.find("option[value=\"#{value}\"]", visible: false).text
74
- end
75
- else
76
- self.find("option[value=\"#{values}\"]", visible: false).text
77
- end
78
- end
79
- end
80
- end
81
- end
82
- end
83
-
84
- if Object.const_defined?("Capybara") &&
85
- Capybara.const_defined?("Session") &&
86
- !$cornucopia_finder_extension_installed
87
- $cornucopia_finder_extension_installed = true
88
-
89
- module Capybara
90
- class Session
91
- # alias_method :__cornucopia_orig_find, :find
92
- # alias_method :__cornucopia_orig_all, :all
93
- #
94
- # include Cornucopia::Capybara::FinderExtensions
95
-
96
- # This function uses Capybara's synchronize function to evaluate a block until
97
- # it becomes true.
98
- def synchronize_test(seconds=Capybara.default_wait_time, options = {}, &block)
99
- document.synchronize(seconds, options) do
100
- raise ::Capybara::ElementNotFound unless block.yield
101
- end
102
- end
103
- end
104
- end
105
- end
@@ -1,43 +0,0 @@
1
- $cornucopia_matcher_extension_installed = false unless defined? $cornucopia_matcher_extension_installed
2
-
3
- if Object.const_defined?("Capybara") &&
4
- Capybara.const_defined?("Node") &&
5
- Capybara::Node.const_defined?("Document") &&
6
- !$cornucopia_matcher_extension_installed
7
- module Capybara
8
- module Node
9
- class Document
10
- alias_method :__cornucopia_orig_assert_selector, :assert_selector
11
- alias_method :__cornucopia_orig_assert_no_selector, :assert_no_selector
12
- alias_method :__cornucopia_orig_has_selector?, :has_selector?
13
- alias_method :__cornucopia_orig_has_no_selector?, :has_no_selector?
14
-
15
- include Cornucopia::Capybara::MatcherExtensions
16
- end
17
- end
18
- end
19
- end
20
-
21
- if Object.const_defined?("Capybara") &&
22
- Capybara.const_defined?("Node") &&
23
- Capybara::Node.const_defined?("Element") &&
24
- !$cornucopia_matcher_extension_installed
25
- module Capybara
26
- module Node
27
- class Element
28
- alias_method :__cornucopia_orig_assert_selector, :assert_selector
29
- alias_method :__cornucopia_orig_assert_no_selector, :assert_no_selector
30
- alias_method :__cornucopia_orig_has_selector?, :has_selector?
31
- alias_method :__cornucopia_orig_has_no_selector?, :has_no_selector?
32
-
33
- include Cornucopia::Capybara::MatcherExtensions
34
- end
35
- end
36
- end
37
- end
38
-
39
- if Object.const_defined?("Capybara") &&
40
- Capybara.const_defined?("Session") &&
41
- !$cornucopia_matcher_extension_installed
42
- $cornucopia_matcher_extension_installed = true
43
- end
@@ -1,54 +0,0 @@
1
- $cornucopia_element_extension_installed = false unless defined? $cornucopia_element_extension_installed
2
-
3
- if Object.const_defined?("SitePrism") &&
4
- ::SitePrism.const_defined?("Page") &&
5
- !$cornucopia_element_extension_installed
6
- module ::SitePrism
7
- class Page
8
- include Cornucopia::SitePrism::ElementExtensions
9
-
10
- ::Capybara::Session::DSL_METHODS.each do |method|
11
- alias_method "__cornucopia_orig_#{method}".to_sym, method
12
-
13
- define_method method do |*args, &block|
14
- if @__corunucopia_base_node
15
- @__corunucopia_base_node.send method, *args, &block
16
- else
17
- send "__cornucopia_orig_#{method}", *args, &block
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
24
-
25
- if Object.const_defined?("SitePrism") &&
26
- ::SitePrism.const_defined?("Section") &&
27
- !$cornucopia_element_extension_installed
28
- $cornucopia_element_extension_installed = true
29
-
30
- module ::SitePrism
31
- class Section
32
- include Cornucopia::SitePrism::ElementExtensions
33
-
34
- alias_method :__corunucopia_orig_intialize, :initialize
35
- def initialize(*args)
36
- __corunucopia_orig_intialize(*args)
37
-
38
- self.owner_node = args[0].owner_node
39
- end
40
-
41
- ::Capybara::Session::DSL_METHODS.each do |method|
42
- alias_method "__cornucopia_orig_#{method}".to_sym, method
43
-
44
- define_method method do |*args, &block|
45
- if @__corunucopia_base_node
46
- @__corunucopia_base_node.send method, *args, &block
47
- else
48
- send "__cornucopia_orig_#{method}", *args, &block
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end