howitzer 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +3 -1
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +4 -1
  6. data/.yardopts +5 -0
  7. data/CHANGELOG.md +23 -1
  8. data/CONTRIBUTING.md +14 -0
  9. data/GETTING_STARTED.md +283 -183
  10. data/Gemfile +3 -2
  11. data/LICENSE +1 -1
  12. data/README.md +93 -39
  13. data/Rakefile +4 -0
  14. data/bin/howitzer +34 -5
  15. data/features/cli_help.feature +3 -2
  16. data/features/cli_new.feature +1 -1
  17. data/features/cli_unknown.feature +1 -1
  18. data/features/cli_update.feature +84 -0
  19. data/features/step_definitions/common_steps.rb +9 -1
  20. data/generators/base_generator.rb +30 -15
  21. data/generators/config/config_generator.rb +7 -7
  22. data/generators/config/templates/custom.yml +1 -0
  23. data/generators/config/templates/default.yml +35 -5
  24. data/generators/cucumber/templates/env.rb +2 -2
  25. data/generators/cucumber/templates/transformers.rb +3 -1
  26. data/generators/root/templates/Gemfile +5 -3
  27. data/generators/root/templates/Rakefile +2 -0
  28. data/generators/rspec/templates/example_spec.rb +3 -3
  29. data/generators/rspec/templates/spec_helper.rb +6 -7
  30. data/howitzer.gemspec +15 -15
  31. data/lib/howitzer/capybara/settings.rb +125 -49
  32. data/lib/howitzer/helpers.rb +161 -94
  33. data/lib/howitzer/mailgun/client.rb +1 -1
  34. data/lib/howitzer/tasks/framework.rake +3 -0
  35. data/lib/howitzer/utils.rb +1 -1
  36. data/lib/howitzer/utils/locator_store.rb +1 -1
  37. data/lib/howitzer/utils/log.rb +1 -1
  38. data/lib/howitzer/utils/page_validator.rb +1 -1
  39. data/lib/howitzer/version.rb +1 -1
  40. data/lib/howitzer/web_page.rb +11 -11
  41. data/spec/spec_helper.rb +25 -22
  42. data/spec/support/generator_helper.rb +8 -1
  43. data/spec/unit/generators/base_generator_spec.rb +242 -0
  44. data/spec/unit/generators/config_generator_spec.rb +34 -0
  45. data/spec/unit/generators/cucumber_generator_spec.rb +45 -0
  46. data/spec/unit/generators/emails_generator_spec.rb +31 -0
  47. data/spec/unit/generators/pages_generator_spec.rb +33 -0
  48. data/spec/unit/generators/root_generator_spec.rb +35 -0
  49. data/spec/unit/generators/rspec_generator_spec.rb +36 -0
  50. data/spec/unit/generators/tasks_generator_spec.rb +31 -0
  51. data/spec/unit/lib/capybara/dsl_ex_spec.rb +11 -11
  52. data/spec/unit/lib/capybara/settings_spec.rb +336 -58
  53. data/spec/unit/lib/email_spec.rb +17 -17
  54. data/spec/unit/lib/helpers_spec.rb +699 -315
  55. data/spec/unit/lib/mailgun/client_spec.rb +9 -9
  56. data/spec/unit/lib/mailgun/connector_spec.rb +20 -20
  57. data/spec/unit/lib/mailgun/response_spec.rb +9 -9
  58. data/spec/unit/lib/settings_spec.rb +6 -6
  59. data/spec/unit/lib/utils/data_generator/data_storage_spec.rb +31 -31
  60. data/spec/unit/lib/utils/data_generator/gen_spec.rb +20 -20
  61. data/spec/unit/lib/utils/locator_store_spec.rb +39 -39
  62. data/spec/unit/lib/utils/log_spec.rb +42 -42
  63. data/spec/unit/lib/utils/page_validator_spec.rb +69 -70
  64. data/spec/unit/lib/web_page_spec.rb +91 -69
  65. data/spec/unit/version_spec.rb +3 -3
  66. metadata +100 -78
  67. data/spec/unit/generators/generators_spec.rb +0 -175
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
  require 'howitzer/web_page'
3
3
  require 'howitzer/capybara/settings'
4
4
 
5
- describe "WebPage" do
6
- describe ".open" do
7
- let(:url_value) { "google.com" }
5
+ RSpec.describe 'WebPage' do
6
+ describe '.open' do
7
+ let(:url_value) { 'google.com' }
8
8
  let(:retryable) { double }
9
9
  let(:check_correct_page_loaded) { double }
10
10
  let(:other_instance) { WebPage.instance }
@@ -18,20 +18,21 @@ describe "WebPage" do
18
18
  end
19
19
  end
20
20
 
21
- describe ".given" do
21
+ describe '.given' do
22
22
  subject { WebPage.given }
23
23
  before do
24
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 }
25
+ expect(WebPage).to receive(:instance) { true }
26
26
  end
27
- it { expect(subject.class).to eql(WebPage) }
27
+ it { is_expected.to be_truthy }
28
28
  end
29
29
 
30
- describe ".title" do
30
+ describe '.title' do
31
31
  let(:page) { double }
32
32
  subject { WebPage.instance.title }
33
33
  before do
34
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
34
+ allow_any_instance_of(WebPage).to receive(:check_validations_are_defined!) { true }
35
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
35
36
  end
36
37
  it do
37
38
  expect(WebPage.instance).to receive(:page) { page }
@@ -40,47 +41,47 @@ describe "WebPage" do
40
41
  end
41
42
  end
42
43
 
43
- describe ".url" do
44
+ describe '.url' do
44
45
  let(:page) { double }
45
46
  subject { WebPage.url }
46
47
  it do
47
48
  expect(WebPage).to receive(:page) { page }
48
- expect(page).to receive(:current_url) { "google.com" }
49
- expect(subject).to eq("google.com")
49
+ expect(page).to receive(:current_url) { 'google.com' }
50
+ is_expected.to eq('google.com')
50
51
  end
51
52
  end
52
53
 
53
- describe ".current_url" do
54
+ describe '.current_url' do
54
55
  let(:page) { double }
55
56
  subject { WebPage.current_url }
56
57
  it do
57
58
  expect(WebPage).to receive(:page) { page }
58
- expect(page).to receive(:current_url) { "google.com" }
59
- expect(subject).to eq("google.com")
59
+ expect(page).to receive(:current_url) { 'google.com' }
60
+ is_expected.to eq('google.com')
60
61
  end
61
62
  end
62
63
 
63
- describe ".text" do
64
+ describe '.text' do
64
65
  let(:page) { double }
65
66
  let(:find) { double }
66
67
  subject { WebPage.text }
67
68
  it do
68
69
  expect(WebPage).to receive(:page) { page }
69
70
  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")
71
+ expect(find).to receive(:text) { 'some body text' }
72
+ is_expected.to eq('some body text')
72
73
  end
73
74
  end
74
75
 
75
- describe ".current_page" do
76
+ describe '.current_page' do
76
77
  subject { WebPage.current_page }
77
- context "when matched_pages has no pages" do
78
+ context 'when matched_pages has no pages' do
78
79
  before { allow(WebPage).to receive(:matched_pages){ [] } }
79
- it { expect(subject).to eq(WebPage::UnknownPage) }
80
+ it { is_expected.to eq(WebPage::UnknownPage) }
80
81
  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") }
82
+ context 'when matched_pages has more than 1 page' do
83
+ let(:foo_page) { double(inspect: 'FooPage') }
84
+ let(:bar_page) { double(inspect: 'BarPage') }
84
85
  before do
85
86
  allow(WebPage).to receive(:current_url) { 'http://test.com' }
86
87
  allow(WebPage).to receive(:title) { 'Test site' }
@@ -94,20 +95,20 @@ describe "WebPage" do
94
95
  subject
95
96
  end
96
97
  end
97
- context "when matched_pages has only 1 page" do
98
- let(:foo_page) { double(to_s: "FooPage") }
98
+ context 'when matched_pages has only 1 page' do
99
+ let(:foo_page) { double(to_s: 'FooPage') }
99
100
  before { allow(WebPage).to receive(:matched_pages){ [foo_page] } }
100
- it { expect(subject).to eq(foo_page) }
101
+ it { is_expected.to eq(foo_page) }
101
102
  end
102
103
  end
103
104
 
104
- describe ".wait_for_opened" do
105
+ describe '.wait_for_opened' do
105
106
  subject { WebPage.wait_for_opened }
106
- context "when page is opened" do
107
+ context 'when page is opened' do
107
108
  before { allow(WebPage).to receive(:opened?) { true } }
108
- it { expect(subject).to be_nil }
109
+ it { is_expected.to be_nil }
109
110
  end
110
- context "when page is not opened" do
111
+ context 'when page is not opened' do
111
112
  before do
112
113
  allow(WebPage).to receive(:current_page) { 'FooPage' }
113
114
  allow(WebPage).to receive(:current_url) { 'http://test.com' }
@@ -125,26 +126,47 @@ describe "WebPage" do
125
126
  end
126
127
  end
127
128
 
128
- describe "inherited callback" do
129
+ describe '#initialize' do
130
+ subject { WebPage.send(:new) }
131
+ before do
132
+ expect_any_instance_of(WebPage).to receive(:check_validations_are_defined!).once { true }
133
+ end
134
+ context 'when maximized_window is true' do
135
+ before { allow(settings).to receive(:maximized_window) { true } }
136
+ it do
137
+ expect_any_instance_of(WebPage).to receive_message_chain('page.driver.browser.manage.window.maximize')
138
+ subject
139
+ end
140
+ end
141
+ context 'when maximized_window is false' do
142
+ before { allow(settings).to receive(:maximized_window) { false } }
143
+ it do
144
+ expect_any_instance_of(WebPage).not_to receive('page')
145
+ subject
146
+ end
147
+ end
148
+ end
149
+
150
+ describe 'inherited callback' do
129
151
  let!(:page_class) do
130
152
  Howitzer::Utils::PageValidator.instance_variable_set(:@pages, [])
131
153
  Class.new(WebPage)
132
154
  end
133
155
  it { expect(Howitzer::Utils::PageValidator.pages).to eq([page_class]) }
134
- it "can not be instantiated with new" do
156
+ it 'can not be instantiated with new' do
135
157
  expect { page_class.new }.to raise_error(NoMethodError, "private method `new' called for #{page_class}")
136
158
  end
137
159
  end
138
160
 
139
- describe "#tinymce_fill_in" do
161
+ describe '#tinymce_fill_in' do
140
162
  subject { WebPage.instance.tinymce_fill_in(name,options) }
141
163
  let(:name) { 'name' }
142
- let(:options) { {with: "some content"} }
164
+ let(:options) { {with: 'some content'} }
143
165
  before do
144
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
166
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
145
167
  allow(settings).to receive(:driver) { driver_name }
146
168
  end
147
- context "when correct driver specified" do
169
+ context 'when correct driver specified' do
148
170
  let(:driver_name) { 'selenium' }
149
171
  let(:page) { double }
150
172
  let(:driver) { double }
@@ -157,11 +179,11 @@ describe "WebPage" do
157
179
  expect(page).to receive(:driver).ordered { driver }
158
180
  expect(driver).to receive(:browser).ordered { browser }
159
181
  expect(browser).to receive(:switch_to).ordered { switch_to }
160
- expect(switch_to).to receive(:frame).with("name_ifr").once
182
+ expect(switch_to).to receive(:frame).with('name_ifr').once
161
183
 
162
184
  expect(page).to receive(:find).with(:css, '#tinymce').ordered { find }
163
185
  expect(find).to receive(:native).ordered { native }
164
- expect(native).to receive(:send_keys).with("some content").once
186
+ expect(native).to receive(:send_keys).with('some content').once
165
187
 
166
188
  expect(page).to receive(:driver) { driver }
167
189
  expect(driver).to receive(:browser) { browser }
@@ -171,7 +193,7 @@ describe "WebPage" do
171
193
  subject
172
194
  end
173
195
  end
174
- context "when incorrect driver specified" do
196
+ context 'when incorrect driver specified' do
175
197
  let(:driver_name) { 'ff' }
176
198
  let(:page) { double }
177
199
  it do
@@ -181,14 +203,14 @@ describe "WebPage" do
181
203
  end
182
204
  end
183
205
  end
184
- describe "#click_alert_box" do
206
+ describe '#click_alert_box' do
185
207
  subject { WebPage.instance.click_alert_box(flag_value) }
186
208
  before do
187
209
  allow(settings).to receive(:driver) { driver_name }
188
210
  allow(settings).to receive(:timeout_tiny) { 0 }
189
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
211
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
190
212
  end
191
- context "when flag true and correct driver specified" do
213
+ context 'when flag true and correct driver specified' do
192
214
  let(:flag_value) { true }
193
215
  let(:page) { double }
194
216
  let(:alert) { double }
@@ -206,7 +228,7 @@ describe "WebPage" do
206
228
  subject
207
229
  end
208
230
  end
209
- context "when flag false and correct driver specified" do
231
+ context 'when flag false and correct driver specified' do
210
232
  let(:flag_value) { false }
211
233
  let(:page) { double }
212
234
  let(:alert) { double }
@@ -224,7 +246,7 @@ describe "WebPage" do
224
246
  subject
225
247
  end
226
248
  end
227
- context "when flag true and wrong driver specified" do
249
+ context 'when flag true and wrong driver specified' do
228
250
  let(:flag_value) { true }
229
251
  let(:page) { double }
230
252
  let(:driver_name) { 'ff' }
@@ -234,7 +256,7 @@ describe "WebPage" do
234
256
  subject
235
257
  end
236
258
  end
237
- context "when flag false and wrong driver specified" do
259
+ context 'when flag false and wrong driver specified' do
238
260
  let(:driver_name) { 'ff' }
239
261
  let(:flag_value) { false }
240
262
  let(:page) { double }
@@ -246,11 +268,11 @@ describe "WebPage" do
246
268
  end
247
269
  end
248
270
 
249
- describe "#js_click" do
250
- subject { WebPage.instance.js_click(".some_class") }
271
+ describe '#js_click' do
272
+ subject { WebPage.instance.js_click('.some_class') }
251
273
  before do
252
274
  allow(settings).to receive(:timeout_tiny) { 0.1 }
253
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
275
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
254
276
  end
255
277
  let(:page) { double }
256
278
  it do
@@ -261,22 +283,22 @@ describe "WebPage" do
261
283
 
262
284
  end
263
285
 
264
- describe "#wait_for_title" do
286
+ describe '#wait_for_title' do
265
287
  subject { WebPage.instance.wait_for_title(expected_title) }
266
288
  before do
267
289
  allow(settings).to receive(:timeout_small) { 0.1 }
268
- allow(WebPage.instance).to receive(:title) { "title" }
290
+ allow(WebPage.instance).to receive(:title) { 'title' }
269
291
  end
270
- context "when title equals expected title" do
271
- let(:expected_title) { "title" }
292
+ context 'when title equals expected title' do
293
+ let(:expected_title) { 'title' }
272
294
  it do
273
- expect(subject).to be_true
295
+ is_expected.to be_truthy
274
296
  end
275
297
  end
276
- context "when title not equals expected title" do
277
- let(:expected_title) { "bad title" }
298
+ context 'when title not equals expected title' do
299
+ let(:expected_title) { 'bad title' }
278
300
  let(:error) { Howitzer::IncorrectPageError }
279
- let(:error_message) { "Current title: title, expected: bad title" }
301
+ let(:error_message) { 'Current title: title, expected: bad title' }
280
302
  it do
281
303
  expect(log).to receive(:error).with(error,error_message).once.and_call_original
282
304
  expect { subject }.to raise_error(error)
@@ -284,18 +306,18 @@ describe "WebPage" do
284
306
  end
285
307
  end
286
308
 
287
- describe "#wait_for_url" do
309
+ describe '#wait_for_url' do
288
310
  subject { WebPage.instance.wait_for_url(expected_url) }
289
311
  before do
290
312
  allow(settings).to receive(:timeout_small) { 0.1 }
291
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
313
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
292
314
  end
293
- context "when current_url equals expected_url" do
294
- let(:expected_url) { "google.com" }
295
- it { expect(subject).to be_true }
315
+ context 'when current_url equals expected_url' do
316
+ let(:expected_url) { 'google.com' }
317
+ it { is_expected.to be_truthy }
296
318
  end
297
- context "when current_url not equals expected_url" do
298
- let(:expected_url) { "bad_url" }
319
+ context 'when current_url not equals expected_url' do
320
+ let(:expected_url) { 'bad_url' }
299
321
  let(:error) { Howitzer::IncorrectPageError }
300
322
  let(:error_message) { "Current url: google.com, expected: #{expected_url}" }
301
323
  it do
@@ -305,19 +327,19 @@ describe "WebPage" do
305
327
  end
306
328
  end
307
329
 
308
- describe "#reload" do
330
+ describe '#reload' do
309
331
  let(:wait_for_url) { double }
310
332
  subject { WebPage.instance.reload }
311
333
  let(:visit) { double }
312
334
  let(:webpage) { double }
313
335
  before do
314
- allow(WebPage.instance).to receive(:current_url) { "google.com" }
315
- stub_const("WebPage::URL_PATTERN",'pattern')
316
- allow(wait_for_url).to receive('pattern').and_return { true }
336
+ allow(WebPage.instance).to receive(:current_url) { 'google.com' }
337
+ stub_const('WebPage::URL_PATTERN', 'pattern')
338
+ allow(wait_for_url).to receive('pattern') { true }
317
339
  end
318
340
  it do
319
- expect(log).to receive(:info) { "Reload 'google.com' " }
320
- expect(WebPage.instance).to receive(:visit).with("google.com")
341
+ expect(log).to receive(:info) { "Reload 'google.com'" }
342
+ expect(WebPage.instance).to receive(:visit).with('google.com')
321
343
  subject
322
344
  end
323
345
  end
@@ -1,8 +1,8 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
- describe Howitzer do
3
+ RSpec.describe Howitzer do
4
4
  it { expect(subject.constants).to include(:VERSION) }
5
5
  it 'should contains VERSION constant with correct format' do
6
6
  expect(Howitzer::VERSION).to match(/^\d+\.\d+(\.\d+)?$/)
7
7
  end
8
- end
8
+ end
metadata CHANGED
@@ -1,309 +1,312 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howitzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Roman Parashchenko, Konstantin Lynda, Nikolay Zozulyak
7
+ - Roman Parashchenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-30 00:00:00.000000000 Z
11
+ date: 2015-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gli
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: i18n
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: syntax
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - '>='
45
+ - - ">="
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - '>='
52
+ - - ">="
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: cucumber
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - '>='
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: '2.0'
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - '>='
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '2.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ~>
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '2.0'
75
+ version: '3.2'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ~>
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '2.0'
82
+ version: '3.2'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: sexy_settings
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - '>='
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
89
  version: '0'
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - '>='
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: repeater
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - '>='
108
+ - - ">="
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: launchy
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - '>='
115
+ - - ">="
130
116
  - !ruby/object:Gem::Version
131
117
  version: '0'
132
118
  type: :runtime
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - '>='
122
+ - - ">="
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: log4r
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
- - - '='
129
+ - - "~>"
144
130
  - !ruby/object:Gem::Version
145
131
  version: 1.1.10
146
132
  type: :runtime
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
- - - '='
136
+ - - "~>"
151
137
  - !ruby/object:Gem::Version
152
138
  version: 1.1.10
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: rest-client
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - '>='
143
+ - - ">="
158
144
  - !ruby/object:Gem::Version
159
145
  version: '0'
160
146
  type: :runtime
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
- - - '>='
150
+ - - ">="
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: poltergeist
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
- - - '>='
157
+ - - ">="
172
158
  - !ruby/object:Gem::Version
173
159
  version: '0'
174
160
  type: :runtime
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
- - - '>='
164
+ - - ">="
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: rawler
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
- - - '>='
171
+ - - ">="
186
172
  - !ruby/object:Gem::Version
187
173
  version: '0'
188
174
  type: :runtime
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
- - - '>='
178
+ - - ">="
193
179
  - !ruby/object:Gem::Version
194
180
  version: '0'
195
181
  - !ruby/object:Gem::Dependency
196
182
  name: capybara
197
183
  requirement: !ruby/object:Gem::Requirement
198
184
  requirements:
199
- - - '>='
185
+ - - ">="
200
186
  - !ruby/object:Gem::Version
201
187
  version: '0'
202
188
  type: :runtime
203
189
  prerelease: false
204
190
  version_requirements: !ruby/object:Gem::Requirement
205
191
  requirements:
206
- - - '>='
192
+ - - ">="
207
193
  - !ruby/object:Gem::Version
208
194
  version: '0'
209
195
  - !ruby/object:Gem::Dependency
210
196
  name: selenium-webdriver
211
197
  requirement: !ruby/object:Gem::Requirement
212
198
  requirements:
213
- - - '>='
199
+ - - ">="
214
200
  - !ruby/object:Gem::Version
215
201
  version: '0'
216
202
  type: :runtime
217
203
  prerelease: false
218
204
  version_requirements: !ruby/object:Gem::Requirement
219
205
  requirements:
220
- - - '>='
206
+ - - ">="
221
207
  - !ruby/object:Gem::Version
222
208
  version: '0'
223
209
  - !ruby/object:Gem::Dependency
224
210
  name: activesupport
225
211
  requirement: !ruby/object:Gem::Requirement
226
212
  requirements:
227
- - - ~>
213
+ - - "~>"
228
214
  - !ruby/object:Gem::Version
229
- version: '4.0'
215
+ version: '4.2'
230
216
  type: :runtime
231
217
  prerelease: false
232
218
  version_requirements: !ruby/object:Gem::Requirement
233
219
  requirements:
234
- - - ~>
220
+ - - "~>"
235
221
  - !ruby/object:Gem::Version
236
- version: '4.0'
222
+ version: '4.2'
237
223
  - !ruby/object:Gem::Dependency
238
224
  name: testingbot
239
225
  requirement: !ruby/object:Gem::Requirement
240
226
  requirements:
241
- - - '>='
227
+ - - ">="
242
228
  - !ruby/object:Gem::Version
243
229
  version: '0'
244
230
  type: :runtime
245
231
  prerelease: false
246
232
  version_requirements: !ruby/object:Gem::Requirement
247
233
  requirements:
248
- - - '>='
234
+ - - ">="
249
235
  - !ruby/object:Gem::Version
250
236
  version: '0'
251
237
  - !ruby/object:Gem::Dependency
252
238
  name: aruba
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
- - - '>='
241
+ - - ">="
256
242
  - !ruby/object:Gem::Version
257
243
  version: '0'
258
244
  type: :development
259
245
  prerelease: false
260
246
  version_requirements: !ruby/object:Gem::Requirement
261
247
  requirements:
262
- - - '>='
248
+ - - ">="
263
249
  - !ruby/object:Gem::Version
264
250
  version: '0'
265
251
  - !ruby/object:Gem::Dependency
266
252
  name: fuubar
267
253
  requirement: !ruby/object:Gem::Requirement
268
254
  requirements:
269
- - - '>='
255
+ - - ">="
270
256
  - !ruby/object:Gem::Version
271
- version: 0.0.1
257
+ version: '0'
272
258
  type: :development
273
259
  prerelease: false
274
260
  version_requirements: !ruby/object:Gem::Requirement
275
261
  requirements:
276
- - - '>='
262
+ - - ">="
277
263
  - !ruby/object:Gem::Version
278
- version: 0.0.1
264
+ version: '0'
279
265
  - !ruby/object:Gem::Dependency
280
266
  name: ffaker
281
267
  requirement: !ruby/object:Gem::Requirement
282
268
  requirements:
283
- - - '>='
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: yard
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
284
  - !ruby/object:Gem::Version
285
285
  version: '0'
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - '>='
290
+ - - ">="
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
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.
296
- email:
297
- - strongqa@gmail.com
293
+ description: Howitzer uses the best practices and design patterns allowing to generate
294
+ a test project in less than 5 minutes. It has out-of-the-box configurations for
295
+ parallel cross-browser testing in the Cloud.
296
+ email: howitzer@strongqa.com
298
297
  executables:
299
298
  - howitzer
300
299
  extensions: []
301
300
  extra_rdoc_files: []
302
301
  files:
303
- - .gitignore
304
- - .rspec
305
- - .travis.yml
302
+ - ".coveralls.yml"
303
+ - ".gitignore"
304
+ - ".rspec"
305
+ - ".ruby-gemset"
306
+ - ".travis.yml"
307
+ - ".yardopts"
306
308
  - CHANGELOG.md
309
+ - CONTRIBUTING.md
307
310
  - GETTING_STARTED.md
308
311
  - Gemfile
309
312
  - LICENSE
@@ -313,6 +316,7 @@ files:
313
316
  - features/cli_help.feature
314
317
  - features/cli_new.feature
315
318
  - features/cli_unknown.feature
319
+ - features/cli_update.feature
316
320
  - features/cli_version.feature
317
321
  - features/step_definitions/common_steps.rb
318
322
  - features/support/env.rb
@@ -358,6 +362,7 @@ files:
358
362
  - lib/howitzer/mailgun/response.rb
359
363
  - lib/howitzer/patches/rawler_patched.rb
360
364
  - lib/howitzer/settings.rb
365
+ - lib/howitzer/tasks/framework.rake
361
366
  - lib/howitzer/utils.rb
362
367
  - lib/howitzer/utils/data_generator/data_storage.rb
363
368
  - lib/howitzer/utils/data_generator/gen.rb
@@ -376,7 +381,14 @@ files:
376
381
  - spec/support/generator_helper.rb
377
382
  - spec/support/logger_helper.rb
378
383
  - spec/support/mailgun_unit_client.rb
379
- - spec/unit/generators/generators_spec.rb
384
+ - spec/unit/generators/base_generator_spec.rb
385
+ - spec/unit/generators/config_generator_spec.rb
386
+ - spec/unit/generators/cucumber_generator_spec.rb
387
+ - spec/unit/generators/emails_generator_spec.rb
388
+ - spec/unit/generators/pages_generator_spec.rb
389
+ - spec/unit/generators/root_generator_spec.rb
390
+ - spec/unit/generators/rspec_generator_spec.rb
391
+ - spec/unit/generators/tasks_generator_spec.rb
380
392
  - spec/unit/lib/capybara/dsl_ex_spec.rb
381
393
  - spec/unit/lib/capybara/settings_spec.rb
382
394
  - spec/unit/lib/email_spec.rb
@@ -393,8 +405,9 @@ files:
393
405
  - spec/unit/lib/utils/page_validator_spec.rb
394
406
  - spec/unit/lib/web_page_spec.rb
395
407
  - spec/unit/version_spec.rb
396
- homepage: https://github.com/strongqa/howitzer
397
- licenses: []
408
+ homepage: http://strongqa.github.io/howitzer/
409
+ licenses:
410
+ - MIT
398
411
  metadata: {}
399
412
  post_install_message:
400
413
  rdoc_options: []
@@ -402,17 +415,17 @@ require_paths:
402
415
  - lib
403
416
  required_ruby_version: !ruby/object:Gem::Requirement
404
417
  requirements:
405
- - - '>='
418
+ - - ">="
406
419
  - !ruby/object:Gem::Version
407
420
  version: 1.9.3
408
421
  required_rubygems_version: !ruby/object:Gem::Requirement
409
422
  requirements:
410
- - - '>='
423
+ - - ">="
411
424
  - !ruby/object:Gem::Version
412
425
  version: '0'
413
426
  requirements: []
414
427
  rubyforge_project:
415
- rubygems_version: 2.2.0
428
+ rubygems_version: 2.4.5
416
429
  signing_key:
417
430
  specification_version: 4
418
431
  summary: Ruby based framework for acceptance testing
@@ -420,6 +433,7 @@ test_files:
420
433
  - features/cli_help.feature
421
434
  - features/cli_new.feature
422
435
  - features/cli_unknown.feature
436
+ - features/cli_update.feature
423
437
  - features/cli_version.feature
424
438
  - features/step_definitions/common_steps.rb
425
439
  - features/support/env.rb
@@ -432,7 +446,14 @@ test_files:
432
446
  - spec/support/generator_helper.rb
433
447
  - spec/support/logger_helper.rb
434
448
  - spec/support/mailgun_unit_client.rb
435
- - spec/unit/generators/generators_spec.rb
449
+ - spec/unit/generators/base_generator_spec.rb
450
+ - spec/unit/generators/config_generator_spec.rb
451
+ - spec/unit/generators/cucumber_generator_spec.rb
452
+ - spec/unit/generators/emails_generator_spec.rb
453
+ - spec/unit/generators/pages_generator_spec.rb
454
+ - spec/unit/generators/root_generator_spec.rb
455
+ - spec/unit/generators/rspec_generator_spec.rb
456
+ - spec/unit/generators/tasks_generator_spec.rb
436
457
  - spec/unit/lib/capybara/dsl_ex_spec.rb
437
458
  - spec/unit/lib/capybara/settings_spec.rb
438
459
  - spec/unit/lib/email_spec.rb
@@ -449,3 +470,4 @@ test_files:
449
470
  - spec/unit/lib/utils/page_validator_spec.rb
450
471
  - spec/unit/lib/web_page_spec.rb
451
472
  - spec/unit/version_spec.rb
473
+ has_rdoc: