howitzer 2.0.3 → 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 +5 -5
- data/CHANGELOG.md +69 -11
- data/LICENSE +1 -1
- data/README.md +21 -17
- data/bin/howitzer +7 -6
- data/generators/base_generator.rb +31 -17
- data/generators/config/config_generator.rb +11 -3
- data/generators/config/templates/boot.rb +3 -3
- data/generators/config/templates/capybara.rb +6 -131
- data/generators/config/templates/default.yml +34 -13
- data/generators/config/templates/drivers/appium.rb +25 -0
- data/generators/config/templates/drivers/browserstack.rb +23 -0
- data/generators/config/templates/drivers/crossbrowsertesting.rb +29 -0
- data/generators/config/templates/drivers/headless_chrome.rb +15 -0
- data/generators/config/templates/drivers/headless_firefox.rb +23 -0
- data/generators/config/templates/drivers/sauce.rb +25 -0
- data/generators/config/templates/drivers/selenium.rb +24 -0
- data/generators/config/templates/drivers/selenium_grid.rb +31 -0
- data/generators/config/templates/drivers/testingbot.rb +24 -0
- data/generators/cucumber/cucumber_generator.rb +2 -2
- data/generators/cucumber/templates/common_steps.rb +3 -3
- data/generators/cucumber/templates/cucumber.rake +5 -13
- data/generators/cucumber/templates/cuke_sniffer.rake +2 -2
- data/generators/cucumber/templates/env.rb +9 -1
- data/generators/cucumber/templates/hooks.rb +8 -2
- data/generators/cucumber/templates/transformers.rb +11 -25
- data/generators/emails/emails_generator.rb +2 -2
- data/generators/emails/templates/example_email.rb +1 -1
- data/generators/prerequisites/prerequisites_generator.rb +3 -3
- data/generators/prerequisites/templates/base.rb +1 -1
- data/generators/prerequisites/templates/{factory_girl.rb → factory_bot.rb} +7 -6
- data/generators/prerequisites/templates/users.rb +1 -1
- data/generators/root/root_generator.rb +3 -3
- data/generators/root/templates/Gemfile.erb +16 -22
- data/generators/rspec/rspec_generator.rb +2 -2
- data/generators/rspec/templates/rspec.rake +8 -8
- data/generators/rspec/templates/spec_helper.rb +6 -5
- data/generators/tasks/tasks_generator.rb +2 -2
- data/generators/turnip/templates/spec_helper.rb +6 -5
- data/generators/turnip/turnip_generator.rb +2 -2
- data/generators/web/templates/example_page.rb +1 -1
- data/generators/web/web_generator.rb +2 -2
- data/lib/howitzer/cache.rb +20 -19
- data/lib/howitzer/capybara_helpers.rb +58 -13
- data/lib/howitzer/email.rb +3 -2
- data/lib/howitzer/exceptions.rb +21 -20
- data/lib/howitzer/gmail_api/client.rb +31 -0
- data/lib/howitzer/gmail_api.rb +7 -0
- data/lib/howitzer/log.rb +6 -6
- data/lib/howitzer/mail_adapters/gmail.rb +96 -0
- data/lib/howitzer/mail_adapters/mailgun.rb +4 -2
- data/lib/howitzer/mail_adapters/mailtrap.rb +108 -0
- data/lib/howitzer/mailgun_api/client.rb +3 -2
- data/lib/howitzer/mailgun_api/connector.rb +1 -0
- data/lib/howitzer/mailgun_api/response.rb +1 -2
- data/lib/howitzer/mailtrap_api/client.rb +52 -0
- data/lib/howitzer/mailtrap_api.rb +7 -0
- data/lib/howitzer/meta/actions.rb +35 -0
- data/lib/howitzer/meta/element.rb +40 -0
- data/lib/howitzer/meta/entry.rb +62 -0
- data/lib/howitzer/meta/iframe.rb +41 -0
- data/lib/howitzer/meta/section.rb +30 -0
- data/lib/howitzer/meta.rb +11 -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_context_holder.rb +1 -0
- data/lib/howitzer/web/capybara_methods_proxy.rb +15 -6
- data/lib/howitzer/web/element_dsl.rb +104 -44
- data/lib/howitzer/web/iframe_dsl.rb +23 -3
- data/lib/howitzer/web/page.rb +16 -4
- data/lib/howitzer/web/page_dsl.rb +19 -7
- data/lib/howitzer/web/page_validator.rb +27 -26
- data/lib/howitzer/web/section.rb +13 -2
- data/lib/howitzer/web/section_dsl.rb +65 -30
- data/lib/howitzer.rb +66 -10
- metadata +67 -133
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -14
- data/.rspec +0 -3
- data/.rubocop.yml +0 -44
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -7
- data/Gemfile +0 -13
- data/MAINTENANCE.md +0 -32
- data/Rakefile +0 -22
- data/features/cli_help.feature +0 -31
- data/features/cli_new.feature +0 -349
- data/features/cli_unknown.feature +0 -17
- data/features/cli_update.feature +0 -178
- data/features/cli_version.feature +0 -14
- data/features/step_definitions/common_steps.rb +0 -29
- data/features/support/env.rb +0 -1
- data/features/support/transformers.rb +0 -3
- data/generators/root/templates/.gitignore +0 -21
- data/generators/root/templates/.rubocop.yml +0 -35
- data/generators/turnip/templates/.rspec +0 -1
- data/howitzer.gemspec +0 -37
- data/lib/howitzer/mail_adapters/debugmail.rb +0 -0
- data/spec/config/custom.yml +0 -9
- data/spec/spec_helper.rb +0 -72
- data/spec/support/generator_helper.rb +0 -21
- data/spec/support/logger_helper.rb +0 -13
- data/spec/support/mailgun_unit_client.rb +0 -68
- 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/unit/generators/base_generator_spec.rb +0 -272
- data/spec/unit/generators/config_generator_spec.rb +0 -38
- 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 -72
- data/spec/unit/generators/rspec_generator_spec.rb +0 -36
- data/spec/unit/generators/tasks_generator_spec.rb +0 -31
- 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 -696
- data/spec/unit/lib/email_spec.rb +0 -186
- data/spec/unit/lib/howitzer_spec.rb +0 -40
- 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/mailgun_spec.rb +0 -163
- data/spec/unit/lib/mailgun_api/client_spec.rb +0 -58
- 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/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 -22
- data/spec/unit/lib/web/iframe_dsl_spec.rb +0 -144
- data/spec/unit/lib/web/page_dsl_spec.rb +0 -74
- data/spec/unit/lib/web/page_spec.rb +0 -349
- 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 -63
- data/spec/unit/version_spec.rb +0 -8
|
@@ -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,29 +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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
return @args if @args.present?
|
|
53
|
+
|
|
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 || {})
|
|
55
67
|
end
|
|
56
68
|
end
|
|
57
69
|
|
|
@@ -74,6 +86,9 @@ module Howitzer
|
|
|
74
86
|
# @param args [Array] original Capybara arguments. For details, see `Capybara::Node::Finders#all.
|
|
75
87
|
# (In most cases should be ommited for named sections because the section selector is specified
|
|
76
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)
|
|
77
92
|
# @param block [Proc] this block can contain nested sections and elements
|
|
78
93
|
# @example Named section
|
|
79
94
|
# class MenuSection < Howitzer::Web::Section
|
|
@@ -109,37 +124,57 @@ module Howitzer
|
|
|
109
124
|
# HomePage.on { info_panel_section.edit_info(title: 'Test Title') }
|
|
110
125
|
# @!visibility public
|
|
111
126
|
|
|
112
|
-
def section(name, *args, &block)
|
|
113
|
-
scope = SectionScope.new(name, *args, &block)
|
|
114
|
-
define_section_method(scope.section_class, name, scope.finder_args)
|
|
115
|
-
define_sections_method(scope.section_class, name, scope.finder_args)
|
|
116
|
-
define_has_section_method(name, scope.finder_args)
|
|
117
|
-
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)
|
|
118
133
|
end
|
|
119
134
|
|
|
120
135
|
private
|
|
121
136
|
|
|
122
|
-
def define_section_method(klass, name, args)
|
|
123
|
-
define_method("#{name}_section") do
|
|
124
|
-
|
|
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
|
|
125
145
|
end
|
|
126
146
|
end
|
|
127
147
|
|
|
128
|
-
def define_sections_method(klass, name, args)
|
|
129
|
-
define_method("#{name}_sections") do
|
|
130
|
-
|
|
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
|
|
131
156
|
end
|
|
132
157
|
end
|
|
133
158
|
|
|
134
|
-
def define_has_section_method(name, args)
|
|
135
|
-
define_method("has_#{name}_section?") do
|
|
136
|
-
|
|
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
|
|
137
167
|
end
|
|
138
168
|
end
|
|
139
169
|
|
|
140
|
-
def define_has_no_section_method(name, args)
|
|
141
|
-
define_method("has_no_#{name}_section?") do
|
|
142
|
-
|
|
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
|
|
143
178
|
end
|
|
144
179
|
end
|
|
145
180
|
end
|
data/lib/howitzer.rb
CHANGED
|
@@ -2,6 +2,8 @@ require 'selenium-webdriver'
|
|
|
2
2
|
require 'capybara'
|
|
3
3
|
require 'sexy_settings'
|
|
4
4
|
require 'rspec/wait'
|
|
5
|
+
require 'howitzer/version'
|
|
6
|
+
require 'howitzer/exceptions'
|
|
5
7
|
|
|
6
8
|
SexySettings.configure do |config|
|
|
7
9
|
config.path_to_default_settings = File.expand_path('config/default.yml', Dir.pwd)
|
|
@@ -27,28 +29,82 @@ module Howitzer
|
|
|
27
29
|
::SexySettings::Base.instance.all['mailgun_idle_timeout']
|
|
28
30
|
end
|
|
29
31
|
|
|
32
|
+
# @return active session name
|
|
33
|
+
|
|
34
|
+
def session_name
|
|
35
|
+
@session_name ||= 'default'
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Sets new session name
|
|
39
|
+
#
|
|
40
|
+
# @param name [String] string identifier for the session
|
|
41
|
+
#
|
|
42
|
+
# @example Executing code in another browser
|
|
43
|
+
# Howitzer.session_name = 'browser2'
|
|
44
|
+
# LoginPage.on do
|
|
45
|
+
# expect(title).to eq('Login Page')
|
|
46
|
+
# end
|
|
47
|
+
#
|
|
48
|
+
# # Switching back to main browser
|
|
49
|
+
# Howitzer.session_name = 'default'
|
|
50
|
+
|
|
51
|
+
def session_name=(name)
|
|
52
|
+
@session_name = name
|
|
53
|
+
Capybara.session_name = @session_name
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Yield a block using a specific session name
|
|
57
|
+
#
|
|
58
|
+
# @param name [String] string identifier for the session
|
|
59
|
+
#
|
|
60
|
+
# @example Opening page in another browser
|
|
61
|
+
# Howitzer.using_session('browser2') do
|
|
62
|
+
# LoginPage.on do
|
|
63
|
+
# expect(title).to eq('Login Page')
|
|
64
|
+
# end
|
|
65
|
+
# end
|
|
66
|
+
|
|
67
|
+
def using_session(name, &block)
|
|
68
|
+
Capybara.using_session(name, &block)
|
|
69
|
+
end
|
|
70
|
+
|
|
30
71
|
attr_accessor :current_rake_task
|
|
31
72
|
end
|
|
32
73
|
|
|
33
|
-
# @return an application uri
|
|
74
|
+
# @return an application uri for particular application name
|
|
75
|
+
#
|
|
76
|
+
# @param name [Symbol, String] an application name from framework settings
|
|
34
77
|
#
|
|
35
|
-
# @example returns url with auth
|
|
78
|
+
# @example returns default application url with auth
|
|
36
79
|
# app_uri.site
|
|
37
|
-
# @example returns url
|
|
80
|
+
# @example returns example application url with auth
|
|
81
|
+
# app_uri(:example).site
|
|
82
|
+
# @example returns default application url without auth
|
|
38
83
|
# app_uri.origin
|
|
39
84
|
|
|
40
|
-
def self.app_uri
|
|
85
|
+
def self.app_uri(name = nil)
|
|
86
|
+
prefix = "#{name}_" if name.present?
|
|
41
87
|
::Addressable::URI.new(
|
|
42
|
-
user: Howitzer.app_base_auth_login,
|
|
43
|
-
password: Howitzer.app_base_auth_pass,
|
|
44
|
-
host: Howitzer.app_host,
|
|
45
|
-
scheme: Howitzer.app_protocol || 'http'
|
|
88
|
+
user: Howitzer.sexy_setting!("#{prefix}app_base_auth_login"),
|
|
89
|
+
password: Howitzer.sexy_setting!("#{prefix}app_base_auth_pass"),
|
|
90
|
+
host: Howitzer.sexy_setting!("#{prefix}app_host"),
|
|
91
|
+
scheme: Howitzer.sexy_setting!("#{prefix}app_protocol") || 'http'
|
|
46
92
|
)
|
|
47
93
|
end
|
|
94
|
+
|
|
95
|
+
# @return an setting value or raise error
|
|
96
|
+
#
|
|
97
|
+
# @param name [Symbol, String] an setting name
|
|
98
|
+
# @raise [Howitzer::UndefinedSexySettingError] when the setting is not specified
|
|
99
|
+
|
|
100
|
+
def self.sexy_setting!(name)
|
|
101
|
+
return Howitzer.public_send(name) if Howitzer.respond_to?(name)
|
|
102
|
+
|
|
103
|
+
raise UndefinedSexySettingError,
|
|
104
|
+
"Undefined '#{name}' setting. Please add the setting to config/default.yml:\n #{name}: some_value\n"
|
|
105
|
+
end
|
|
48
106
|
end
|
|
49
107
|
|
|
50
|
-
require 'howitzer/version'
|
|
51
|
-
require 'howitzer/exceptions'
|
|
52
108
|
require 'howitzer/log'
|
|
53
109
|
require 'howitzer/utils'
|
|
54
110
|
require 'howitzer/cache'
|
metadata
CHANGED
|
@@ -1,49 +1,63 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: howitzer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0
|
|
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
|
+
- - ">="
|
|
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
|
|
30
36
|
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.1'
|
|
34
37
|
- - "<"
|
|
35
38
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: '
|
|
39
|
+
version: '4.0'
|
|
37
40
|
type: :runtime
|
|
38
41
|
prerelease: false
|
|
39
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '4.0'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: colorize
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
40
50
|
requirements:
|
|
41
51
|
- - ">="
|
|
42
52
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: '
|
|
44
|
-
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
45
59
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
60
|
+
version: '0'
|
|
47
61
|
- !ruby/object:Gem::Dependency
|
|
48
62
|
name: gli
|
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -132,6 +146,9 @@ dependencies:
|
|
|
132
146
|
name: selenium-webdriver
|
|
133
147
|
requirement: !ruby/object:Gem::Requirement
|
|
134
148
|
requirements:
|
|
149
|
+
- - ">="
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: 3.4.1
|
|
135
152
|
- - "<"
|
|
136
153
|
- !ruby/object:Gem::Version
|
|
137
154
|
version: '4.0'
|
|
@@ -139,6 +156,9 @@ dependencies:
|
|
|
139
156
|
prerelease: false
|
|
140
157
|
version_requirements: !ruby/object:Gem::Requirement
|
|
141
158
|
requirements:
|
|
159
|
+
- - ">="
|
|
160
|
+
- !ruby/object:Gem::Version
|
|
161
|
+
version: 3.4.1
|
|
142
162
|
- - "<"
|
|
143
163
|
- !ruby/object:Gem::Version
|
|
144
164
|
version: '4.0'
|
|
@@ -221,35 +241,27 @@ executables:
|
|
|
221
241
|
extensions: []
|
|
222
242
|
extra_rdoc_files: []
|
|
223
243
|
files:
|
|
224
|
-
- ".coveralls.yml"
|
|
225
|
-
- ".gitignore"
|
|
226
|
-
- ".rspec"
|
|
227
|
-
- ".rubocop.yml"
|
|
228
|
-
- ".ruby-gemset"
|
|
229
|
-
- ".travis.yml"
|
|
230
244
|
- ".yardopts"
|
|
231
245
|
- CHANGELOG.md
|
|
232
246
|
- CONTRIBUTING.md
|
|
233
|
-
- Gemfile
|
|
234
247
|
- LICENSE
|
|
235
|
-
- MAINTENANCE.md
|
|
236
248
|
- README.md
|
|
237
|
-
- Rakefile
|
|
238
249
|
- bin/howitzer
|
|
239
|
-
- features/cli_help.feature
|
|
240
|
-
- features/cli_new.feature
|
|
241
|
-
- features/cli_unknown.feature
|
|
242
|
-
- features/cli_update.feature
|
|
243
|
-
- features/cli_version.feature
|
|
244
|
-
- features/step_definitions/common_steps.rb
|
|
245
|
-
- features/support/env.rb
|
|
246
|
-
- features/support/transformers.rb
|
|
247
250
|
- generators/base_generator.rb
|
|
248
251
|
- generators/config/config_generator.rb
|
|
249
252
|
- generators/config/templates/boot.rb
|
|
250
253
|
- generators/config/templates/capybara.rb
|
|
251
254
|
- generators/config/templates/custom.yml
|
|
252
255
|
- generators/config/templates/default.yml
|
|
256
|
+
- generators/config/templates/drivers/appium.rb
|
|
257
|
+
- generators/config/templates/drivers/browserstack.rb
|
|
258
|
+
- generators/config/templates/drivers/crossbrowsertesting.rb
|
|
259
|
+
- generators/config/templates/drivers/headless_chrome.rb
|
|
260
|
+
- generators/config/templates/drivers/headless_firefox.rb
|
|
261
|
+
- generators/config/templates/drivers/sauce.rb
|
|
262
|
+
- generators/config/templates/drivers/selenium.rb
|
|
263
|
+
- generators/config/templates/drivers/selenium_grid.rb
|
|
264
|
+
- generators/config/templates/drivers/testingbot.rb
|
|
253
265
|
- generators/cucumber/cucumber_generator.rb
|
|
254
266
|
- generators/cucumber/templates/common_steps.rb
|
|
255
267
|
- generators/cucumber/templates/cucumber.rake
|
|
@@ -262,12 +274,10 @@ files:
|
|
|
262
274
|
- generators/emails/templates/example_email.rb
|
|
263
275
|
- generators/prerequisites/prerequisites_generator.rb
|
|
264
276
|
- generators/prerequisites/templates/base.rb
|
|
265
|
-
- generators/prerequisites/templates/
|
|
277
|
+
- generators/prerequisites/templates/factory_bot.rb
|
|
266
278
|
- generators/prerequisites/templates/user.rb
|
|
267
279
|
- generators/prerequisites/templates/users.rb
|
|
268
280
|
- generators/root/root_generator.rb
|
|
269
|
-
- generators/root/templates/.gitignore
|
|
270
|
-
- generators/root/templates/.rubocop.yml
|
|
271
281
|
- generators/root/templates/Gemfile.erb
|
|
272
282
|
- generators/root/templates/Rakefile
|
|
273
283
|
- generators/rspec/rspec_generator.rb
|
|
@@ -276,7 +286,6 @@ files:
|
|
|
276
286
|
- generators/rspec/templates/spec_helper.rb
|
|
277
287
|
- generators/tasks/tasks_generator.rb
|
|
278
288
|
- generators/tasks/templates/common.rake
|
|
279
|
-
- generators/turnip/templates/.rspec
|
|
280
289
|
- generators/turnip/templates/common_steps.rb
|
|
281
290
|
- generators/turnip/templates/example.feature
|
|
282
291
|
- generators/turnip/templates/spec_helper.rb
|
|
@@ -286,21 +295,31 @@ files:
|
|
|
286
295
|
- generators/web/templates/example_page.rb
|
|
287
296
|
- generators/web/templates/menu_section.rb
|
|
288
297
|
- generators/web/web_generator.rb
|
|
289
|
-
- howitzer.gemspec
|
|
290
298
|
- lib/howitzer.rb
|
|
291
299
|
- lib/howitzer/cache.rb
|
|
292
300
|
- lib/howitzer/capybara_helpers.rb
|
|
293
301
|
- lib/howitzer/email.rb
|
|
294
302
|
- lib/howitzer/exceptions.rb
|
|
303
|
+
- lib/howitzer/gmail_api.rb
|
|
304
|
+
- lib/howitzer/gmail_api/client.rb
|
|
295
305
|
- lib/howitzer/log.rb
|
|
296
306
|
- lib/howitzer/mail_adapters.rb
|
|
297
307
|
- lib/howitzer/mail_adapters/abstract.rb
|
|
298
|
-
- lib/howitzer/mail_adapters/
|
|
308
|
+
- lib/howitzer/mail_adapters/gmail.rb
|
|
299
309
|
- lib/howitzer/mail_adapters/mailgun.rb
|
|
310
|
+
- lib/howitzer/mail_adapters/mailtrap.rb
|
|
300
311
|
- lib/howitzer/mailgun_api.rb
|
|
301
312
|
- lib/howitzer/mailgun_api/client.rb
|
|
302
313
|
- lib/howitzer/mailgun_api/connector.rb
|
|
303
314
|
- lib/howitzer/mailgun_api/response.rb
|
|
315
|
+
- lib/howitzer/mailtrap_api.rb
|
|
316
|
+
- lib/howitzer/mailtrap_api/client.rb
|
|
317
|
+
- lib/howitzer/meta.rb
|
|
318
|
+
- lib/howitzer/meta/actions.rb
|
|
319
|
+
- lib/howitzer/meta/element.rb
|
|
320
|
+
- lib/howitzer/meta/entry.rb
|
|
321
|
+
- lib/howitzer/meta/iframe.rb
|
|
322
|
+
- lib/howitzer/meta/section.rb
|
|
304
323
|
- lib/howitzer/tasks/framework.rake
|
|
305
324
|
- lib/howitzer/utils.rb
|
|
306
325
|
- lib/howitzer/utils/string_extensions.rb
|
|
@@ -317,51 +336,15 @@ files:
|
|
|
317
336
|
- lib/howitzer/web/page_validator.rb
|
|
318
337
|
- lib/howitzer/web/section.rb
|
|
319
338
|
- lib/howitzer/web/section_dsl.rb
|
|
320
|
-
-
|
|
321
|
-
- spec/spec_helper.rb
|
|
322
|
-
- spec/support/generator_helper.rb
|
|
323
|
-
- spec/support/logger_helper.rb
|
|
324
|
-
- spec/support/mailgun_unit_client.rb
|
|
325
|
-
- spec/support/shared_examples/capybara_context_holder.rb
|
|
326
|
-
- spec/support/shared_examples/capybara_methods_proxy.rb
|
|
327
|
-
- spec/support/shared_examples/dynamic_section_methods.rb
|
|
328
|
-
- spec/support/shared_examples/element_dsl.rb
|
|
329
|
-
- spec/unit/generators/base_generator_spec.rb
|
|
330
|
-
- spec/unit/generators/config_generator_spec.rb
|
|
331
|
-
- spec/unit/generators/cucumber_generator_spec.rb
|
|
332
|
-
- spec/unit/generators/emails_generator_spec.rb
|
|
333
|
-
- spec/unit/generators/prerequisites_generator_spec.rb
|
|
334
|
-
- spec/unit/generators/root_generator_spec.rb
|
|
335
|
-
- spec/unit/generators/rspec_generator_spec.rb
|
|
336
|
-
- spec/unit/generators/tasks_generator_spec.rb
|
|
337
|
-
- spec/unit/generators/turnip_generator_spec.rb
|
|
338
|
-
- spec/unit/generators/web_generator_spec.rb
|
|
339
|
-
- spec/unit/lib/cache_spec.rb
|
|
340
|
-
- spec/unit/lib/capybara_helpers_spec.rb
|
|
341
|
-
- spec/unit/lib/email_spec.rb
|
|
342
|
-
- spec/unit/lib/howitzer_spec.rb
|
|
343
|
-
- spec/unit/lib/init_spec.rb
|
|
344
|
-
- spec/unit/lib/log_spec.rb
|
|
345
|
-
- spec/unit/lib/mail_adapters/abstract_spec.rb
|
|
346
|
-
- spec/unit/lib/mail_adapters/mailgun_spec.rb
|
|
347
|
-
- spec/unit/lib/mailgun_api/client_spec.rb
|
|
348
|
-
- spec/unit/lib/mailgun_api/connector_spec.rb
|
|
349
|
-
- spec/unit/lib/mailgun_api/response_spec.rb
|
|
350
|
-
- spec/unit/lib/utils/string_extensions_spec.rb
|
|
351
|
-
- spec/unit/lib/web/base_section_spec.rb
|
|
352
|
-
- spec/unit/lib/web/element_dsl_spec.rb
|
|
353
|
-
- spec/unit/lib/web/iframe_dsl_spec.rb
|
|
354
|
-
- spec/unit/lib/web/page_dsl_spec.rb
|
|
355
|
-
- spec/unit/lib/web/page_spec.rb
|
|
356
|
-
- spec/unit/lib/web/page_validator_spec.rb
|
|
357
|
-
- spec/unit/lib/web/section_dsl_spec.rb
|
|
358
|
-
- spec/unit/lib/web/section_spec.rb
|
|
359
|
-
- spec/unit/version_spec.rb
|
|
360
|
-
homepage: http://strongqa.github.io/howitzer/
|
|
339
|
+
homepage: https://howitzer-framework.io/
|
|
361
340
|
licenses:
|
|
362
341
|
- MIT
|
|
363
|
-
metadata:
|
|
364
|
-
|
|
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:
|
|
365
348
|
rdoc_options: []
|
|
366
349
|
require_paths:
|
|
367
350
|
- lib
|
|
@@ -369,64 +352,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
369
352
|
requirements:
|
|
370
353
|
- - ">="
|
|
371
354
|
- !ruby/object:Gem::Version
|
|
372
|
-
version: 2.
|
|
355
|
+
version: 2.6.8
|
|
373
356
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
357
|
requirements:
|
|
375
358
|
- - ">="
|
|
376
359
|
- !ruby/object:Gem::Version
|
|
377
360
|
version: '0'
|
|
378
361
|
requirements: []
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
signing_key:
|
|
362
|
+
rubygems_version: 3.2.22
|
|
363
|
+
signing_key:
|
|
382
364
|
specification_version: 4
|
|
383
365
|
summary: Ruby based framework for acceptance testing
|
|
384
|
-
test_files:
|
|
385
|
-
- features/cli_help.feature
|
|
386
|
-
- features/cli_new.feature
|
|
387
|
-
- features/cli_unknown.feature
|
|
388
|
-
- features/cli_update.feature
|
|
389
|
-
- features/cli_version.feature
|
|
390
|
-
- features/step_definitions/common_steps.rb
|
|
391
|
-
- features/support/env.rb
|
|
392
|
-
- features/support/transformers.rb
|
|
393
|
-
- spec/config/custom.yml
|
|
394
|
-
- spec/spec_helper.rb
|
|
395
|
-
- spec/support/generator_helper.rb
|
|
396
|
-
- spec/support/logger_helper.rb
|
|
397
|
-
- spec/support/mailgun_unit_client.rb
|
|
398
|
-
- spec/support/shared_examples/capybara_context_holder.rb
|
|
399
|
-
- spec/support/shared_examples/capybara_methods_proxy.rb
|
|
400
|
-
- spec/support/shared_examples/dynamic_section_methods.rb
|
|
401
|
-
- spec/support/shared_examples/element_dsl.rb
|
|
402
|
-
- spec/unit/generators/base_generator_spec.rb
|
|
403
|
-
- spec/unit/generators/config_generator_spec.rb
|
|
404
|
-
- spec/unit/generators/cucumber_generator_spec.rb
|
|
405
|
-
- spec/unit/generators/emails_generator_spec.rb
|
|
406
|
-
- spec/unit/generators/prerequisites_generator_spec.rb
|
|
407
|
-
- spec/unit/generators/root_generator_spec.rb
|
|
408
|
-
- spec/unit/generators/rspec_generator_spec.rb
|
|
409
|
-
- spec/unit/generators/tasks_generator_spec.rb
|
|
410
|
-
- spec/unit/generators/turnip_generator_spec.rb
|
|
411
|
-
- spec/unit/generators/web_generator_spec.rb
|
|
412
|
-
- spec/unit/lib/cache_spec.rb
|
|
413
|
-
- spec/unit/lib/capybara_helpers_spec.rb
|
|
414
|
-
- spec/unit/lib/email_spec.rb
|
|
415
|
-
- spec/unit/lib/howitzer_spec.rb
|
|
416
|
-
- spec/unit/lib/init_spec.rb
|
|
417
|
-
- spec/unit/lib/log_spec.rb
|
|
418
|
-
- spec/unit/lib/mail_adapters/abstract_spec.rb
|
|
419
|
-
- spec/unit/lib/mail_adapters/mailgun_spec.rb
|
|
420
|
-
- spec/unit/lib/mailgun_api/client_spec.rb
|
|
421
|
-
- spec/unit/lib/mailgun_api/connector_spec.rb
|
|
422
|
-
- spec/unit/lib/mailgun_api/response_spec.rb
|
|
423
|
-
- spec/unit/lib/utils/string_extensions_spec.rb
|
|
424
|
-
- spec/unit/lib/web/base_section_spec.rb
|
|
425
|
-
- spec/unit/lib/web/element_dsl_spec.rb
|
|
426
|
-
- spec/unit/lib/web/iframe_dsl_spec.rb
|
|
427
|
-
- spec/unit/lib/web/page_dsl_spec.rb
|
|
428
|
-
- spec/unit/lib/web/page_spec.rb
|
|
429
|
-
- spec/unit/lib/web/page_validator_spec.rb
|
|
430
|
-
- spec/unit/lib/web/section_dsl_spec.rb
|
|
431
|
-
- spec/unit/lib/web/section_spec.rb
|
|
432
|
-
- 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,44 +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
|
-
LineLength:
|
|
9
|
-
Max: 120
|
|
10
|
-
|
|
11
|
-
Style/CaseIndentation:
|
|
12
|
-
Enabled: false
|
|
13
|
-
|
|
14
|
-
Style/EmptyElse:
|
|
15
|
-
Enabled: false
|
|
16
|
-
|
|
17
|
-
Lint/AmbiguousRegexpLiteral:
|
|
18
|
-
Enabled: false
|
|
19
|
-
|
|
20
|
-
Lint/AmbiguousBlockAssociation:
|
|
21
|
-
Enabled: false
|
|
22
|
-
|
|
23
|
-
Style/CaseEquality:
|
|
24
|
-
Enabled: false
|
|
25
|
-
|
|
26
|
-
MethodLength:
|
|
27
|
-
Max: 30
|
|
28
|
-
|
|
29
|
-
Style/TrivialAccessors:
|
|
30
|
-
AllowDSLWriters: true
|
|
31
|
-
|
|
32
|
-
Style/FrozenStringLiteralComment:
|
|
33
|
-
Enabled: false
|
|
34
|
-
|
|
35
|
-
Metrics/ModuleLength:
|
|
36
|
-
Max: 150
|
|
37
|
-
|
|
38
|
-
Metrics/BlockLength:
|
|
39
|
-
Enabled: false
|
|
40
|
-
|
|
41
|
-
Style/MixinGrouping:
|
|
42
|
-
EnforcedStyle: separated
|
|
43
|
-
Exclude:
|
|
44
|
-
- '**/*_steps.rb'
|
data/.ruby-gemset
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
howitzer
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
# Specify your gem's dependencies in howitzer.gemspec
|
|
3
|
-
group :test do
|
|
4
|
-
gem 'coveralls', require: false
|
|
5
|
-
gem 'repeater', require: false
|
|
6
|
-
gem 'rest-client', require: false
|
|
7
|
-
gem 'simplecov', require: false
|
|
8
|
-
end
|
|
9
|
-
gemspec
|
|
10
|
-
|
|
11
|
-
group :development do
|
|
12
|
-
gem 'rubocop'
|
|
13
|
-
end
|