howitzer 2.2.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -1
  3. data/LICENSE +1 -1
  4. data/README.md +16 -17
  5. data/generators/base_generator.rb +4 -6
  6. data/generators/config/config_generator.rb +2 -4
  7. data/generators/config/templates/boot.rb +1 -1
  8. data/generators/config/templates/capybara.rb +3 -5
  9. data/generators/config/templates/default.yml +19 -20
  10. data/generators/config/templates/drivers/browserstack.rb +31 -4
  11. data/generators/config/templates/drivers/crossbrowsertesting.rb +9 -11
  12. data/generators/config/templates/drivers/headless_chrome.rb +1 -1
  13. data/generators/config/templates/drivers/headless_firefox.rb +1 -1
  14. data/generators/config/templates/drivers/lambdatest.rb +30 -0
  15. data/generators/config/templates/drivers/sauce.rb +30 -2
  16. data/generators/config/templates/drivers/selenium.rb +1 -1
  17. data/generators/config/templates/drivers/selenium_grid.rb +3 -3
  18. data/generators/config/templates/drivers/testingbot.rb +29 -2
  19. data/generators/cucumber/templates/env.rb +1 -1
  20. data/generators/cucumber/templates/hooks.rb +9 -3
  21. data/generators/cucumber/templates/transformers.rb +1 -1
  22. data/generators/prerequisites/templates/factory_bot.rb +1 -1
  23. data/generators/root/templates/Gemfile.erb +4 -14
  24. data/generators/rspec/templates/spec_helper.rb +5 -5
  25. data/generators/turnip/templates/spec_helper.rb +5 -5
  26. data/generators/web/templates/example_page.rb +1 -1
  27. data/lib/howitzer/cache.rb +1 -1
  28. data/lib/howitzer/capybara_helpers.rb +46 -9
  29. data/lib/howitzer/email.rb +2 -2
  30. data/lib/howitzer/exceptions.rb +21 -21
  31. data/lib/howitzer/gmail_api/client.rb +13 -4
  32. data/lib/howitzer/log.rb +6 -6
  33. data/lib/howitzer/mail_adapters/mailgun.rb +1 -1
  34. data/lib/howitzer/mail_adapters/mailtrap.rb +3 -3
  35. data/lib/howitzer/mail_adapters/onesecmail.rb +80 -0
  36. data/lib/howitzer/mail_adapters/testmail.rb +102 -0
  37. data/lib/howitzer/mailgun_api/client.rb +3 -2
  38. data/lib/howitzer/mailgun_api/response.rb +1 -2
  39. data/lib/howitzer/mailtrap_api/client.rb +19 -1
  40. data/lib/howitzer/meta/actions.rb +13 -16
  41. data/lib/howitzer/meta/element.rb +12 -10
  42. data/lib/howitzer/onesecmail_api/client.rb +44 -0
  43. data/lib/howitzer/onesecmail_api.rb +7 -0
  44. data/lib/howitzer/testmail_api/client.rb +44 -0
  45. data/lib/howitzer/testmail_api.rb +7 -0
  46. data/lib/howitzer/utils/string_extensions.rb +6 -2
  47. data/lib/howitzer/version.rb +1 -1
  48. data/lib/howitzer/web/base_section.rb +1 -1
  49. data/lib/howitzer/web/capybara_methods_proxy.rb +11 -5
  50. data/lib/howitzer/web/element_dsl.rb +104 -45
  51. data/lib/howitzer/web/iframe_dsl.rb +2 -2
  52. data/lib/howitzer/web/page.rb +4 -14
  53. data/lib/howitzer/web/page_dsl.rb +15 -6
  54. data/lib/howitzer/web/page_validator.rb +25 -26
  55. data/lib/howitzer/web/section.rb +5 -2
  56. data/lib/howitzer/web/section_dsl.rb +64 -30
  57. data/lib/howitzer.rb +2 -2
  58. metadata +29 -165
  59. data/.coveralls.yml +0 -1
  60. data/.gitignore +0 -14
  61. data/.rspec +0 -3
  62. data/.rubocop.yml +0 -60
  63. data/.ruby-gemset +0 -1
  64. data/.travis.yml +0 -8
  65. data/Gemfile +0 -14
  66. data/ISSUE_TEMPLATE.md +0 -16
  67. data/MAINTENANCE.md +0 -32
  68. data/Rakefile +0 -38
  69. data/features/cli_help.feature +0 -31
  70. data/features/cli_new.feature +0 -393
  71. data/features/cli_unknown.feature +0 -17
  72. data/features/cli_update.feature +0 -223
  73. data/features/cli_version.feature +0 -14
  74. data/features/step_definitions/common_steps.rb +0 -34
  75. data/features/support/env.rb +0 -1
  76. data/generators/config/templates/drivers/appium.rb +0 -25
  77. data/generators/config/templates/drivers/poltergeist.rb +0 -11
  78. data/generators/config/templates/drivers/webkit.rb +0 -6
  79. data/generators/root/templates/.gitignore +0 -21
  80. data/generators/root/templates/.rubocop.yml.erb +0 -56
  81. data/generators/turnip/templates/.rspec +0 -1
  82. data/howitzer.gemspec +0 -39
  83. data/lib/howitzer/mail_adapters/debugmail.rb +0 -0
  84. data/spec/config/custom.yml +0 -9
  85. data/spec/spec_helper.rb +0 -73
  86. data/spec/support/generator_helper.rb +0 -21
  87. data/spec/support/logger_helper.rb +0 -13
  88. data/spec/support/shared_examples/capybara_context_holder.rb +0 -33
  89. data/spec/support/shared_examples/capybara_methods_proxy.rb +0 -94
  90. data/spec/support/shared_examples/dynamic_section_methods.rb +0 -35
  91. data/spec/support/shared_examples/element_dsl.rb +0 -242
  92. data/spec/support/shared_examples/meta_highlight_xpath.rb +0 -41
  93. data/spec/unit/generators/base_generator_spec.rb +0 -283
  94. data/spec/unit/generators/config_generator_spec.rb +0 -61
  95. data/spec/unit/generators/cucumber_generator_spec.rb +0 -62
  96. data/spec/unit/generators/emails_generator_spec.rb +0 -35
  97. data/spec/unit/generators/prerequisites_generator_spec.rb +0 -53
  98. data/spec/unit/generators/root_generator_spec.rb +0 -86
  99. data/spec/unit/generators/rspec_generator_spec.rb +0 -36
  100. data/spec/unit/generators/tasks_generator_spec.rb +0 -31
  101. data/spec/unit/generators/templates/cucumber_spec.rb +0 -97
  102. data/spec/unit/generators/templates/rspec_spec.rb +0 -88
  103. data/spec/unit/generators/templates/turnip_spec.rb +0 -98
  104. data/spec/unit/generators/turnip_generator_spec.rb +0 -52
  105. data/spec/unit/generators/web_generator_spec.rb +0 -52
  106. data/spec/unit/lib/cache_spec.rb +0 -85
  107. data/spec/unit/lib/capybara_helpers_spec.rb +0 -730
  108. data/spec/unit/lib/email_spec.rb +0 -186
  109. data/spec/unit/lib/gmail_api/client_spec.rb +0 -26
  110. data/spec/unit/lib/howitzer_spec.rb +0 -92
  111. data/spec/unit/lib/init_spec.rb +0 -2
  112. data/spec/unit/lib/log_spec.rb +0 -122
  113. data/spec/unit/lib/mail_adapters/abstract_spec.rb +0 -62
  114. data/spec/unit/lib/mail_adapters/gmail_spec.rb +0 -128
  115. data/spec/unit/lib/mail_adapters/mailgun_spec.rb +0 -158
  116. data/spec/unit/lib/mail_adapters/mailtrap_spec.rb +0 -130
  117. data/spec/unit/lib/mailgun_api/client_spec.rb +0 -80
  118. data/spec/unit/lib/mailgun_api/connector_spec.rb +0 -54
  119. data/spec/unit/lib/mailgun_api/response_spec.rb +0 -28
  120. data/spec/unit/lib/mailtrap_api/client_spec.rb +0 -67
  121. data/spec/unit/lib/meta/element_spec.rb +0 -59
  122. data/spec/unit/lib/meta/entry_spec.rb +0 -77
  123. data/spec/unit/lib/meta/iframe_spec.rb +0 -66
  124. data/spec/unit/lib/meta/section_spec.rb +0 -43
  125. data/spec/unit/lib/utils/string_extensions_spec.rb +0 -77
  126. data/spec/unit/lib/web/base_section_spec.rb +0 -43
  127. data/spec/unit/lib/web/element_dsl_spec.rb +0 -31
  128. data/spec/unit/lib/web/iframe_dsl_spec.rb +0 -203
  129. data/spec/unit/lib/web/page_dsl_spec.rb +0 -74
  130. data/spec/unit/lib/web/page_spec.rb +0 -385
  131. data/spec/unit/lib/web/page_validator_spec.rb +0 -276
  132. data/spec/unit/lib/web/section_dsl_spec.rb +0 -165
  133. data/spec/unit/lib/web/section_spec.rb +0 -70
  134. data/spec/unit/version_spec.rb +0 -8
@@ -6,7 +6,7 @@ module Howitzer
6
6
  module PageValidator
7
7
  @validations = {}
8
8
 
9
- def self.included(base) #:nodoc:
9
+ def self.included(base) # :nodoc:
10
10
  base.extend(ClassMethods)
11
11
  end
12
12
 
@@ -28,11 +28,12 @@ module Howitzer
28
28
  # This module holds page validation class methods
29
29
  module ClassMethods
30
30
  # Adds validation to validation list for current page
31
- # @param name [Symbol, String] a validation type. Possible values [:url, :element_presence, :title]
32
- # @param value [Symbol, String, Regexp]
31
+ # @param type [Symbol, String] a validation type. Possible values [:url, :element_presence, :title]
32
+ # @param pattern_or_element_name [Symbol, String, Regexp]
33
33
  # For :url and :title validation types must be <b>Regexp</b>
34
- # For :element_presence must be one of element names described for page
35
- # @param additional_value [Object, nil] any value required to pass for a labmda selector
34
+ # For :element_presence must be one of element names described for the page
35
+ # @param args [Array] any arguments required to pass for a lambda selector (:element_presence type only)
36
+ # @param options [Hash] keyword arguments required to pass for a lambda selector (:element_presence type only)
36
37
  # @raise [Howitzer::UnknownValidationError] if unknown validation type
37
38
  # @raise [Howitzer::UndefinedElementError] if :element_presence validations refers to undefined element name
38
39
  # @example
@@ -45,12 +46,23 @@ module Howitzer
45
46
  # end
46
47
  # @example
47
48
  # class HomePage < Howitzer::Web::Page
48
- # validate :element_presence, :menu_item, 'Logout'
49
- # element :menu_item, :xpath, ->(name) { ".//a[.='#{name}']" }
49
+ # validate :element_presence, :menu_item, lambda_args(text: 'Logout')
50
+ # element :menu_item, :xpath, ->(text:) { ".//a[.='#{text}']" }
50
51
  # end
51
52
 
52
- def validate(name, value, additional_value = nil)
53
- validate_by_type(name, value, additional_value)
53
+ def validate(type, pattern_or_element_name, *args, **options)
54
+ case type.to_s.to_sym
55
+ when :url, :title
56
+ if args.present? || options.present?
57
+ raise ArgumentError, "Additional arguments and options are not supported by '#{type}' the validator"
58
+ end
59
+
60
+ send("validate_by_#{type}", pattern_or_element_name)
61
+ when :element_presence
62
+ validate_by_element_presence(pattern_or_element_name, *args, **options)
63
+ else
64
+ raise Howitzer::UnknownValidationError, "unknown '#{type}' validation type"
65
+ end
54
66
  end
55
67
 
56
68
  # Check whether current page is opened or no
@@ -80,17 +92,17 @@ module Howitzer
80
92
 
81
93
  private
82
94
 
83
- def validate_element(element_name, value = nil)
95
+ def validate_by_element_presence(element_name, *args, **options)
84
96
  validations[:element_presence] =
85
97
  lambda do |web_page, sync|
86
98
  if element_name.present? && !private_method_defined?("#{element_name}_element")
87
99
  raise(Howitzer::UndefinedElementError, ':element_presence validation refers to ' \
88
- "undefined '#{element_name}' element on '#{name}' page.")
100
+ "undefined '#{element_name}' element on '#{name}' page.")
89
101
  end
90
102
  if sync
91
- web_page.instance.public_send(*["has_#{element_name}_element?", value].compact)
103
+ web_page.instance.public_send("has_#{element_name}_element?", *args, **options)
92
104
  else
93
- !web_page.instance.public_send(*["has_no_#{element_name}_element?", value].compact)
105
+ !web_page.instance.public_send("has_no_#{element_name}_element?", *args, **options)
94
106
  end
95
107
  end
96
108
  end
@@ -104,19 +116,6 @@ module Howitzer
104
116
  validations[:title] =
105
117
  ->(web_page, sync) { sync ? web_page.instance.has_title?(pattern) : pattern === web_page.instance.title }
106
118
  end
107
-
108
- def validate_by_type(type, value, additional_value)
109
- case type.to_s.to_sym
110
- when :url
111
- validate_by_url(value)
112
- when :element_presence
113
- validate_element(value, additional_value)
114
- when :title
115
- validate_by_title(value)
116
- else
117
- raise Howitzer::UnknownValidationError, "unknown '#{type}' validation type"
118
- end
119
- end
120
119
  end
121
120
  end
122
121
  end
@@ -17,17 +17,20 @@ module Howitzer
17
17
  # DSL method which specifies section container selector represented by HTML element.
18
18
  # Any elements described in sections will start in this HTML element.
19
19
  # @param args [Array] original Capybara arguments. For details, see `Capybara::Node::Finders#all.
20
+ # @param options [Array] original Capybara options. For details, see `Capybara::Node::Finders#all.
20
21
  # @raise [ArgumentError] if no arguments were passed
21
22
  # @example
22
23
  # class MenuSection < Howitzer::Web::Section
23
- # me :xpath, ".//*[@id='panel']"
24
+ # me :xpath, ".//*[@id='panel']",
24
25
  # end
25
26
  # @!visibility public
26
27
 
27
- def me(*args)
28
+ def me(*args, **options)
28
29
  raise ArgumentError, 'Finder arguments are missing' if args.blank?
29
30
 
30
31
  @default_finder_args = args
32
+ @default_finder_options = options
33
+ self
31
34
  end
32
35
  end
33
36
  end
@@ -5,7 +5,7 @@ module Howitzer
5
5
  module SectionDsl
6
6
  include CapybaraContextHolder
7
7
 
8
- def self.included(base) #:nodoc:
8
+ def self.included(base) # :nodoc:
9
9
  base.extend(ClassMethods)
10
10
  end
11
11
 
@@ -17,8 +17,9 @@ module Howitzer
17
17
 
18
18
  # Instantiates an anynomous or named section and executes block code in the section scope
19
19
 
20
- def initialize(name, *args, &block)
20
+ def initialize(name, *args, **options, &block)
21
21
  @args = args
22
+ @options = options
22
23
  self.section_class =
23
24
  if block
24
25
  Class.new(Howitzer::Web::BaseSection)
@@ -29,30 +30,40 @@ module Howitzer
29
30
  end
30
31
 
31
32
  # # Defines an element on the section
32
- # # @see Howitzer::PageDsl::ClassMethods#element
33
+ # # @see Howitzer::Web::ElementDsl::ClassMethods#element
33
34
 
34
- def element(*args)
35
- section_class.send(:element, *args)
35
+ def element(*args, **options)
36
+ section_class.send(:element, *args, **options)
36
37
  end
37
38
 
38
39
  # Delegates a section describing to the section class
39
40
 
40
- def section(name, *args, &block)
41
- section_class.send(:section, name, *args, &block)
41
+ def section(name, *args, **options, &block)
42
+ section_class.send(:section, name, *args, **options, &block)
42
43
  end
43
44
 
44
- # Returns a selector for the section.
45
+ # Returns selector arguments for the section.
45
46
  # @note If anonymous section uses, then inline selector should be specified.
46
47
  # Otherwise arguments should be defined with `.me` dsl method in named section
47
48
  # @return [Array]
48
49
  # @raise [ArgumentError] when finder arguments were not specified
49
50
 
50
51
  def finder_args
51
- @finder_args ||= begin
52
- return @args if @args.present?
52
+ return @args if @args.present?
53
53
 
54
- section_class.default_finder_args || raise(ArgumentError, 'Missing finder arguments')
55
- end
54
+ @finder_args ||= (section_class.default_finder_args || raise(ArgumentError, 'Missing finder arguments'))
55
+ end
56
+
57
+ # Returns selector options for the section.
58
+ # @note If anonymous section uses, then inline selector should be specified.
59
+ # Otherwise arguments should be defined with `.me` dsl method in named section
60
+ # @return [Array]
61
+ # @raise [ArgumentError] when finder arguments were not specified
62
+
63
+ def finder_options
64
+ @options if @args.present? # it is ok to have blank options, so we rely here on the argments
65
+
66
+ @finder_options ||= (section_class.default_finder_options || {})
56
67
  end
57
68
  end
58
69
 
@@ -75,6 +86,9 @@ module Howitzer
75
86
  # @param args [Array] original Capybara arguments. For details, see `Capybara::Node::Finders#all.
76
87
  # (In most cases should be ommited for named sections because the section selector is specified
77
88
  # with `#me` method. But must be specified for anonymous sections)
89
+ # @param options [Hash] original Capybara options. For details, see `Capybara::Node::Finders#all.
90
+ # (In most cases should be ommited for named sections because the section selector is specified
91
+ # with `#me` method. But may be specified for anonymous sections)
78
92
  # @param block [Proc] this block can contain nested sections and elements
79
93
  # @example Named section
80
94
  # class MenuSection < Howitzer::Web::Section
@@ -110,37 +124,57 @@ module Howitzer
110
124
  # HomePage.on { info_panel_section.edit_info(title: 'Test Title') }
111
125
  # @!visibility public
112
126
 
113
- def section(name, *args, &block)
114
- scope = SectionScope.new(name, *args, &block)
115
- define_section_method(scope.section_class, name, scope.finder_args)
116
- define_sections_method(scope.section_class, name, scope.finder_args)
117
- define_has_section_method(name, scope.finder_args)
118
- define_has_no_section_method(name, scope.finder_args)
127
+ def section(name, *args, **options, &block)
128
+ scope = SectionScope.new(name, *args, **options, &block)
129
+ define_section_method(scope.section_class, name, *scope.finder_args, **scope.finder_options)
130
+ define_sections_method(scope.section_class, name, *scope.finder_args, **scope.finder_options)
131
+ define_has_section_method(name, *scope.finder_args, **scope.finder_options)
132
+ define_has_no_section_method(name, *scope.finder_args, **scope.finder_options)
119
133
  end
120
134
 
121
135
  private
122
136
 
123
- def define_section_method(klass, name, args)
124
- define_method("#{name}_section") do
125
- klass.new(self, capybara_context.find(*args))
137
+ def define_section_method(klass, name, *args, **options)
138
+ define_method("#{name}_section") do |**block_options|
139
+ kwdargs = options.transform_keys(&:to_sym).merge(block_options.transform_keys(&:to_sym))
140
+ if kwdargs.present?
141
+ klass.new(self, capybara_context.find(*args, **kwdargs))
142
+ else
143
+ klass.new(self, capybara_context.find(*args))
144
+ end
126
145
  end
127
146
  end
128
147
 
129
- def define_sections_method(klass, name, args)
130
- define_method("#{name}_sections") do
131
- capybara_context.all(*args).map { |el| klass.new(self, el) }
148
+ def define_sections_method(klass, name, *args, **options)
149
+ define_method("#{name}_sections") do |**block_options|
150
+ kwdargs = options.transform_keys(&:to_sym).merge(block_options.transform_keys(&:to_sym))
151
+ if kwdargs.present?
152
+ capybara_context.all(*args, **kwdargs).map { |el| klass.new(self, el) }
153
+ else
154
+ capybara_context.all(*args).map { |el| klass.new(self, el) }
155
+ end
132
156
  end
133
157
  end
134
158
 
135
- def define_has_section_method(name, args)
136
- define_method("has_#{name}_section?") do
137
- capybara_context.has_selector?(*args)
159
+ def define_has_section_method(name, *args, **options)
160
+ define_method("has_#{name}_section?") do |**block_options|
161
+ kwdargs = options.transform_keys(&:to_sym).merge(block_options.transform_keys(&:to_sym))
162
+ if kwdargs.present?
163
+ capybara_context.has_selector?(*args, **kwdargs)
164
+ else
165
+ capybara_context.has_selector?(*args)
166
+ end
138
167
  end
139
168
  end
140
169
 
141
- def define_has_no_section_method(name, args)
142
- define_method("has_no_#{name}_section?") do
143
- capybara_context.has_no_selector?(*args)
170
+ def define_has_no_section_method(name, *args, **options)
171
+ define_method("has_no_#{name}_section?") do |**block_options|
172
+ kwdargs = options.transform_keys(&:to_sym).merge(block_options.transform_keys(&:to_sym))
173
+ if kwdargs.present?
174
+ capybara_context.has_no_selector?(*args, **kwdarg)
175
+ else
176
+ capybara_context.has_no_selector?(*args)
177
+ end
144
178
  end
145
179
  end
146
180
  end
data/lib/howitzer.rb CHANGED
@@ -64,8 +64,8 @@ module Howitzer
64
64
  # end
65
65
  # end
66
66
 
67
- def using_session(name)
68
- Capybara.using_session(name) { yield }
67
+ def using_session(name, &block)
68
+ Capybara.using_session(name, &block)
69
69
  end
70
70
 
71
71
  attr_accessor :current_rake_task
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howitzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Parashchenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-18 00:00:00.000000000 Z
11
+ date: 2022-09-09 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
+ - !ruby/object:Gem::Version
19
+ version: '5'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '5.0'
22
+ version: '7'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '5'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '5.0'
32
+ version: '7'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: capybara
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +72,6 @@ dependencies:
66
72
  - - ">="
67
73
  - !ruby/object:Gem::Version
68
74
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: gmail
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
75
  - !ruby/object:Gem::Dependency
84
76
  name: launchy
85
77
  requirement: !ruby/object:Gem::Requirement
@@ -157,9 +149,6 @@ dependencies:
157
149
  - - ">="
158
150
  - !ruby/object:Gem::Version
159
151
  version: 3.4.1
160
- - - "<"
161
- - !ruby/object:Gem::Version
162
- version: '4.0'
163
152
  type: :runtime
164
153
  prerelease: false
165
154
  version_requirements: !ruby/object:Gem::Requirement
@@ -167,9 +156,6 @@ dependencies:
167
156
  - - ">="
168
157
  - !ruby/object:Gem::Version
169
158
  version: 3.4.1
170
- - - "<"
171
- - !ruby/object:Gem::Version
172
- version: '4.0'
173
159
  - !ruby/object:Gem::Dependency
174
160
  name: sexy_settings
175
161
  requirement: !ruby/object:Gem::Requirement
@@ -249,46 +235,27 @@ executables:
249
235
  extensions: []
250
236
  extra_rdoc_files: []
251
237
  files:
252
- - ".coveralls.yml"
253
- - ".gitignore"
254
- - ".rspec"
255
- - ".rubocop.yml"
256
- - ".ruby-gemset"
257
- - ".travis.yml"
258
238
  - ".yardopts"
259
239
  - CHANGELOG.md
260
240
  - CONTRIBUTING.md
261
- - Gemfile
262
- - ISSUE_TEMPLATE.md
263
241
  - LICENSE
264
- - MAINTENANCE.md
265
242
  - README.md
266
- - Rakefile
267
243
  - bin/howitzer
268
- - features/cli_help.feature
269
- - features/cli_new.feature
270
- - features/cli_unknown.feature
271
- - features/cli_update.feature
272
- - features/cli_version.feature
273
- - features/step_definitions/common_steps.rb
274
- - features/support/env.rb
275
244
  - generators/base_generator.rb
276
245
  - generators/config/config_generator.rb
277
246
  - generators/config/templates/boot.rb
278
247
  - generators/config/templates/capybara.rb
279
248
  - generators/config/templates/custom.yml
280
249
  - generators/config/templates/default.yml
281
- - generators/config/templates/drivers/appium.rb
282
250
  - generators/config/templates/drivers/browserstack.rb
283
251
  - generators/config/templates/drivers/crossbrowsertesting.rb
284
252
  - generators/config/templates/drivers/headless_chrome.rb
285
253
  - generators/config/templates/drivers/headless_firefox.rb
286
- - generators/config/templates/drivers/poltergeist.rb
254
+ - generators/config/templates/drivers/lambdatest.rb
287
255
  - generators/config/templates/drivers/sauce.rb
288
256
  - generators/config/templates/drivers/selenium.rb
289
257
  - generators/config/templates/drivers/selenium_grid.rb
290
258
  - generators/config/templates/drivers/testingbot.rb
291
- - generators/config/templates/drivers/webkit.rb
292
259
  - generators/cucumber/cucumber_generator.rb
293
260
  - generators/cucumber/templates/common_steps.rb
294
261
  - generators/cucumber/templates/cucumber.rake
@@ -305,8 +272,6 @@ files:
305
272
  - generators/prerequisites/templates/user.rb
306
273
  - generators/prerequisites/templates/users.rb
307
274
  - generators/root/root_generator.rb
308
- - generators/root/templates/.gitignore
309
- - generators/root/templates/.rubocop.yml.erb
310
275
  - generators/root/templates/Gemfile.erb
311
276
  - generators/root/templates/Rakefile
312
277
  - generators/rspec/rspec_generator.rb
@@ -315,7 +280,6 @@ files:
315
280
  - generators/rspec/templates/spec_helper.rb
316
281
  - generators/tasks/tasks_generator.rb
317
282
  - generators/tasks/templates/common.rake
318
- - generators/turnip/templates/.rspec
319
283
  - generators/turnip/templates/common_steps.rb
320
284
  - generators/turnip/templates/example.feature
321
285
  - generators/turnip/templates/spec_helper.rb
@@ -325,7 +289,6 @@ files:
325
289
  - generators/web/templates/example_page.rb
326
290
  - generators/web/templates/menu_section.rb
327
291
  - generators/web/web_generator.rb
328
- - howitzer.gemspec
329
292
  - lib/howitzer.rb
330
293
  - lib/howitzer/cache.rb
331
294
  - lib/howitzer/capybara_helpers.rb
@@ -336,10 +299,11 @@ files:
336
299
  - lib/howitzer/log.rb
337
300
  - lib/howitzer/mail_adapters.rb
338
301
  - lib/howitzer/mail_adapters/abstract.rb
339
- - lib/howitzer/mail_adapters/debugmail.rb
340
302
  - lib/howitzer/mail_adapters/gmail.rb
341
303
  - lib/howitzer/mail_adapters/mailgun.rb
342
304
  - lib/howitzer/mail_adapters/mailtrap.rb
305
+ - lib/howitzer/mail_adapters/onesecmail.rb
306
+ - lib/howitzer/mail_adapters/testmail.rb
343
307
  - lib/howitzer/mailgun_api.rb
344
308
  - lib/howitzer/mailgun_api/client.rb
345
309
  - lib/howitzer/mailgun_api/connector.rb
@@ -352,7 +316,11 @@ files:
352
316
  - lib/howitzer/meta/entry.rb
353
317
  - lib/howitzer/meta/iframe.rb
354
318
  - lib/howitzer/meta/section.rb
319
+ - lib/howitzer/onesecmail_api.rb
320
+ - lib/howitzer/onesecmail_api/client.rb
355
321
  - lib/howitzer/tasks/framework.rake
322
+ - lib/howitzer/testmail_api.rb
323
+ - lib/howitzer/testmail_api/client.rb
356
324
  - lib/howitzer/utils.rb
357
325
  - lib/howitzer/utils/string_extensions.rb
358
326
  - lib/howitzer/version.rb
@@ -368,61 +336,15 @@ files:
368
336
  - lib/howitzer/web/page_validator.rb
369
337
  - lib/howitzer/web/section.rb
370
338
  - lib/howitzer/web/section_dsl.rb
371
- - spec/config/custom.yml
372
- - spec/spec_helper.rb
373
- - spec/support/generator_helper.rb
374
- - spec/support/logger_helper.rb
375
- - spec/support/shared_examples/capybara_context_holder.rb
376
- - spec/support/shared_examples/capybara_methods_proxy.rb
377
- - spec/support/shared_examples/dynamic_section_methods.rb
378
- - spec/support/shared_examples/element_dsl.rb
379
- - spec/support/shared_examples/meta_highlight_xpath.rb
380
- - spec/unit/generators/base_generator_spec.rb
381
- - spec/unit/generators/config_generator_spec.rb
382
- - spec/unit/generators/cucumber_generator_spec.rb
383
- - spec/unit/generators/emails_generator_spec.rb
384
- - spec/unit/generators/prerequisites_generator_spec.rb
385
- - spec/unit/generators/root_generator_spec.rb
386
- - spec/unit/generators/rspec_generator_spec.rb
387
- - spec/unit/generators/tasks_generator_spec.rb
388
- - spec/unit/generators/templates/cucumber_spec.rb
389
- - spec/unit/generators/templates/rspec_spec.rb
390
- - spec/unit/generators/templates/turnip_spec.rb
391
- - spec/unit/generators/turnip_generator_spec.rb
392
- - spec/unit/generators/web_generator_spec.rb
393
- - spec/unit/lib/cache_spec.rb
394
- - spec/unit/lib/capybara_helpers_spec.rb
395
- - spec/unit/lib/email_spec.rb
396
- - spec/unit/lib/gmail_api/client_spec.rb
397
- - spec/unit/lib/howitzer_spec.rb
398
- - spec/unit/lib/init_spec.rb
399
- - spec/unit/lib/log_spec.rb
400
- - spec/unit/lib/mail_adapters/abstract_spec.rb
401
- - spec/unit/lib/mail_adapters/gmail_spec.rb
402
- - spec/unit/lib/mail_adapters/mailgun_spec.rb
403
- - spec/unit/lib/mail_adapters/mailtrap_spec.rb
404
- - spec/unit/lib/mailgun_api/client_spec.rb
405
- - spec/unit/lib/mailgun_api/connector_spec.rb
406
- - spec/unit/lib/mailgun_api/response_spec.rb
407
- - spec/unit/lib/mailtrap_api/client_spec.rb
408
- - spec/unit/lib/meta/element_spec.rb
409
- - spec/unit/lib/meta/entry_spec.rb
410
- - spec/unit/lib/meta/iframe_spec.rb
411
- - spec/unit/lib/meta/section_spec.rb
412
- - spec/unit/lib/utils/string_extensions_spec.rb
413
- - spec/unit/lib/web/base_section_spec.rb
414
- - spec/unit/lib/web/element_dsl_spec.rb
415
- - spec/unit/lib/web/iframe_dsl_spec.rb
416
- - spec/unit/lib/web/page_dsl_spec.rb
417
- - spec/unit/lib/web/page_spec.rb
418
- - spec/unit/lib/web/page_validator_spec.rb
419
- - spec/unit/lib/web/section_dsl_spec.rb
420
- - spec/unit/lib/web/section_spec.rb
421
- - spec/unit/version_spec.rb
422
- homepage: http://strongqa.github.io/howitzer/
339
+ homepage: https://howitzer-framework.io/
423
340
  licenses:
424
341
  - MIT
425
- metadata: {}
342
+ metadata:
343
+ bug_tracker_uri: https://github.com/strongqa/howitzer/issues
344
+ changelog_uri: https://github.com/strongqa/howitzer/blob/master/CHANGELOG.md
345
+ documentation_uri: https://www.rubydoc.info/gems/howitzer/2.5.0
346
+ source_code_uri: https://github.com/strongqa/howitzer
347
+ rubygems_mfa_required: 'false'
426
348
  post_install_message:
427
349
  rdoc_options: []
428
350
  require_paths:
@@ -431,73 +353,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
431
353
  requirements:
432
354
  - - ">="
433
355
  - !ruby/object:Gem::Version
434
- version: '2.3'
356
+ version: 2.6.8
435
357
  required_rubygems_version: !ruby/object:Gem::Requirement
436
358
  requirements:
437
359
  - - ">="
438
360
  - !ruby/object:Gem::Version
439
361
  version: '0'
440
362
  requirements: []
441
- rubygems_version: 3.0.2
363
+ rubygems_version: 3.2.33
442
364
  signing_key:
443
365
  specification_version: 4
444
366
  summary: Ruby based framework for acceptance testing
445
- test_files:
446
- - features/cli_help.feature
447
- - features/cli_new.feature
448
- - features/cli_unknown.feature
449
- - features/cli_update.feature
450
- - features/cli_version.feature
451
- - features/step_definitions/common_steps.rb
452
- - features/support/env.rb
453
- - spec/config/custom.yml
454
- - spec/spec_helper.rb
455
- - spec/support/generator_helper.rb
456
- - spec/support/logger_helper.rb
457
- - spec/support/shared_examples/capybara_context_holder.rb
458
- - spec/support/shared_examples/capybara_methods_proxy.rb
459
- - spec/support/shared_examples/dynamic_section_methods.rb
460
- - spec/support/shared_examples/element_dsl.rb
461
- - spec/support/shared_examples/meta_highlight_xpath.rb
462
- - spec/unit/generators/base_generator_spec.rb
463
- - spec/unit/generators/config_generator_spec.rb
464
- - spec/unit/generators/cucumber_generator_spec.rb
465
- - spec/unit/generators/emails_generator_spec.rb
466
- - spec/unit/generators/prerequisites_generator_spec.rb
467
- - spec/unit/generators/root_generator_spec.rb
468
- - spec/unit/generators/rspec_generator_spec.rb
469
- - spec/unit/generators/tasks_generator_spec.rb
470
- - spec/unit/generators/templates/cucumber_spec.rb
471
- - spec/unit/generators/templates/rspec_spec.rb
472
- - spec/unit/generators/templates/turnip_spec.rb
473
- - spec/unit/generators/turnip_generator_spec.rb
474
- - spec/unit/generators/web_generator_spec.rb
475
- - spec/unit/lib/cache_spec.rb
476
- - spec/unit/lib/capybara_helpers_spec.rb
477
- - spec/unit/lib/email_spec.rb
478
- - spec/unit/lib/gmail_api/client_spec.rb
479
- - spec/unit/lib/howitzer_spec.rb
480
- - spec/unit/lib/init_spec.rb
481
- - spec/unit/lib/log_spec.rb
482
- - spec/unit/lib/mail_adapters/abstract_spec.rb
483
- - spec/unit/lib/mail_adapters/gmail_spec.rb
484
- - spec/unit/lib/mail_adapters/mailgun_spec.rb
485
- - spec/unit/lib/mail_adapters/mailtrap_spec.rb
486
- - spec/unit/lib/mailgun_api/client_spec.rb
487
- - spec/unit/lib/mailgun_api/connector_spec.rb
488
- - spec/unit/lib/mailgun_api/response_spec.rb
489
- - spec/unit/lib/mailtrap_api/client_spec.rb
490
- - spec/unit/lib/meta/element_spec.rb
491
- - spec/unit/lib/meta/entry_spec.rb
492
- - spec/unit/lib/meta/iframe_spec.rb
493
- - spec/unit/lib/meta/section_spec.rb
494
- - spec/unit/lib/utils/string_extensions_spec.rb
495
- - spec/unit/lib/web/base_section_spec.rb
496
- - spec/unit/lib/web/element_dsl_spec.rb
497
- - spec/unit/lib/web/iframe_dsl_spec.rb
498
- - spec/unit/lib/web/page_dsl_spec.rb
499
- - spec/unit/lib/web/page_spec.rb
500
- - spec/unit/lib/web/page_validator_spec.rb
501
- - spec/unit/lib/web/section_dsl_spec.rb
502
- - spec/unit/lib/web/section_spec.rb
503
- - spec/unit/version_spec.rb
367
+ test_files: []
data/.coveralls.yml DELETED
@@ -1 +0,0 @@
1
- service_name: travis-ci
data/.gitignore DELETED
@@ -1,14 +0,0 @@
1
- coverage
2
- .idea
3
- .rvmrc
4
- *.gem
5
- vendor/bundle/*
6
- spec/log/*
7
- Gemfile.lock
8
- doc
9
- .yardoc
10
- tmp/*
11
- .bundle
12
- **/.DS_Store
13
- .ruby-version
14
- .byebug_history
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --require fuubar
3
- --format Fuubar