howitzer 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +21 -1
- data/features/cli_new.feature +1 -0
- data/features/cli_update.feature +1 -0
- data/generators/base_generator.rb +3 -1
- data/generators/config/templates/capybara.rb +1 -1
- data/generators/config/templates/default.yml +4 -2
- data/generators/cucumber/cucumber_generator.rb +1 -0
- data/generators/cucumber/templates/common_steps.rb +1 -1
- data/generators/cucumber/templates/env.rb +0 -28
- data/generators/cucumber/templates/hooks.rb +29 -0
- data/generators/prerequisites/templates/user.rb +2 -0
- data/generators/prerequisites/templates/users.rb +2 -2
- data/generators/root/templates/Gemfile.erb +1 -1
- data/generators/rspec/templates/spec_helper.rb +9 -2
- data/generators/turnip/templates/spec_helper.rb +9 -2
- data/generators/web/templates/example_page.rb +0 -1
- data/howitzer.gemspec +1 -3
- data/lib/howitzer.rb +7 -0
- data/lib/howitzer/cache.rb +1 -1
- data/lib/howitzer/capybara_helpers.rb +2 -2
- data/lib/howitzer/email.rb +26 -8
- data/lib/howitzer/exceptions.rb +19 -19
- data/lib/howitzer/mail_adapters/abstract.rb +4 -3
- data/lib/howitzer/mail_adapters/mailgun.rb +6 -5
- data/lib/howitzer/mailgun_api/client.rb +1 -1
- data/lib/howitzer/version.rb +1 -1
- data/lib/howitzer/web/base_section.rb +3 -3
- data/lib/howitzer/web/capybara_context_holder.rb +19 -0
- data/lib/howitzer/web/capybara_methods_proxy.rb +27 -19
- data/lib/howitzer/web/element_dsl.rb +52 -13
- data/lib/howitzer/web/iframe_dsl.rb +3 -7
- data/lib/howitzer/web/page.rb +14 -21
- data/lib/howitzer/web/page_dsl.rb +32 -4
- data/lib/howitzer/web/page_validator.rb +15 -16
- data/lib/howitzer/web/section_dsl.rb +3 -7
- data/spec/config/custom.yml +1 -1
- data/spec/spec_helper.rb +1 -7
- data/spec/support/shared_examples/capybara_context_holder.rb +3 -3
- data/spec/support/shared_examples/element_dsl.rb +128 -18
- data/spec/unit/generators/base_generator_spec.rb +15 -16
- data/spec/unit/generators/cucumber_generator_spec.rb +2 -0
- data/spec/unit/generators/root_generator_spec.rb +1 -1
- data/spec/unit/lib/capybara_helpers_spec.rb +2 -2
- data/spec/unit/lib/email_spec.rb +37 -6
- data/spec/unit/lib/{howitzer.rb → howitzer_spec.rb} +9 -0
- data/spec/unit/lib/mail_adapters/abstract_spec.rb +1 -1
- data/spec/unit/lib/mail_adapters/mailgun_spec.rb +4 -4
- data/spec/unit/lib/web/base_section_spec.rb +3 -1
- data/spec/unit/lib/web/element_dsl_spec.rb +7 -2
- data/spec/unit/lib/web/page_dsl_spec.rb +22 -0
- data/spec/unit/lib/web/page_spec.rb +79 -44
- data/spec/unit/lib/web/page_validator_spec.rb +94 -51
- data/spec/unit/lib/web/section_spec.rb +4 -2
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0462470e4e9b727be8229a5a30f4d677daacd06
|
4
|
+
data.tar.gz: 50f292514b58d7bf57b52f6dc2cc7f0dda26c2d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6efa7374c1460bca6a650c42267525a4f2f6d1362e95cac070dc4dab101d7d3c9652a93bd898f933a0655da25856c2e281b6d2542101015329aa93a9c60d51dd
|
7
|
+
data.tar.gz: 91f1a0ec11ab2fdc23d744773bb3802aefe18fff33f465e185824002f4cfa6f8c07be9722b2c967f3228bcea0952457f44061cef13bf941f545a563fddc9d61c
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,29 @@
|
|
1
|
-
## [In git](https://github.com/strongqa/howitzer/compare/v2.0.
|
1
|
+
## [In git](https://github.com/strongqa/howitzer/compare/v2.0.1...master)
|
2
2
|
|
3
3
|
### New Features
|
4
4
|
|
5
5
|
### Bugfixes
|
6
6
|
|
7
|
+
## [v2.0.1](https://github.com/strongqa/howitzer/compare/v2.0.0...v2.0.1)
|
8
|
+
|
9
|
+
### New Features
|
10
|
+
- New rubocop changes supporting
|
11
|
+
- Add custom page url processor supporting
|
12
|
+
- Limited Selenium to v2.x
|
13
|
+
- Add ability to use instance variables and methods from outer cotext in page dsl
|
14
|
+
- Add wait time dsl method for particular email
|
15
|
+
- Implement wait_for_xxx_element method for sync
|
16
|
+
- Implement within_xxx_element method like Capybara.within
|
17
|
+
|
18
|
+
### Bugfixes
|
19
|
+
- [#188](https://github.com/strongqa/howitzer/issues/188) Page validation by element presence does not work properly
|
20
|
+
- [#191](https://github.com/strongqa/howitzer/issues/191) Generated project is broken
|
21
|
+
- [#195](https://github.com/strongqa/howitzer/issues/195) Incorrect parameters passing in lambda locators
|
22
|
+
- [#200](https://github.com/strongqa/howitzer/issues/200) capybara-screenshot does not work
|
23
|
+
- [#205](https://github.com/strongqa/howitzer/issues/205) Fix incorrect page identification on failed test
|
24
|
+
- Fix issue for IE in configs
|
25
|
+
- Fix issue found in generated prerequisites
|
26
|
+
|
7
27
|
## [v2.0.0](https://github.com/strongqa/howitzer/compare/v1.1.1...v2.0.0)
|
8
28
|
|
9
29
|
### New Features
|
data/features/cli_new.feature
CHANGED
@@ -141,6 +141,7 @@ Feature: Howitzer CLI New Project Creation
|
|
141
141
|
* Cucumber integration to the framework ...
|
142
142
|
Added 'features/step_definitions/common_steps.rb' file
|
143
143
|
Added 'features/support/env.rb' file
|
144
|
+
Added 'features/support/hooks.rb' file
|
144
145
|
Added 'features/support/transformers.rb' file
|
145
146
|
Added 'features/example.feature' file
|
146
147
|
Added 'tasks/cucumber.rake' file
|
data/features/cli_update.feature
CHANGED
@@ -107,6 +107,7 @@ Feature: Howitzer CLI Update Existing Project
|
|
107
107
|
* Cucumber integration to the framework ...
|
108
108
|
Identical 'features/step_definitions/common_steps.rb' file
|
109
109
|
Identical 'features/support/env.rb' file
|
110
|
+
Identical 'features/support/hooks.rb' file
|
110
111
|
Identical 'features/support/transformers.rb' file
|
111
112
|
Identical 'features/example.feature' file
|
112
113
|
Identical 'tasks/cucumber.rake' file
|
@@ -153,4 +153,4 @@ Capybara::Screenshot.append_timestamp = false
|
|
153
153
|
Capybara::Screenshot.register_filename_prefix_formatter(:default) do
|
154
154
|
"capybara-screenshot-#{Gen.serial}"
|
155
155
|
end
|
156
|
-
Capybara::Screenshot.prune_strategy = :
|
156
|
+
Capybara::Screenshot.prune_strategy = :keep_all
|
@@ -12,6 +12,7 @@
|
|
12
12
|
|
13
13
|
app_api_token:
|
14
14
|
app_api_end_point: "api/v1"
|
15
|
+
app_api_protocol: http
|
15
16
|
|
16
17
|
###########################################################
|
17
18
|
# TEST ENVIRONMENTS SETTINGS #
|
@@ -59,7 +60,6 @@
|
|
59
60
|
cloud_bstack_resolution: '1024x768'
|
60
61
|
cloud_bstack_project: 'Howitzer Example'
|
61
62
|
cloud_bstack_build: 'v1'
|
62
|
-
cloud_bstack_resolution: '1024x768'
|
63
63
|
cloud_bstack_mobile_device:
|
64
64
|
|
65
65
|
###########################################################
|
@@ -81,7 +81,9 @@
|
|
81
81
|
# MAIL SETTINGS #
|
82
82
|
###########################################################
|
83
83
|
mail_adapter: mailgun
|
84
|
+
mail_wait_time: 60
|
85
|
+
|
86
|
+
# -Mailgun- (http://www.mailgun.com/)
|
84
87
|
mailgun_key: mailgun_account_private_key
|
85
88
|
mailgun_domain: mailgun_domain_with_stored_method
|
86
|
-
mailgun_idle_timeout: 60
|
87
89
|
mailgun_sleep_time: 3
|
@@ -8,6 +8,7 @@ module Howitzer
|
|
8
8
|
[
|
9
9
|
{ source: 'common_steps.rb', destination: 'features/step_definitions/common_steps.rb' },
|
10
10
|
{ source: 'env.rb', destination: 'features/support/env.rb' },
|
11
|
+
{ source: 'hooks.rb', destination: 'features/support/hooks.rb' },
|
11
12
|
{ source: 'transformers.rb', destination: 'features/support/transformers.rb' },
|
12
13
|
{ source: 'example.feature', destination: 'features/example.feature' },
|
13
14
|
{ source: 'cucumber.rake', destination: 'tasks/cucumber.rake' }
|
@@ -10,31 +10,3 @@ FileUtils.mkdir_p(Howitzer.log_dir)
|
|
10
10
|
Howitzer::Log.settings_as_formatted_text
|
11
11
|
Howitzer::Cache.store(:cloud, :start_time, Time.now.utc)
|
12
12
|
Howitzer::Cache.store(:cloud, :status, true)
|
13
|
-
|
14
|
-
Before do |scenario|
|
15
|
-
Capybara.use_default_driver
|
16
|
-
Howitzer::Log.print_feature_name(scenario.feature.name)
|
17
|
-
Howitzer::Log.print_scenario_name(scenario.name)
|
18
|
-
@session_start = CapybaraHelpers.duration(Time.now.utc - Howitzer::Cache.extract(:cloud, :start_time))
|
19
|
-
end
|
20
|
-
|
21
|
-
After do |scenario|
|
22
|
-
if CapybaraHelpers.cloud_driver?
|
23
|
-
Howitzer::Cache.store(:cloud, :status, false) if scenario.failed?
|
24
|
-
session_end = CapybaraHelpers.duration(Time.now.utc - Howitzer::Cache.extract(:cloud, :start_time))
|
25
|
-
Howitzer::Log.info "CLOUD VIDEO #{@session_start} - #{session_end}" \
|
26
|
-
" URL: #{CapybaraHelpers.cloud_resource_path(:video)}"
|
27
|
-
elsif CapybaraHelpers.ie_browser?
|
28
|
-
Howitzer::Log.info 'IE reset session'
|
29
|
-
page.execute_script("void(document.execCommand('ClearAuthenticationCache', false));")
|
30
|
-
end
|
31
|
-
Howitzer::Cache.clear_all_ns
|
32
|
-
Capybara.reset_sessions!
|
33
|
-
end
|
34
|
-
|
35
|
-
at_exit do
|
36
|
-
if CapybaraHelpers.cloud_driver?
|
37
|
-
Howitzer::Log.info "CLOUD SERVER LOG URL: #{CapybaraHelpers.cloud_resource_path(:server_log)}"
|
38
|
-
CapybaraHelpers.update_cloud_job_status(passed: Howitzer::Cache.extract(:cloud, :status))
|
39
|
-
end
|
40
|
-
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Before do |scenario|
|
2
|
+
Capybara.use_default_driver
|
3
|
+
Howitzer::Log.print_feature_name(scenario.feature.name)
|
4
|
+
Howitzer::Log.print_scenario_name(scenario.name)
|
5
|
+
@session_start = CapybaraHelpers.duration(Time.now.utc - Howitzer::Cache.extract(:cloud, :start_time))
|
6
|
+
end
|
7
|
+
|
8
|
+
After do |scenario|
|
9
|
+
if CapybaraHelpers.cloud_driver?
|
10
|
+
Howitzer::Cache.store(:cloud, :status, false) if scenario.failed?
|
11
|
+
session_end = CapybaraHelpers.duration(Time.now.utc - Howitzer::Cache.extract(:cloud, :start_time))
|
12
|
+
Howitzer::Log.info "CLOUD VIDEO #{@session_start} - #{session_end}" \
|
13
|
+
" URL: #{CapybaraHelpers.cloud_resource_path(:video)}"
|
14
|
+
elsif CapybaraHelpers.ie_browser?
|
15
|
+
Howitzer::Log.info 'IE reset session'
|
16
|
+
Capybara.current_session.execute_script("void(document.execCommand('ClearAuthenticationCache', false));")
|
17
|
+
end
|
18
|
+
Howitzer::Cache.clear_all_ns
|
19
|
+
Capybara.reset_sessions!
|
20
|
+
end
|
21
|
+
|
22
|
+
at_exit do
|
23
|
+
if CapybaraHelpers.cloud_driver?
|
24
|
+
Howitzer::Log.info "CLOUD SERVER LOG URL: #{CapybaraHelpers.cloud_resource_path(:server_log)}"
|
25
|
+
CapybaraHelpers.update_cloud_job_status(passed: Howitzer::Cache.extract(:cloud, :status))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'capybara-screenshot/cucumber'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
FactoryGirl.define do
|
2
2
|
factory :user do
|
3
|
-
email { "u#{serial}@#{Howitzer.mailgun_domain}" }
|
4
|
-
name { "FirstName LastName #{serial}" }
|
3
|
+
email { "u#{Gen.serial}@#{Howitzer.mailgun_domain}" }
|
4
|
+
name { "FirstName LastName #{Gen.serial}" }
|
5
5
|
password { Howitzer.app_test_pass }
|
6
6
|
password_confirmation { Howitzer.app_test_pass }
|
7
7
|
|
@@ -8,7 +8,7 @@ source 'https://rubygems.org'
|
|
8
8
|
gem 'howitzer'
|
9
9
|
# Uncomment it if you are going to use 'poltergeist' driver. PhantomJS should be installed.
|
10
10
|
# See https://github.com/jnicklas/capybara#poltergeist
|
11
|
-
# gem 'poltergeist',
|
11
|
+
# gem 'poltergeist', git: 'https://github.com/teampoltergeist/poltergeist.git', branch: :master
|
12
12
|
gem 'rest-client'
|
13
13
|
gem 'repeater'
|
14
14
|
gem 'factory_girl'
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'capybara-screenshot/rspec'
|
2
1
|
require 'capybara/rspec/features'
|
3
2
|
require_relative '../config/boot'
|
4
3
|
require_relative '../config/capybara'
|
@@ -35,7 +34,7 @@ RSpec.configure do |config|
|
|
35
34
|
" URL: #{CapybaraHelpers.cloud_resource_path(:video)}"
|
36
35
|
elsif CapybaraHelpers.ie_browser?
|
37
36
|
Howitzer::Log.info 'IE reset session'
|
38
|
-
|
37
|
+
Capybara.current_session.execute_script("void(document.execCommand('ClearAuthenticationCache', false));")
|
39
38
|
end
|
40
39
|
Capybara.reset_sessions!
|
41
40
|
Capybara.use_default_driver
|
@@ -55,3 +54,11 @@ RSpec.configure do |config|
|
|
55
54
|
end
|
56
55
|
end
|
57
56
|
end
|
57
|
+
|
58
|
+
# We include Capybara::DSL in Howitzer::Web::Page, but capybara-screenshot hooks rely on this mixin.
|
59
|
+
RSpec::Core::ExampleGroup.instance_eval do
|
60
|
+
def include?(value)
|
61
|
+
value == Capybara::DSL ? true : super
|
62
|
+
end
|
63
|
+
end
|
64
|
+
require 'capybara-screenshot/rspec'
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'capybara-screenshot/rspec'
|
2
1
|
require_relative '../config/boot'
|
3
2
|
require_relative '../config/capybara'
|
4
3
|
|
@@ -34,7 +33,7 @@ RSpec.configure do |config|
|
|
34
33
|
" URL: #{CapybaraHelpers.cloud_resource_path(:video)}"
|
35
34
|
elsif CapybaraHelpers.ie_browser?
|
36
35
|
Howitzer::Log.info 'IE reset session'
|
37
|
-
|
36
|
+
Capybara.current_session.execute_script("void(document.execCommand('ClearAuthenticationCache', false));")
|
38
37
|
end
|
39
38
|
Capybara.reset_sessions!
|
40
39
|
Capybara.use_default_driver
|
@@ -54,3 +53,11 @@ RSpec.configure do |config|
|
|
54
53
|
end
|
55
54
|
end
|
56
55
|
end
|
56
|
+
|
57
|
+
# We include Capybara::DSL in Howitzer::Web::Page, but capybara-screenshot hooks rely on this mixin.
|
58
|
+
RSpec::Core::ExampleGroup.instance_eval do
|
59
|
+
def include?(value)
|
60
|
+
value == Capybara::DSL ? true : super
|
61
|
+
end
|
62
|
+
end
|
63
|
+
require 'capybara-screenshot/rspec'
|
data/howitzer.gemspec
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
1
|
require File.expand_path('../lib/howitzer/version', __FILE__)
|
4
2
|
|
5
3
|
Gem::Specification.new do |gem|
|
@@ -28,7 +26,7 @@ Gem::Specification.new do |gem|
|
|
28
26
|
gem.add_runtime_dependency 'nokogiri', '~> 1.6' if gem.platform.to_s =~ /mswin|mingw/
|
29
27
|
gem.add_runtime_dependency 'rake'
|
30
28
|
gem.add_runtime_dependency 'rspec', '~>3.2'
|
31
|
-
gem.add_runtime_dependency 'selenium-webdriver'
|
29
|
+
gem.add_runtime_dependency 'selenium-webdriver', '< 3'
|
32
30
|
gem.add_runtime_dependency 'sexy_settings'
|
33
31
|
|
34
32
|
gem.add_development_dependency('aruba')
|
data/lib/howitzer.rb
CHANGED
@@ -19,6 +19,13 @@ module Howitzer
|
|
19
19
|
define_method(key) { value }
|
20
20
|
end
|
21
21
|
|
22
|
+
# @deprecated
|
23
|
+
|
24
|
+
def mailgun_idle_timeout
|
25
|
+
puts "WARNING! 'mailgun_idle_timeout' setting is deprecated. Please replace with 'mail_wait_time' setting."
|
26
|
+
::SexySettings::Base.instance.all['mailgun_idle_timeout']
|
27
|
+
end
|
28
|
+
|
22
29
|
attr_accessor :current_rake_task
|
23
30
|
end
|
24
31
|
|
data/lib/howitzer/cache.rb
CHANGED
@@ -4,7 +4,7 @@ require 'howitzer/exceptions'
|
|
4
4
|
module Howitzer
|
5
5
|
# This module holds capybara helpers methods
|
6
6
|
module CapybaraHelpers
|
7
|
-
CHECK_YOUR_SETTINGS_MSG = 'Please check your settings'.freeze
|
7
|
+
CHECK_YOUR_SETTINGS_MSG = 'Please check your settings'.freeze #:nodoc:
|
8
8
|
|
9
9
|
# @return [Boolean] true if current driver related with SauceLab,
|
10
10
|
# Testingbot or Browserstack cloud service
|
@@ -60,7 +60,7 @@ module Howitzer
|
|
60
60
|
|
61
61
|
# Updates a job status on the job cloud
|
62
62
|
# @note SauceLabs is currently supported only
|
63
|
-
# @param json_data [
|
63
|
+
# @param json_data [Hash] for example, (passed: true)
|
64
64
|
|
65
65
|
def update_cloud_job_status(json_data = {})
|
66
66
|
case Howitzer.driver.to_sym
|
data/lib/howitzer/email.rb
CHANGED
@@ -32,10 +32,27 @@ module Howitzer
|
|
32
32
|
# @!visibility public
|
33
33
|
|
34
34
|
def subject(value)
|
35
|
-
|
35
|
+
define_singleton_method(:subject_value) { value }
|
36
|
+
private_class_method :subject_value
|
37
|
+
end
|
38
|
+
|
39
|
+
# DSL method to specify a custom wait email time directly in an email class
|
40
|
+
# @param value [Integer] an wait time for a particular email.
|
41
|
+
# If it is ommitted, default Howitzer.mail_wait_time will be used.
|
42
|
+
# @example
|
43
|
+
# class WelcomeEmail < Howitzer::Email
|
44
|
+
# wait_time 10.minutes
|
45
|
+
# end
|
46
|
+
# @!visibility public
|
47
|
+
|
48
|
+
def wait_time(value)
|
49
|
+
define_singleton_method(:wait_time_value) { value }
|
50
|
+
private_class_method :wait_time_value
|
36
51
|
end
|
37
52
|
end
|
38
53
|
|
54
|
+
wait_time Howitzer.try(:mail_wait_time)
|
55
|
+
|
39
56
|
# Specifies a mail adapter
|
40
57
|
# @param adapter_name [String, Symbol] an email adapter name
|
41
58
|
# @raise [NoMailAdapterError] when the adapter name is not String or Symbol
|
@@ -52,17 +69,19 @@ module Howitzer
|
|
52
69
|
end
|
53
70
|
|
54
71
|
# Searches a mail by a recepient
|
55
|
-
# @param
|
72
|
+
# @param recipient [String] recepient's email address
|
56
73
|
# @param params [Hash] placeholders with appropriate values
|
57
74
|
# @raise [NoEmailSubjectError] when a subject is not specified for the email class
|
58
75
|
# @return [Email] an instance of the email message
|
59
76
|
# @see .subject
|
60
77
|
|
61
78
|
def self.find_by_recipient(recipient, params = {})
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
79
|
+
if defined?(subject_value).nil? || subject_value.nil?
|
80
|
+
raise Howitzer::NoEmailSubjectError, "Please specify email subject. For example:\n" \
|
81
|
+
"class SomeEmail < Howitzer::Email\n" \
|
82
|
+
" subject ‘some subject text’\nend"
|
83
|
+
end
|
84
|
+
new(adapter.find(recipient, expand_subject(params), wait: wait_time_value))
|
66
85
|
end
|
67
86
|
|
68
87
|
def initialize(message)
|
@@ -118,8 +137,7 @@ module Howitzer
|
|
118
137
|
end
|
119
138
|
|
120
139
|
def self.expand_subject(params)
|
121
|
-
params.
|
122
|
-
@subject
|
140
|
+
params.inject(subject_value.dup) { |a, (k, v)| a.sub(":#{k}", v.to_s) }
|
123
141
|
end
|
124
142
|
private_class_method :expand_subject
|
125
143
|
end
|
data/lib/howitzer/exceptions.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
# This module holds all custom howitzer exceptions
|
2
2
|
module Howitzer
|
3
|
-
CommunicationError = Class.new(StandardError)
|
4
|
-
ParseError = Class.new(StandardError)
|
5
|
-
InvalidApiKeyError = Class.new(StandardError)
|
6
|
-
BadElementParamsError = Class.new(StandardError)
|
7
|
-
NoValidationError = Class.new(StandardError)
|
8
|
-
UnknownValidationError = Class.new(StandardError)
|
9
|
-
EmailNotFoundError = Class.new(StandardError)
|
10
|
-
NoAttachmentsError = Class.new(StandardError)
|
11
|
-
DriverNotSpecifiedError = Class.new(StandardError)
|
12
|
-
UnknownDriverError = Class.new(StandardError)
|
13
|
-
CloudBrowserNotSpecifiedError = Class.new(StandardError)
|
14
|
-
SelBrowserNotSpecifiedError = Class.new(StandardError)
|
15
|
-
UnknownBrowserError = Class.new(StandardError)
|
16
|
-
IncorrectPageError = Class.new(StandardError)
|
17
|
-
AmbiguousPageMatchingError = Class.new(StandardError)
|
18
|
-
NoMailAdapterError = Class.new(StandardError)
|
19
|
-
NoPathForPageError = Class.new(StandardError)
|
20
|
-
NoEmailSubjectError = Class.new(StandardError)
|
21
|
-
NoDataError = Class.new(StandardError)
|
3
|
+
CommunicationError = Class.new(StandardError) #:nodoc:
|
4
|
+
ParseError = Class.new(StandardError) #:nodoc:
|
5
|
+
InvalidApiKeyError = Class.new(StandardError) #:nodoc:
|
6
|
+
BadElementParamsError = Class.new(StandardError) #:nodoc:
|
7
|
+
NoValidationError = Class.new(StandardError) #:nodoc:
|
8
|
+
UnknownValidationError = Class.new(StandardError) #:nodoc:
|
9
|
+
EmailNotFoundError = Class.new(StandardError) #:nodoc:
|
10
|
+
NoAttachmentsError = Class.new(StandardError) #:nodoc:
|
11
|
+
DriverNotSpecifiedError = Class.new(StandardError) #:nodoc:
|
12
|
+
UnknownDriverError = Class.new(StandardError) #:nodoc:
|
13
|
+
CloudBrowserNotSpecifiedError = Class.new(StandardError) #:nodoc:
|
14
|
+
SelBrowserNotSpecifiedError = Class.new(StandardError) #:nodoc:
|
15
|
+
UnknownBrowserError = Class.new(StandardError) #:nodoc:
|
16
|
+
IncorrectPageError = Class.new(StandardError) #:nodoc:
|
17
|
+
AmbiguousPageMatchingError = Class.new(StandardError) #:nodoc:
|
18
|
+
NoMailAdapterError = Class.new(StandardError) #:nodoc:
|
19
|
+
NoPathForPageError = Class.new(StandardError) #:nodoc:
|
20
|
+
NoEmailSubjectError = Class.new(StandardError) #:nodoc:
|
21
|
+
NoDataError = Class.new(StandardError) #:nodoc:
|
22
22
|
end
|