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.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -1
  3. data/.travis.yml +3 -2
  4. data/CHANGELOG.md +25 -5
  5. data/GETTING_STARTED.md +158 -13
  6. data/README.md +49 -32
  7. data/Rakefile +10 -1
  8. data/bin/howitzer +49 -78
  9. data/features/cli_help.feature +30 -0
  10. data/features/cli_new.feature +263 -0
  11. data/features/cli_unknown.feature +17 -0
  12. data/features/cli_version.feature +14 -0
  13. data/features/step_definitions/common_steps.rb +1 -0
  14. data/features/support/env.rb +1 -0
  15. data/features/support/transformers.rb +3 -0
  16. data/generators/base_generator.rb +2 -0
  17. data/generators/config/config_generator.rb +1 -1
  18. data/generators/config/templates/default.yml +4 -14
  19. data/generators/cucumber/cucumber_generator.rb +1 -1
  20. data/generators/cucumber/templates/cucumber.yml +1 -2
  21. data/generators/cucumber/templates/env.rb +8 -7
  22. data/generators/emails/emails_generator.rb +1 -1
  23. data/generators/pages/pages_generator.rb +1 -1
  24. data/generators/pages/templates/example_page.rb +2 -2
  25. data/generators/root/root_generator.rb +1 -1
  26. data/generators/root/templates/Gemfile +1 -1
  27. data/generators/rspec/rspec_generator.rb +1 -1
  28. data/generators/rspec/templates/example_spec.rb +2 -2
  29. data/generators/rspec/templates/rspec.rake +1 -1
  30. data/generators/rspec/templates/spec_helper.rb +6 -5
  31. data/generators/tasks/tasks_generator.rb +1 -1
  32. data/generators/tasks/templates/common.rake +1 -0
  33. data/howitzer.gemspec +8 -8
  34. data/lib/howitzer.rb +4 -1
  35. data/lib/howitzer/blank_page.rb +6 -0
  36. data/lib/howitzer/capybara/dsl_ex.rb +15 -0
  37. data/lib/howitzer/capybara/settings.rb +267 -0
  38. data/lib/howitzer/email.rb +134 -0
  39. data/lib/howitzer/exceptions.rb +18 -0
  40. data/lib/howitzer/helpers.rb +34 -23
  41. data/lib/howitzer/init.rb +1 -4
  42. data/lib/howitzer/mailgun/client.rb +48 -0
  43. data/lib/howitzer/mailgun/connector.rb +34 -0
  44. data/lib/howitzer/mailgun/response.rb +28 -0
  45. data/lib/howitzer/utils.rb +2 -2
  46. data/lib/howitzer/utils/data_generator/data_storage.rb +15 -2
  47. data/lib/howitzer/utils/data_generator/gen.rb +14 -10
  48. data/lib/howitzer/utils/locator_store.rb +14 -7
  49. data/lib/howitzer/utils/log.rb +2 -0
  50. data/lib/howitzer/utils/page_validator.rb +74 -27
  51. data/lib/howitzer/version.rb +1 -1
  52. data/lib/howitzer/web_page.rb +83 -32
  53. data/spec/config/default.yml +10 -12
  54. data/spec/spec_helper.rb +12 -0
  55. data/spec/support/mailgun_unit_client.rb +60 -0
  56. data/spec/unit/generators/generators_spec.rb +7 -7
  57. data/spec/unit/lib/capybara/dsl_ex_spec.rb +60 -0
  58. data/spec/unit/lib/{capybara_settings_spec.rb → capybara/settings_spec.rb} +16 -10
  59. data/spec/unit/lib/email_spec.rb +129 -0
  60. data/spec/unit/lib/helpers_spec.rb +160 -34
  61. data/spec/unit/lib/init_spec.rb +1 -12
  62. data/spec/unit/lib/mailgun/client_spec.rb +36 -0
  63. data/spec/unit/lib/mailgun/connector_spec.rb +70 -0
  64. data/spec/unit/lib/mailgun/response_spec.rb +29 -0
  65. data/spec/unit/lib/utils/data_generator/data_storage_spec.rb +23 -5
  66. data/spec/unit/lib/utils/data_generator/gen_spec.rb +2 -63
  67. data/spec/unit/lib/utils/locator_store_spec.rb +41 -6
  68. data/spec/unit/lib/utils/log_spec.rb +1 -1
  69. data/spec/unit/lib/utils/page_validator_spec.rb +149 -25
  70. data/spec/unit/lib/web_page_spec.rb +127 -53
  71. metadata +102 -142
  72. data/lib/howitzer/utils/capybara_patched.rb +0 -23
  73. data/lib/howitzer/utils/capybara_settings.rb +0 -247
  74. data/lib/howitzer/utils/email/email.rb +0 -85
  75. data/lib/howitzer/utils/email/mail_client.rb +0 -132
  76. data/lib/howitzer/utils/email/mailgun.rb +0 -175
  77. data/lib/howitzer/utils/email/mailgun_helper.rb +0 -61
  78. data/spec/unit/bin/howitzer_spec.rb +0 -175
  79. data/spec/unit/lib/utils/email/email_spec.rb +0 -75
  80. data/spec/unit/lib/utils/email/mail_client_spec.rb +0 -115
  81. data/spec/unit/lib/utils/email/mailgun_helper_spec.rb +0 -95
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
- require "#{lib_path}/howitzer/web_page"
3
- require "#{lib_path}/howitzer/utils/capybara_settings"
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) { retryable }
20
- expect(subject).to eq(other_instance)
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
- let(:wait_for_url) { double }
22
+ subject { WebPage.given }
27
23
  before do
28
- stub_const("WebPage::URL_PATTERN",'pattern')
29
- allow(WebPage.instance).to receive(:check_correct_page_loaded) { true }
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.given).to be_a_kind_of(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) { WebPage::IncorrectPageError }
278
+ let(:error) { Howitzer::IncorrectPageError }
176
279
  let(:error_message) { "Current title: title, expected: bad title" }
177
- it { expect{subject}.to raise_error(error,error_message) }
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) { WebPage::IncorrectPageError }
299
+ let(:error) { Howitzer::IncorrectPageError }
194
300
  let(:error_message) { "Current url: google.com, expected: #{expected_url}" }
195
- it { expect{subject}.to raise_error(error, error_message) }
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.1
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: 2013-10-06 00:00:00.000000000 Z
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: '0'
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: '0'
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: activeresource
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: rspec
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: 2.14.1
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: 2.14.1
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: The framework is based on Page Object pattern, Capybara and Rspec/Cucumber
351
- libraries
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/unit/bin/howitzer_spec.rb
378
+ - spec/support/mailgun_unit_client.rb
426
379
  - spec/unit/generators/generators_spec.rb
427
- - spec/unit/lib/capybara_settings_spec.rb
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/romikoops/howitzer
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: 1.8.25
415
+ rubygems_version: 2.2.0
465
416
  signing_key:
466
- specification_version: 3
467
- summary: Universal Ruby Test Framework for black box testing
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/unit/bin/howitzer_spec.rb
434
+ - spec/support/mailgun_unit_client.rb
477
435
  - spec/unit/generators/generators_spec.rb
478
- - spec/unit/lib/capybara_settings_spec.rb
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