howitzer 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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