howitzer 1.0.1 → 1.0.2
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 +7 -0
- data/.gitignore +4 -1
- data/.travis.yml +3 -2
- data/CHANGELOG.md +25 -5
- data/GETTING_STARTED.md +158 -13
- data/README.md +49 -32
- data/Rakefile +10 -1
- data/bin/howitzer +49 -78
- data/features/cli_help.feature +30 -0
- data/features/cli_new.feature +263 -0
- data/features/cli_unknown.feature +17 -0
- data/features/cli_version.feature +14 -0
- data/features/step_definitions/common_steps.rb +1 -0
- data/features/support/env.rb +1 -0
- data/features/support/transformers.rb +3 -0
- data/generators/base_generator.rb +2 -0
- data/generators/config/config_generator.rb +1 -1
- data/generators/config/templates/default.yml +4 -14
- data/generators/cucumber/cucumber_generator.rb +1 -1
- data/generators/cucumber/templates/cucumber.yml +1 -2
- data/generators/cucumber/templates/env.rb +8 -7
- data/generators/emails/emails_generator.rb +1 -1
- data/generators/pages/pages_generator.rb +1 -1
- data/generators/pages/templates/example_page.rb +2 -2
- data/generators/root/root_generator.rb +1 -1
- data/generators/root/templates/Gemfile +1 -1
- data/generators/rspec/rspec_generator.rb +1 -1
- data/generators/rspec/templates/example_spec.rb +2 -2
- data/generators/rspec/templates/rspec.rake +1 -1
- data/generators/rspec/templates/spec_helper.rb +6 -5
- data/generators/tasks/tasks_generator.rb +1 -1
- data/generators/tasks/templates/common.rake +1 -0
- data/howitzer.gemspec +8 -8
- data/lib/howitzer.rb +4 -1
- data/lib/howitzer/blank_page.rb +6 -0
- data/lib/howitzer/capybara/dsl_ex.rb +15 -0
- data/lib/howitzer/capybara/settings.rb +267 -0
- data/lib/howitzer/email.rb +134 -0
- data/lib/howitzer/exceptions.rb +18 -0
- data/lib/howitzer/helpers.rb +34 -23
- data/lib/howitzer/init.rb +1 -4
- data/lib/howitzer/mailgun/client.rb +48 -0
- data/lib/howitzer/mailgun/connector.rb +34 -0
- data/lib/howitzer/mailgun/response.rb +28 -0
- data/lib/howitzer/utils.rb +2 -2
- data/lib/howitzer/utils/data_generator/data_storage.rb +15 -2
- data/lib/howitzer/utils/data_generator/gen.rb +14 -10
- data/lib/howitzer/utils/locator_store.rb +14 -7
- data/lib/howitzer/utils/log.rb +2 -0
- data/lib/howitzer/utils/page_validator.rb +74 -27
- data/lib/howitzer/version.rb +1 -1
- data/lib/howitzer/web_page.rb +83 -32
- data/spec/config/default.yml +10 -12
- data/spec/spec_helper.rb +12 -0
- data/spec/support/mailgun_unit_client.rb +60 -0
- data/spec/unit/generators/generators_spec.rb +7 -7
- data/spec/unit/lib/capybara/dsl_ex_spec.rb +60 -0
- data/spec/unit/lib/{capybara_settings_spec.rb → capybara/settings_spec.rb} +16 -10
- data/spec/unit/lib/email_spec.rb +129 -0
- data/spec/unit/lib/helpers_spec.rb +160 -34
- data/spec/unit/lib/init_spec.rb +1 -12
- data/spec/unit/lib/mailgun/client_spec.rb +36 -0
- data/spec/unit/lib/mailgun/connector_spec.rb +70 -0
- data/spec/unit/lib/mailgun/response_spec.rb +29 -0
- data/spec/unit/lib/utils/data_generator/data_storage_spec.rb +23 -5
- data/spec/unit/lib/utils/data_generator/gen_spec.rb +2 -63
- data/spec/unit/lib/utils/locator_store_spec.rb +41 -6
- data/spec/unit/lib/utils/log_spec.rb +1 -1
- data/spec/unit/lib/utils/page_validator_spec.rb +149 -25
- data/spec/unit/lib/web_page_spec.rb +127 -53
- metadata +102 -142
- data/lib/howitzer/utils/capybara_patched.rb +0 -23
- data/lib/howitzer/utils/capybara_settings.rb +0 -247
- data/lib/howitzer/utils/email/email.rb +0 -85
- data/lib/howitzer/utils/email/mail_client.rb +0 -132
- data/lib/howitzer/utils/email/mailgun.rb +0 -175
- data/lib/howitzer/utils/email/mailgun_helper.rb +0 -61
- data/spec/unit/bin/howitzer_spec.rb +0 -175
- data/spec/unit/lib/utils/email/email_spec.rb +0 -75
- data/spec/unit/lib/utils/email/mail_client_spec.rb +0 -115
- data/spec/unit/lib/utils/email/mailgun_helper_spec.rb +0 -95
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require
|
3
|
-
require
|
4
|
-
|
2
|
+
require 'howitzer/web_page'
|
3
|
+
require 'howitzer/capybara/settings'
|
5
4
|
|
6
5
|
describe "WebPage" do
|
7
6
|
describe ".open" do
|
@@ -10,26 +9,130 @@ describe "WebPage" do
|
|
10
9
|
let(:check_correct_page_loaded) { double }
|
11
10
|
let(:other_instance) { WebPage.instance }
|
12
11
|
subject { WebPage.open(url_value) }
|
13
|
-
before do
|
14
|
-
stub_const("WebPage::URL_PATTERN", 'pattern')
|
15
|
-
allow(WebPage.instance).to receive(:check_correct_page_loaded) { true }
|
16
|
-
end
|
17
12
|
it do
|
18
|
-
expect(log).to receive(:info).with("Open WebPage page by 'google.com' url")
|
19
|
-
expect(WebPage).to receive(:retryable)
|
20
|
-
expect(
|
13
|
+
expect(log).to receive(:info).with("Open WebPage page by 'google.com' url").once.ordered
|
14
|
+
expect(WebPage).to receive(:retryable).ordered.once.and_call_original
|
15
|
+
expect(WebPage).to receive(:visit).with(url_value).once.ordered
|
16
|
+
expect(WebPage).to receive(:given).once.ordered
|
21
17
|
subject
|
22
18
|
end
|
23
19
|
end
|
24
20
|
|
25
21
|
describe ".given" do
|
26
|
-
|
22
|
+
subject { WebPage.given }
|
27
23
|
before do
|
28
|
-
|
29
|
-
|
24
|
+
expect(WebPage).to receive(:wait_for_opened).with(no_args).once
|
25
|
+
allow_any_instance_of(WebPage).to receive(:check_validations_are_defined!){ true }
|
26
|
+
end
|
27
|
+
it { expect(subject.class).to eql(WebPage) }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe ".title" do
|
31
|
+
let(:page) { double }
|
32
|
+
subject { WebPage.instance.title }
|
33
|
+
before do
|
34
|
+
allow(WebPage.instance).to receive(:current_url) { "google.com" }
|
30
35
|
end
|
31
36
|
it do
|
32
|
-
expect(WebPage.
|
37
|
+
expect(WebPage.instance).to receive(:page) { page }
|
38
|
+
expect(page).to receive(:title)
|
39
|
+
subject
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe ".url" do
|
44
|
+
let(:page) { double }
|
45
|
+
subject { WebPage.url }
|
46
|
+
it do
|
47
|
+
expect(WebPage).to receive(:page) { page }
|
48
|
+
expect(page).to receive(:current_url) { "google.com" }
|
49
|
+
expect(subject).to eq("google.com")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe ".current_url" do
|
54
|
+
let(:page) { double }
|
55
|
+
subject { WebPage.current_url }
|
56
|
+
it do
|
57
|
+
expect(WebPage).to receive(:page) { page }
|
58
|
+
expect(page).to receive(:current_url) { "google.com" }
|
59
|
+
expect(subject).to eq("google.com")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe ".text" do
|
64
|
+
let(:page) { double }
|
65
|
+
let(:find) { double }
|
66
|
+
subject { WebPage.text }
|
67
|
+
it do
|
68
|
+
expect(WebPage).to receive(:page) { page }
|
69
|
+
expect(page).to receive(:find).with('body') { find }
|
70
|
+
expect(find).to receive(:text) { "some body text" }
|
71
|
+
expect(subject).to eq("some body text")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe ".current_page" do
|
76
|
+
subject { WebPage.current_page }
|
77
|
+
context "when matched_pages has no pages" do
|
78
|
+
before { allow(WebPage).to receive(:matched_pages){ [] } }
|
79
|
+
it { expect(subject).to eq(WebPage::UnknownPage) }
|
80
|
+
end
|
81
|
+
context "when matched_pages has more than 1 page" do
|
82
|
+
let(:foo_page) { double(inspect: "FooPage") }
|
83
|
+
let(:bar_page) { double(inspect: "BarPage") }
|
84
|
+
before do
|
85
|
+
allow(WebPage).to receive(:current_url) { 'http://test.com' }
|
86
|
+
allow(WebPage).to receive(:title) { 'Test site' }
|
87
|
+
allow(WebPage).to receive(:matched_pages){ [foo_page, bar_page] }
|
88
|
+
end
|
89
|
+
it do
|
90
|
+
expect(log).to receive(:error).with(
|
91
|
+
Howitzer::AmbiguousPageMatchingError,
|
92
|
+
"Current page matches more that one page class (FooPage, BarPage).\n\tCurrent url: http://test.com\n\tCurrent title: Test site"
|
93
|
+
).once
|
94
|
+
subject
|
95
|
+
end
|
96
|
+
end
|
97
|
+
context "when matched_pages has only 1 page" do
|
98
|
+
let(:foo_page) { double(to_s: "FooPage") }
|
99
|
+
before { allow(WebPage).to receive(:matched_pages){ [foo_page] } }
|
100
|
+
it { expect(subject).to eq(foo_page) }
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe ".wait_for_opened" do
|
105
|
+
subject { WebPage.wait_for_opened }
|
106
|
+
context "when page is opened" do
|
107
|
+
before { allow(WebPage).to receive(:opened?) { true } }
|
108
|
+
it { expect(subject).to be_nil }
|
109
|
+
end
|
110
|
+
context "when page is not opened" do
|
111
|
+
before do
|
112
|
+
allow(WebPage).to receive(:current_page) { 'FooPage' }
|
113
|
+
allow(WebPage).to receive(:current_url) { 'http://test.com' }
|
114
|
+
allow(WebPage).to receive(:title) { 'Test site' }
|
115
|
+
allow(settings).to receive(:timeout_small) { 0.1 }
|
116
|
+
allow(WebPage).to receive(:opened?) { false }
|
117
|
+
end
|
118
|
+
it do
|
119
|
+
expect(log).to receive(:error).with(
|
120
|
+
Howitzer::IncorrectPageError,
|
121
|
+
"Current page: FooPage, expected: WebPage.\n\tCurrent url: http://test.com\n\tCurrent title: Test site"
|
122
|
+
)
|
123
|
+
subject
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe "inherited callback" do
|
129
|
+
let!(:page_class) do
|
130
|
+
Howitzer::Utils::PageValidator.instance_variable_set(:@pages, [])
|
131
|
+
Class.new(WebPage)
|
132
|
+
end
|
133
|
+
it { expect(Howitzer::Utils::PageValidator.pages).to eq([page_class]) }
|
134
|
+
it "can not be instantiated with new" do
|
135
|
+
expect { page_class.new }.to raise_error(NoMethodError, "private method `new' called for #{page_class}")
|
33
136
|
end
|
34
137
|
end
|
35
138
|
|
@@ -172,9 +275,12 @@ describe "WebPage" do
|
|
172
275
|
end
|
173
276
|
context "when title not equals expected title" do
|
174
277
|
let(:expected_title) { "bad title" }
|
175
|
-
let(:error) {
|
278
|
+
let(:error) { Howitzer::IncorrectPageError }
|
176
279
|
let(:error_message) { "Current title: title, expected: bad title" }
|
177
|
-
it
|
280
|
+
it do
|
281
|
+
expect(log).to receive(:error).with(error,error_message).once.and_call_original
|
282
|
+
expect { subject }.to raise_error(error)
|
283
|
+
end
|
178
284
|
end
|
179
285
|
end
|
180
286
|
|
@@ -190,9 +296,12 @@ describe "WebPage" do
|
|
190
296
|
end
|
191
297
|
context "when current_url not equals expected_url" do
|
192
298
|
let(:expected_url) { "bad_url" }
|
193
|
-
let(:error) {
|
299
|
+
let(:error) { Howitzer::IncorrectPageError }
|
194
300
|
let(:error_message) { "Current url: google.com, expected: #{expected_url}" }
|
195
|
-
it
|
301
|
+
it do
|
302
|
+
expect(log).to receive(:error).with(error, error_message).once.and_call_original
|
303
|
+
expect { subject }.to raise_error(error)
|
304
|
+
end
|
196
305
|
end
|
197
306
|
end
|
198
307
|
|
@@ -212,39 +321,4 @@ describe "WebPage" do
|
|
212
321
|
subject
|
213
322
|
end
|
214
323
|
end
|
215
|
-
|
216
|
-
describe ".title" do
|
217
|
-
let(:page) { double }
|
218
|
-
subject { WebPage.instance.title }
|
219
|
-
before do
|
220
|
-
allow(WebPage.instance).to receive(:current_url) { "google.com" }
|
221
|
-
end
|
222
|
-
it do
|
223
|
-
expect(WebPage.instance).to receive(:page) { page }
|
224
|
-
expect(page).to receive(:title)
|
225
|
-
subject
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
|
-
describe ".current_url" do
|
230
|
-
let(:page) { double }
|
231
|
-
subject { WebPage.current_url }
|
232
|
-
it do
|
233
|
-
expect(WebPage).to receive(:page) { page }
|
234
|
-
expect(page).to receive(:current_url) { "google.com" }
|
235
|
-
expect(subject).to eq("google.com")
|
236
|
-
end
|
237
|
-
end
|
238
|
-
|
239
|
-
describe ".text" do
|
240
|
-
let(:page) { double }
|
241
|
-
let(:find) { double }
|
242
|
-
subject { WebPage.text }
|
243
|
-
it do
|
244
|
-
expect(WebPage).to receive(:page) { page }
|
245
|
-
expect(page).to receive(:find).with('body') { find }
|
246
|
-
expect(find).to receive(:text) { "some body text" }
|
247
|
-
expect(subject).to eq("some body text")
|
248
|
-
end
|
249
|
-
end
|
250
324
|
end
|
metadata
CHANGED
@@ -1,84 +1,88 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: howitzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Roman Parashchenko, Konstantin Lynda, Nikolay Zozulyak
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gli
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
28
39
|
- !ruby/object:Gem::Version
|
29
40
|
version: '0'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: i18n
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- -
|
45
|
+
- - '>='
|
36
46
|
- !ruby/object:Gem::Version
|
37
47
|
version: '0'
|
38
48
|
type: :runtime
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- -
|
52
|
+
- - '>='
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '0'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: syntax
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - '>='
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '0'
|
54
62
|
type: :runtime
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - '>='
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: cucumber
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - '>='
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '0'
|
70
76
|
type: :runtime
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - '>='
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: rspec
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
87
|
- - ~>
|
84
88
|
- !ruby/object:Gem::Version
|
@@ -86,7 +90,6 @@ dependencies:
|
|
86
90
|
type: :runtime
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
94
|
- - ~>
|
92
95
|
- !ruby/object:Gem::Version
|
@@ -94,167 +97,132 @@ dependencies:
|
|
94
97
|
- !ruby/object:Gem::Dependency
|
95
98
|
name: sexy_settings
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
100
|
requirements:
|
99
|
-
- -
|
101
|
+
- - '>='
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
version: '0'
|
102
104
|
type: :runtime
|
103
105
|
prerelease: false
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
|
-
- -
|
108
|
+
- - '>='
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
- !ruby/object:Gem::Dependency
|
111
112
|
name: repeater
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
121
|
requirements:
|
123
|
-
- -
|
122
|
+
- - '>='
|
124
123
|
- !ruby/object:Gem::Version
|
125
124
|
version: '0'
|
126
125
|
- !ruby/object:Gem::Dependency
|
127
126
|
name: launchy
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
128
|
requirements:
|
131
|
-
- -
|
129
|
+
- - '>='
|
132
130
|
- !ruby/object:Gem::Version
|
133
131
|
version: '0'
|
134
132
|
type: :runtime
|
135
133
|
prerelease: false
|
136
134
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
135
|
requirements:
|
139
|
-
- -
|
136
|
+
- - '>='
|
140
137
|
- !ruby/object:Gem::Version
|
141
138
|
version: '0'
|
142
139
|
- !ruby/object:Gem::Dependency
|
143
140
|
name: log4r
|
144
141
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
142
|
requirements:
|
147
|
-
- -
|
143
|
+
- - '='
|
148
144
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
145
|
+
version: 1.1.10
|
150
146
|
type: :runtime
|
151
147
|
prerelease: false
|
152
148
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
149
|
requirements:
|
155
|
-
- -
|
150
|
+
- - '='
|
156
151
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: mail
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
|
-
requirements:
|
163
|
-
- - ! '>='
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '0'
|
166
|
-
type: :runtime
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
152
|
+
version: 1.1.10
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rest-client
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - '>='
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: '0'
|
182
160
|
type: :runtime
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - '>='
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: poltergeist
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - '>='
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :runtime
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - '>='
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: rawler
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
|
-
- -
|
185
|
+
- - '>='
|
212
186
|
- !ruby/object:Gem::Version
|
213
187
|
version: '0'
|
214
188
|
type: :runtime
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
|
-
- -
|
192
|
+
- - '>='
|
220
193
|
- !ruby/object:Gem::Version
|
221
194
|
version: '0'
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: capybara
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
|
-
- -
|
199
|
+
- - '>='
|
228
200
|
- !ruby/object:Gem::Version
|
229
201
|
version: '0'
|
230
202
|
type: :runtime
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
|
-
- -
|
206
|
+
- - '>='
|
236
207
|
- !ruby/object:Gem::Version
|
237
208
|
version: '0'
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: selenium-webdriver
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
|
-
- -
|
213
|
+
- - '>='
|
244
214
|
- !ruby/object:Gem::Version
|
245
215
|
version: '0'
|
246
216
|
type: :runtime
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
|
-
- -
|
220
|
+
- - '>='
|
252
221
|
- !ruby/object:Gem::Version
|
253
222
|
version: '0'
|
254
223
|
- !ruby/object:Gem::Dependency
|
255
|
-
name:
|
224
|
+
name: activesupport
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
226
|
requirements:
|
259
227
|
- - ~>
|
260
228
|
- !ruby/object:Gem::Version
|
@@ -262,7 +230,6 @@ dependencies:
|
|
262
230
|
type: :runtime
|
263
231
|
prerelease: false
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
233
|
requirements:
|
267
234
|
- - ~>
|
268
235
|
- !ruby/object:Gem::Version
|
@@ -270,85 +237,62 @@ dependencies:
|
|
270
237
|
- !ruby/object:Gem::Dependency
|
271
238
|
name: testingbot
|
272
239
|
requirement: !ruby/object:Gem::Requirement
|
273
|
-
none: false
|
274
240
|
requirements:
|
275
|
-
- -
|
241
|
+
- - '>='
|
276
242
|
- !ruby/object:Gem::Version
|
277
243
|
version: '0'
|
278
244
|
type: :runtime
|
279
245
|
prerelease: false
|
280
246
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
none: false
|
282
247
|
requirements:
|
283
|
-
- -
|
248
|
+
- - '>='
|
284
249
|
- !ruby/object:Gem::Version
|
285
250
|
version: '0'
|
286
251
|
- !ruby/object:Gem::Dependency
|
287
|
-
name:
|
252
|
+
name: aruba
|
288
253
|
requirement: !ruby/object:Gem::Requirement
|
289
|
-
none: false
|
290
254
|
requirements:
|
291
|
-
- -
|
255
|
+
- - '>='
|
292
256
|
- !ruby/object:Gem::Version
|
293
|
-
version:
|
257
|
+
version: '0'
|
294
258
|
type: :development
|
295
259
|
prerelease: false
|
296
260
|
version_requirements: !ruby/object:Gem::Requirement
|
297
|
-
none: false
|
298
261
|
requirements:
|
299
|
-
- -
|
262
|
+
- - '>='
|
300
263
|
- !ruby/object:Gem::Version
|
301
|
-
version:
|
264
|
+
version: '0'
|
302
265
|
- !ruby/object:Gem::Dependency
|
303
266
|
name: fuubar
|
304
267
|
requirement: !ruby/object:Gem::Requirement
|
305
|
-
none: false
|
306
268
|
requirements:
|
307
|
-
- -
|
269
|
+
- - '>='
|
308
270
|
- !ruby/object:Gem::Version
|
309
271
|
version: 0.0.1
|
310
272
|
type: :development
|
311
273
|
prerelease: false
|
312
274
|
version_requirements: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
275
|
requirements:
|
315
|
-
- -
|
276
|
+
- - '>='
|
316
277
|
- !ruby/object:Gem::Version
|
317
278
|
version: 0.0.1
|
318
|
-
- !ruby/object:Gem::Dependency
|
319
|
-
name: rake
|
320
|
-
requirement: !ruby/object:Gem::Requirement
|
321
|
-
none: false
|
322
|
-
requirements:
|
323
|
-
- - ! '>='
|
324
|
-
- !ruby/object:Gem::Version
|
325
|
-
version: '0'
|
326
|
-
type: :development
|
327
|
-
prerelease: false
|
328
|
-
version_requirements: !ruby/object:Gem::Requirement
|
329
|
-
none: false
|
330
|
-
requirements:
|
331
|
-
- - ! '>='
|
332
|
-
- !ruby/object:Gem::Version
|
333
|
-
version: '0'
|
334
279
|
- !ruby/object:Gem::Dependency
|
335
280
|
name: ffaker
|
336
281
|
requirement: !ruby/object:Gem::Requirement
|
337
|
-
none: false
|
338
282
|
requirements:
|
339
|
-
- -
|
283
|
+
- - '>='
|
340
284
|
- !ruby/object:Gem::Version
|
341
285
|
version: '0'
|
342
286
|
type: :development
|
343
287
|
prerelease: false
|
344
288
|
version_requirements: !ruby/object:Gem::Requirement
|
345
|
-
none: false
|
346
289
|
requirements:
|
347
|
-
- -
|
290
|
+
- - '>='
|
348
291
|
- !ruby/object:Gem::Version
|
349
292
|
version: '0'
|
350
|
-
description:
|
351
|
-
|
293
|
+
description: Howitzer allows to generate a test project in 5 minutes. It uses the
|
294
|
+
best practices and design patterns. It has out-of-the-box configurations for parallel
|
295
|
+
cross-browser testing in the Cloud.
|
352
296
|
email:
|
353
297
|
- strongqa@gmail.com
|
354
298
|
executables:
|
@@ -366,6 +310,13 @@ files:
|
|
366
310
|
- README.md
|
367
311
|
- Rakefile
|
368
312
|
- bin/howitzer
|
313
|
+
- features/cli_help.feature
|
314
|
+
- features/cli_new.feature
|
315
|
+
- features/cli_unknown.feature
|
316
|
+
- features/cli_version.feature
|
317
|
+
- features/step_definitions/common_steps.rb
|
318
|
+
- features/support/env.rb
|
319
|
+
- features/support/transformers.rb
|
369
320
|
- generators/base_generator.rb
|
370
321
|
- generators/config/config_generator.rb
|
371
322
|
- generators/config/templates/custom.yml
|
@@ -395,19 +346,21 @@ files:
|
|
395
346
|
- generators/tasks/templates/common.rake
|
396
347
|
- howitzer.gemspec
|
397
348
|
- lib/howitzer.rb
|
349
|
+
- lib/howitzer/blank_page.rb
|
350
|
+
- lib/howitzer/capybara/dsl_ex.rb
|
351
|
+
- lib/howitzer/capybara/settings.rb
|
352
|
+
- lib/howitzer/email.rb
|
353
|
+
- lib/howitzer/exceptions.rb
|
398
354
|
- lib/howitzer/helpers.rb
|
399
355
|
- lib/howitzer/init.rb
|
356
|
+
- lib/howitzer/mailgun/client.rb
|
357
|
+
- lib/howitzer/mailgun/connector.rb
|
358
|
+
- lib/howitzer/mailgun/response.rb
|
400
359
|
- lib/howitzer/patches/rawler_patched.rb
|
401
360
|
- lib/howitzer/settings.rb
|
402
361
|
- lib/howitzer/utils.rb
|
403
|
-
- lib/howitzer/utils/capybara_patched.rb
|
404
|
-
- lib/howitzer/utils/capybara_settings.rb
|
405
362
|
- lib/howitzer/utils/data_generator/data_storage.rb
|
406
363
|
- lib/howitzer/utils/data_generator/gen.rb
|
407
|
-
- lib/howitzer/utils/email/email.rb
|
408
|
-
- lib/howitzer/utils/email/mail_client.rb
|
409
|
-
- lib/howitzer/utils/email/mailgun.rb
|
410
|
-
- lib/howitzer/utils/email/mailgun_helper.rb
|
411
364
|
- lib/howitzer/utils/locator_store.rb
|
412
365
|
- lib/howitzer/utils/log.rb
|
413
366
|
- lib/howitzer/utils/page_validator.rb
|
@@ -422,50 +375,55 @@ files:
|
|
422
375
|
- spec/support/boot_helper.rb
|
423
376
|
- spec/support/generator_helper.rb
|
424
377
|
- spec/support/logger_helper.rb
|
425
|
-
- spec/
|
378
|
+
- spec/support/mailgun_unit_client.rb
|
426
379
|
- spec/unit/generators/generators_spec.rb
|
427
|
-
- spec/unit/lib/
|
380
|
+
- spec/unit/lib/capybara/dsl_ex_spec.rb
|
381
|
+
- spec/unit/lib/capybara/settings_spec.rb
|
382
|
+
- spec/unit/lib/email_spec.rb
|
428
383
|
- spec/unit/lib/helpers_spec.rb
|
429
384
|
- spec/unit/lib/init_spec.rb
|
385
|
+
- spec/unit/lib/mailgun/client_spec.rb
|
386
|
+
- spec/unit/lib/mailgun/connector_spec.rb
|
387
|
+
- spec/unit/lib/mailgun/response_spec.rb
|
430
388
|
- spec/unit/lib/settings_spec.rb
|
431
389
|
- spec/unit/lib/utils/data_generator/data_storage_spec.rb
|
432
390
|
- spec/unit/lib/utils/data_generator/gen_spec.rb
|
433
|
-
- spec/unit/lib/utils/email/email_spec.rb
|
434
|
-
- spec/unit/lib/utils/email/mail_client_spec.rb
|
435
|
-
- spec/unit/lib/utils/email/mailgun_helper_spec.rb
|
436
391
|
- spec/unit/lib/utils/locator_store_spec.rb
|
437
392
|
- spec/unit/lib/utils/log_spec.rb
|
438
393
|
- spec/unit/lib/utils/page_validator_spec.rb
|
439
394
|
- spec/unit/lib/web_page_spec.rb
|
440
395
|
- spec/unit/version_spec.rb
|
441
|
-
homepage: https://github.com/
|
396
|
+
homepage: https://github.com/strongqa/howitzer
|
442
397
|
licenses: []
|
398
|
+
metadata: {}
|
443
399
|
post_install_message:
|
444
400
|
rdoc_options: []
|
445
401
|
require_paths:
|
446
402
|
- lib
|
447
403
|
required_ruby_version: !ruby/object:Gem::Requirement
|
448
|
-
none: false
|
449
404
|
requirements:
|
450
|
-
- -
|
405
|
+
- - '>='
|
451
406
|
- !ruby/object:Gem::Version
|
452
407
|
version: 1.9.3
|
453
408
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
454
|
-
none: false
|
455
409
|
requirements:
|
456
|
-
- -
|
410
|
+
- - '>='
|
457
411
|
- !ruby/object:Gem::Version
|
458
412
|
version: '0'
|
459
|
-
segments:
|
460
|
-
- 0
|
461
|
-
hash: -3063400484312304844
|
462
413
|
requirements: []
|
463
414
|
rubyforge_project:
|
464
|
-
rubygems_version:
|
415
|
+
rubygems_version: 2.2.0
|
465
416
|
signing_key:
|
466
|
-
specification_version:
|
467
|
-
summary:
|
417
|
+
specification_version: 4
|
418
|
+
summary: Ruby based framework for acceptance testing
|
468
419
|
test_files:
|
420
|
+
- features/cli_help.feature
|
421
|
+
- features/cli_new.feature
|
422
|
+
- features/cli_unknown.feature
|
423
|
+
- features/cli_version.feature
|
424
|
+
- features/step_definitions/common_steps.rb
|
425
|
+
- features/support/env.rb
|
426
|
+
- features/support/transformers.rb
|
469
427
|
- spec/active_resource.rb
|
470
428
|
- spec/config/custom.yml
|
471
429
|
- spec/config/default.yml
|
@@ -473,17 +431,19 @@ test_files:
|
|
473
431
|
- spec/support/boot_helper.rb
|
474
432
|
- spec/support/generator_helper.rb
|
475
433
|
- spec/support/logger_helper.rb
|
476
|
-
- spec/
|
434
|
+
- spec/support/mailgun_unit_client.rb
|
477
435
|
- spec/unit/generators/generators_spec.rb
|
478
|
-
- spec/unit/lib/
|
436
|
+
- spec/unit/lib/capybara/dsl_ex_spec.rb
|
437
|
+
- spec/unit/lib/capybara/settings_spec.rb
|
438
|
+
- spec/unit/lib/email_spec.rb
|
479
439
|
- spec/unit/lib/helpers_spec.rb
|
480
440
|
- spec/unit/lib/init_spec.rb
|
441
|
+
- spec/unit/lib/mailgun/client_spec.rb
|
442
|
+
- spec/unit/lib/mailgun/connector_spec.rb
|
443
|
+
- spec/unit/lib/mailgun/response_spec.rb
|
481
444
|
- spec/unit/lib/settings_spec.rb
|
482
445
|
- spec/unit/lib/utils/data_generator/data_storage_spec.rb
|
483
446
|
- spec/unit/lib/utils/data_generator/gen_spec.rb
|
484
|
-
- spec/unit/lib/utils/email/email_spec.rb
|
485
|
-
- spec/unit/lib/utils/email/mail_client_spec.rb
|
486
|
-
- spec/unit/lib/utils/email/mailgun_helper_spec.rb
|
487
447
|
- spec/unit/lib/utils/locator_store_spec.rb
|
488
448
|
- spec/unit/lib/utils/log_spec.rb
|
489
449
|
- spec/unit/lib/utils/page_validator_spec.rb
|