howitzer 2.2.0 → 2.3.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 +16 -1
- data/LICENSE +1 -1
- data/README.md +16 -16
- data/generators/base_generator.rb +1 -1
- data/generators/config/config_generator.rb +1 -4
- data/generators/config/templates/boot.rb +1 -1
- data/generators/config/templates/capybara.rb +1 -3
- data/generators/config/templates/default.yml +5 -19
- data/generators/config/templates/drivers/browserstack.rb +1 -1
- data/generators/config/templates/drivers/crossbrowsertesting.rb +1 -1
- 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/sauce.rb +1 -1
- data/generators/config/templates/drivers/selenium.rb +1 -1
- data/generators/config/templates/drivers/selenium_grid.rb +2 -2
- data/generators/config/templates/drivers/testingbot.rb +1 -1
- data/generators/cucumber/templates/env.rb +1 -1
- data/generators/cucumber/templates/hooks.rb +8 -2
- data/generators/cucumber/templates/transformers.rb +1 -1
- data/generators/prerequisites/templates/factory_bot.rb +1 -1
- data/generators/root/templates/Gemfile.erb +4 -10
- data/generators/rspec/templates/spec_helper.rb +4 -4
- data/generators/turnip/templates/spec_helper.rb +4 -4
- data/generators/web/templates/example_page.rb +1 -1
- data/lib/howitzer/cache.rb +1 -1
- data/lib/howitzer/capybara_helpers.rb +27 -7
- 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/mailgun_api/client.rb +3 -2
- data/lib/howitzer/mailgun_api/response.rb +1 -2
- data/lib/howitzer/mailtrap_api/client.rb +1 -1
- data/lib/howitzer/meta/actions.rb +13 -16
- data/lib/howitzer/meta/element.rb +12 -10
- 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 +24 -161
- 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/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.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Roman Parashchenko
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-09-18 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
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '5
|
|
29
|
+
version: '5'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::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
|
|
@@ -249,29 +241,12 @@ executables:
|
|
|
249
241
|
extensions: []
|
|
250
242
|
extra_rdoc_files: []
|
|
251
243
|
files:
|
|
252
|
-
- ".coveralls.yml"
|
|
253
|
-
- ".gitignore"
|
|
254
|
-
- ".rspec"
|
|
255
|
-
- ".rubocop.yml"
|
|
256
|
-
- ".ruby-gemset"
|
|
257
|
-
- ".travis.yml"
|
|
258
244
|
- ".yardopts"
|
|
259
245
|
- CHANGELOG.md
|
|
260
246
|
- CONTRIBUTING.md
|
|
261
|
-
- Gemfile
|
|
262
|
-
- ISSUE_TEMPLATE.md
|
|
263
247
|
- LICENSE
|
|
264
|
-
- MAINTENANCE.md
|
|
265
248
|
- README.md
|
|
266
|
-
- Rakefile
|
|
267
249
|
- 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
250
|
- generators/base_generator.rb
|
|
276
251
|
- generators/config/config_generator.rb
|
|
277
252
|
- generators/config/templates/boot.rb
|
|
@@ -283,12 +258,10 @@ files:
|
|
|
283
258
|
- generators/config/templates/drivers/crossbrowsertesting.rb
|
|
284
259
|
- generators/config/templates/drivers/headless_chrome.rb
|
|
285
260
|
- generators/config/templates/drivers/headless_firefox.rb
|
|
286
|
-
- generators/config/templates/drivers/poltergeist.rb
|
|
287
261
|
- generators/config/templates/drivers/sauce.rb
|
|
288
262
|
- generators/config/templates/drivers/selenium.rb
|
|
289
263
|
- generators/config/templates/drivers/selenium_grid.rb
|
|
290
264
|
- generators/config/templates/drivers/testingbot.rb
|
|
291
|
-
- generators/config/templates/drivers/webkit.rb
|
|
292
265
|
- generators/cucumber/cucumber_generator.rb
|
|
293
266
|
- generators/cucumber/templates/common_steps.rb
|
|
294
267
|
- generators/cucumber/templates/cucumber.rake
|
|
@@ -305,8 +278,6 @@ files:
|
|
|
305
278
|
- generators/prerequisites/templates/user.rb
|
|
306
279
|
- generators/prerequisites/templates/users.rb
|
|
307
280
|
- generators/root/root_generator.rb
|
|
308
|
-
- generators/root/templates/.gitignore
|
|
309
|
-
- generators/root/templates/.rubocop.yml.erb
|
|
310
281
|
- generators/root/templates/Gemfile.erb
|
|
311
282
|
- generators/root/templates/Rakefile
|
|
312
283
|
- generators/rspec/rspec_generator.rb
|
|
@@ -315,7 +286,6 @@ files:
|
|
|
315
286
|
- generators/rspec/templates/spec_helper.rb
|
|
316
287
|
- generators/tasks/tasks_generator.rb
|
|
317
288
|
- generators/tasks/templates/common.rake
|
|
318
|
-
- generators/turnip/templates/.rspec
|
|
319
289
|
- generators/turnip/templates/common_steps.rb
|
|
320
290
|
- generators/turnip/templates/example.feature
|
|
321
291
|
- generators/turnip/templates/spec_helper.rb
|
|
@@ -325,7 +295,6 @@ files:
|
|
|
325
295
|
- generators/web/templates/example_page.rb
|
|
326
296
|
- generators/web/templates/menu_section.rb
|
|
327
297
|
- generators/web/web_generator.rb
|
|
328
|
-
- howitzer.gemspec
|
|
329
298
|
- lib/howitzer.rb
|
|
330
299
|
- lib/howitzer/cache.rb
|
|
331
300
|
- lib/howitzer/capybara_helpers.rb
|
|
@@ -336,7 +305,6 @@ files:
|
|
|
336
305
|
- lib/howitzer/log.rb
|
|
337
306
|
- lib/howitzer/mail_adapters.rb
|
|
338
307
|
- lib/howitzer/mail_adapters/abstract.rb
|
|
339
|
-
- lib/howitzer/mail_adapters/debugmail.rb
|
|
340
308
|
- lib/howitzer/mail_adapters/gmail.rb
|
|
341
309
|
- lib/howitzer/mail_adapters/mailgun.rb
|
|
342
310
|
- lib/howitzer/mail_adapters/mailtrap.rb
|
|
@@ -368,62 +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:
|
|
426
|
-
|
|
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.3.0
|
|
346
|
+
source_code_uri: https://github.com/strongqa/howitzer
|
|
347
|
+
post_install_message:
|
|
427
348
|
rdoc_options: []
|
|
428
349
|
require_paths:
|
|
429
350
|
- lib
|
|
@@ -431,73 +352,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
431
352
|
requirements:
|
|
432
353
|
- - ">="
|
|
433
354
|
- !ruby/object:Gem::Version
|
|
434
|
-
version:
|
|
355
|
+
version: 2.6.8
|
|
435
356
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
436
357
|
requirements:
|
|
437
358
|
- - ">="
|
|
438
359
|
- !ruby/object:Gem::Version
|
|
439
360
|
version: '0'
|
|
440
361
|
requirements: []
|
|
441
|
-
rubygems_version: 3.
|
|
442
|
-
signing_key:
|
|
362
|
+
rubygems_version: 3.2.22
|
|
363
|
+
signing_key:
|
|
443
364
|
specification_version: 4
|
|
444
365
|
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
|
|
366
|
+
test_files: []
|
data/.coveralls.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
service_name: travis-ci
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# See full list of defaults here: https://github.com/bbatsov/rubocop/blob/master/config/default.yml
|
|
2
|
-
# To see all cops used see here: https://github.com/bbatsov/rubocop/blob/master/config/enabled.yml
|
|
3
|
-
|
|
4
|
-
AllCops:
|
|
5
|
-
TargetRubyVersion: 2.3
|
|
6
|
-
DisplayCopNames: true
|
|
7
|
-
|
|
8
|
-
Layout/CaseIndentation:
|
|
9
|
-
Enabled: false
|
|
10
|
-
|
|
11
|
-
Lint/AmbiguousBlockAssociation:
|
|
12
|
-
Enabled: false
|
|
13
|
-
|
|
14
|
-
Lint/AmbiguousRegexpLiteral:
|
|
15
|
-
Enabled: false
|
|
16
|
-
|
|
17
|
-
Metrics/BlockLength:
|
|
18
|
-
Enabled: false
|
|
19
|
-
|
|
20
|
-
Metrics/LineLength:
|
|
21
|
-
Max: 120
|
|
22
|
-
|
|
23
|
-
Metrics/MethodLength:
|
|
24
|
-
Max: 30
|
|
25
|
-
|
|
26
|
-
Metrics/ModuleLength:
|
|
27
|
-
Max: 150
|
|
28
|
-
|
|
29
|
-
Style/CaseEquality:
|
|
30
|
-
Enabled: false
|
|
31
|
-
|
|
32
|
-
Style/EmptyElse:
|
|
33
|
-
Enabled: false
|
|
34
|
-
|
|
35
|
-
Style/EvalWithLocation:
|
|
36
|
-
Enabled: false
|
|
37
|
-
|
|
38
|
-
Style/FormatStringToken:
|
|
39
|
-
Enabled: false
|
|
40
|
-
|
|
41
|
-
Style/FrozenStringLiteralComment:
|
|
42
|
-
Enabled: false
|
|
43
|
-
|
|
44
|
-
Style/MixinGrouping:
|
|
45
|
-
EnforcedStyle: separated
|
|
46
|
-
Exclude:
|
|
47
|
-
- '**/*_steps.rb'
|
|
48
|
-
- 'tmp/**'
|
|
49
|
-
|
|
50
|
-
Style/MixinUsage:
|
|
51
|
-
Enabled: false
|
|
52
|
-
|
|
53
|
-
Style/RescueStandardError:
|
|
54
|
-
Enabled: false
|
|
55
|
-
|
|
56
|
-
Style/TrivialAccessors:
|
|
57
|
-
AllowDSLWriters: true
|
|
58
|
-
|
|
59
|
-
Style/YodaCondition:
|
|
60
|
-
Enabled: false
|
data/.ruby-gemset
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
howitzer
|