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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -1
- data/LICENSE +1 -1
- data/README.md +16 -17
- data/generators/base_generator.rb +4 -6
- data/generators/config/config_generator.rb +2 -4
- data/generators/config/templates/boot.rb +1 -1
- data/generators/config/templates/capybara.rb +3 -5
- data/generators/config/templates/default.yml +19 -20
- data/generators/config/templates/drivers/browserstack.rb +31 -4
- data/generators/config/templates/drivers/crossbrowsertesting.rb +9 -11
- data/generators/config/templates/drivers/headless_chrome.rb +1 -1
- data/generators/config/templates/drivers/headless_firefox.rb +1 -1
- data/generators/config/templates/drivers/lambdatest.rb +30 -0
- data/generators/config/templates/drivers/sauce.rb +30 -2
- data/generators/config/templates/drivers/selenium.rb +1 -1
- data/generators/config/templates/drivers/selenium_grid.rb +3 -3
- data/generators/config/templates/drivers/testingbot.rb +29 -2
- data/generators/cucumber/templates/env.rb +1 -1
- data/generators/cucumber/templates/hooks.rb +9 -3
- data/generators/cucumber/templates/transformers.rb +1 -1
- data/generators/prerequisites/templates/factory_bot.rb +1 -1
- data/generators/root/templates/Gemfile.erb +4 -14
- data/generators/rspec/templates/spec_helper.rb +5 -5
- data/generators/turnip/templates/spec_helper.rb +5 -5
- data/generators/web/templates/example_page.rb +1 -1
- data/lib/howitzer/cache.rb +1 -1
- data/lib/howitzer/capybara_helpers.rb +46 -9
- data/lib/howitzer/email.rb +2 -2
- data/lib/howitzer/exceptions.rb +21 -21
- data/lib/howitzer/gmail_api/client.rb +13 -4
- data/lib/howitzer/log.rb +6 -6
- data/lib/howitzer/mail_adapters/mailgun.rb +1 -1
- data/lib/howitzer/mail_adapters/mailtrap.rb +3 -3
- data/lib/howitzer/mail_adapters/onesecmail.rb +80 -0
- data/lib/howitzer/mail_adapters/testmail.rb +102 -0
- data/lib/howitzer/mailgun_api/client.rb +3 -2
- data/lib/howitzer/mailgun_api/response.rb +1 -2
- data/lib/howitzer/mailtrap_api/client.rb +19 -1
- data/lib/howitzer/meta/actions.rb +13 -16
- data/lib/howitzer/meta/element.rb +12 -10
- data/lib/howitzer/onesecmail_api/client.rb +44 -0
- data/lib/howitzer/onesecmail_api.rb +7 -0
- data/lib/howitzer/testmail_api/client.rb +44 -0
- data/lib/howitzer/testmail_api.rb +7 -0
- data/lib/howitzer/utils/string_extensions.rb +6 -2
- data/lib/howitzer/version.rb +1 -1
- data/lib/howitzer/web/base_section.rb +1 -1
- data/lib/howitzer/web/capybara_methods_proxy.rb +11 -5
- data/lib/howitzer/web/element_dsl.rb +104 -45
- data/lib/howitzer/web/iframe_dsl.rb +2 -2
- data/lib/howitzer/web/page.rb +4 -14
- data/lib/howitzer/web/page_dsl.rb +15 -6
- data/lib/howitzer/web/page_validator.rb +25 -26
- data/lib/howitzer/web/section.rb +5 -2
- data/lib/howitzer/web/section_dsl.rb +64 -30
- data/lib/howitzer.rb +2 -2
- metadata +29 -165
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -14
- data/.rspec +0 -3
- data/.rubocop.yml +0 -60
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -8
- data/Gemfile +0 -14
- data/ISSUE_TEMPLATE.md +0 -16
- data/MAINTENANCE.md +0 -32
- data/Rakefile +0 -38
- data/features/cli_help.feature +0 -31
- data/features/cli_new.feature +0 -393
- data/features/cli_unknown.feature +0 -17
- data/features/cli_update.feature +0 -223
- data/features/cli_version.feature +0 -14
- data/features/step_definitions/common_steps.rb +0 -34
- data/features/support/env.rb +0 -1
- data/generators/config/templates/drivers/appium.rb +0 -25
- data/generators/config/templates/drivers/poltergeist.rb +0 -11
- data/generators/config/templates/drivers/webkit.rb +0 -6
- data/generators/root/templates/.gitignore +0 -21
- data/generators/root/templates/.rubocop.yml.erb +0 -56
- data/generators/turnip/templates/.rspec +0 -1
- data/howitzer.gemspec +0 -39
- data/lib/howitzer/mail_adapters/debugmail.rb +0 -0
- data/spec/config/custom.yml +0 -9
- data/spec/spec_helper.rb +0 -73
- data/spec/support/generator_helper.rb +0 -21
- data/spec/support/logger_helper.rb +0 -13
- data/spec/support/shared_examples/capybara_context_holder.rb +0 -33
- data/spec/support/shared_examples/capybara_methods_proxy.rb +0 -94
- data/spec/support/shared_examples/dynamic_section_methods.rb +0 -35
- data/spec/support/shared_examples/element_dsl.rb +0 -242
- data/spec/support/shared_examples/meta_highlight_xpath.rb +0 -41
- data/spec/unit/generators/base_generator_spec.rb +0 -283
- data/spec/unit/generators/config_generator_spec.rb +0 -61
- data/spec/unit/generators/cucumber_generator_spec.rb +0 -62
- data/spec/unit/generators/emails_generator_spec.rb +0 -35
- data/spec/unit/generators/prerequisites_generator_spec.rb +0 -53
- data/spec/unit/generators/root_generator_spec.rb +0 -86
- data/spec/unit/generators/rspec_generator_spec.rb +0 -36
- data/spec/unit/generators/tasks_generator_spec.rb +0 -31
- data/spec/unit/generators/templates/cucumber_spec.rb +0 -97
- data/spec/unit/generators/templates/rspec_spec.rb +0 -88
- data/spec/unit/generators/templates/turnip_spec.rb +0 -98
- data/spec/unit/generators/turnip_generator_spec.rb +0 -52
- data/spec/unit/generators/web_generator_spec.rb +0 -52
- data/spec/unit/lib/cache_spec.rb +0 -85
- data/spec/unit/lib/capybara_helpers_spec.rb +0 -730
- data/spec/unit/lib/email_spec.rb +0 -186
- data/spec/unit/lib/gmail_api/client_spec.rb +0 -26
- data/spec/unit/lib/howitzer_spec.rb +0 -92
- data/spec/unit/lib/init_spec.rb +0 -2
- data/spec/unit/lib/log_spec.rb +0 -122
- data/spec/unit/lib/mail_adapters/abstract_spec.rb +0 -62
- data/spec/unit/lib/mail_adapters/gmail_spec.rb +0 -128
- data/spec/unit/lib/mail_adapters/mailgun_spec.rb +0 -158
- data/spec/unit/lib/mail_adapters/mailtrap_spec.rb +0 -130
- data/spec/unit/lib/mailgun_api/client_spec.rb +0 -80
- data/spec/unit/lib/mailgun_api/connector_spec.rb +0 -54
- data/spec/unit/lib/mailgun_api/response_spec.rb +0 -28
- data/spec/unit/lib/mailtrap_api/client_spec.rb +0 -67
- data/spec/unit/lib/meta/element_spec.rb +0 -59
- data/spec/unit/lib/meta/entry_spec.rb +0 -77
- data/spec/unit/lib/meta/iframe_spec.rb +0 -66
- data/spec/unit/lib/meta/section_spec.rb +0 -43
- data/spec/unit/lib/utils/string_extensions_spec.rb +0 -77
- data/spec/unit/lib/web/base_section_spec.rb +0 -43
- data/spec/unit/lib/web/element_dsl_spec.rb +0 -31
- data/spec/unit/lib/web/iframe_dsl_spec.rb +0 -203
- data/spec/unit/lib/web/page_dsl_spec.rb +0 -74
- data/spec/unit/lib/web/page_spec.rb +0 -385
- data/spec/unit/lib/web/page_validator_spec.rb +0 -276
- data/spec/unit/lib/web/section_dsl_spec.rb +0 -165
- data/spec/unit/lib/web/section_spec.rb +0 -70
- 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)
|
|
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
|
|
32
|
-
# @param
|
|
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
|
|
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, ->(
|
|
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(
|
|
53
|
-
|
|
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
|
|
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
|
-
|
|
100
|
+
"undefined '#{element_name}' element on '#{name}' page.")
|
|
89
101
|
end
|
|
90
102
|
if sync
|
|
91
|
-
web_page.instance.public_send(
|
|
103
|
+
web_page.instance.public_send("has_#{element_name}_element?", *args, **options)
|
|
92
104
|
else
|
|
93
|
-
!web_page.instance.public_send(
|
|
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
|
data/lib/howitzer/web/section.rb
CHANGED
|
@@ -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)
|
|
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::
|
|
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
|
|
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
|
-
@
|
|
52
|
-
return @args if @args.present?
|
|
52
|
+
return @args if @args.present?
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
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.
|
|
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:
|
|
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: '
|
|
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: '
|
|
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/
|
|
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
|
-
-
|
|
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:
|
|
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.
|
|
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
data/.rspec
DELETED