howitzer 1.0.2 → 1.1.0

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