howitzer 0.0.1 → 0.0.3

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.
data/Gemfile.lock CHANGED
@@ -1,9 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- howitzer (0.0.1)
5
- activeresource (= 3.2.8)
6
- capybara
4
+ howitzer (0.0.3)
7
5
  cucumber
8
6
  i18n
9
7
  launchy
@@ -15,31 +13,23 @@ PATH
15
13
  rest-client
16
14
  rspec (~> 2.0)
17
15
  rubigen
18
- selenium-webdriver
19
16
  sexy_settings
20
17
 
21
18
  GEM
22
19
  remote: https://rubygems.org/
23
20
  specs:
24
- activemodel (3.2.8)
25
- activesupport (= 3.2.8)
26
- builder (~> 3.0.0)
27
- activeresource (3.2.8)
28
- activemodel (= 3.2.8)
29
- activesupport (= 3.2.8)
30
- activesupport (3.2.8)
31
- i18n (~> 0.6)
32
- multi_json (~> 1.0)
21
+ activesupport (3.1.8)
22
+ multi_json (>= 1.0, < 1.3)
33
23
  addressable (2.3.2)
34
- builder (3.0.3)
35
- capybara (1.1.2)
24
+ builder (3.1.3)
25
+ capybara (1.1.3)
36
26
  mime-types (>= 1.16)
37
27
  nokogiri (>= 1.3.3)
38
28
  rack (>= 1.0.0)
39
29
  rack-test (>= 0.5.4)
40
30
  selenium-webdriver (~> 2.0)
41
31
  xpath (~> 0.1.4)
42
- childprocess (0.3.5)
32
+ childprocess (0.3.6)
43
33
  ffi (~> 1.0, >= 1.0.6)
44
34
  cucumber (1.2.1)
45
35
  builder (>= 2.1.2)
@@ -50,25 +40,25 @@ GEM
50
40
  eventmachine (1.0.0)
51
41
  faye-websocket (0.4.6)
52
42
  eventmachine (>= 0.12.0)
53
- ffi (1.1.5)
54
- gherkin (2.11.2)
43
+ ffi (1.2.0)
44
+ gherkin (2.11.5)
55
45
  json (>= 1.4.6)
56
46
  http_parser.rb (0.5.3)
57
47
  i18n (0.6.1)
58
48
  json (1.7.5)
59
49
  launchy (2.1.2)
60
50
  addressable (~> 2.3)
61
- libwebsocket (0.1.5)
62
- addressable
51
+ libwebsocket (0.1.6.1)
52
+ websocket
63
53
  log4r (1.1.10)
64
- mail (2.4.4)
54
+ mail (2.5.2)
65
55
  i18n (>= 0.4.0)
66
56
  mime-types (~> 1.16)
67
57
  treetop (~> 1.4.8)
68
58
  mime-types (1.19)
69
- multi_json (1.3.6)
59
+ multi_json (1.2.0)
70
60
  nokogiri (1.5.5)
71
- poltergeist (0.7.0)
61
+ poltergeist (1.0.2)
72
62
  capybara (~> 1.1)
73
63
  childprocess (~> 0.3)
74
64
  faye-websocket (~> 0.4, >= 0.4.4)
@@ -78,31 +68,31 @@ GEM
78
68
  rack (1.4.1)
79
69
  rack-test (0.6.2)
80
70
  rack (>= 1.0)
81
- rake (0.9.2.2)
71
+ rake (10.0.2)
82
72
  repeater (0.0.1)
83
73
  rest-client (1.6.7)
84
74
  mime-types (>= 1.16)
85
- rspec (2.11.0)
86
- rspec-core (~> 2.11.0)
87
- rspec-expectations (~> 2.11.0)
88
- rspec-mocks (~> 2.11.0)
89
- rspec-core (2.11.1)
90
- rspec-expectations (2.11.3)
75
+ rspec (2.12.0)
76
+ rspec-core (~> 2.12.0)
77
+ rspec-expectations (~> 2.12.0)
78
+ rspec-mocks (~> 2.12.0)
79
+ rspec-core (2.12.0)
80
+ rspec-expectations (2.12.0)
91
81
  diff-lcs (~> 1.1.3)
92
- rspec-mocks (2.11.3)
93
- rubigen (1.5.7)
94
- activesupport (>= 2.3.5)
95
- i18n
82
+ rspec-mocks (2.12.0)
83
+ rubigen (1.5.8)
84
+ activesupport (>= 2.3.5, < 3.2.0)
96
85
  rubyzip (0.9.9)
97
- selenium-webdriver (2.25.0)
86
+ selenium-webdriver (2.26.0)
98
87
  childprocess (>= 0.2.5)
99
88
  libwebsocket (~> 0.1.3)
100
89
  multi_json (~> 1.0)
101
90
  rubyzip
102
91
  sexy_settings (0.0.1)
103
- treetop (1.4.10)
92
+ treetop (1.4.12)
104
93
  polyglot
105
94
  polyglot (>= 0.3.1)
95
+ websocket (1.0.4)
106
96
  xpath (0.1.4)
107
97
  nokogiri (~> 1.3)
108
98
 
data/History.md ADDED
@@ -0,0 +1,20 @@
1
+ ## In git
2
+
3
+ ### New Features
4
+
5
+ ### Bugfixes
6
+
7
+
8
+ ## [v0.0.3](https://github.com/romikoops/howitzer/compare/v0.0.1...v0.0.3)
9
+
10
+ ### New Features
11
+
12
+ * Added supporting poltergeist driver
13
+
14
+ ### Bugfixes
15
+
16
+ * Fixed problem with dependencies
17
+
18
+ ## [v0.0.1](https://github.com/romikoops/howitzer/tree/v0.0.1)
19
+
20
+ Initial version
data/README.md CHANGED
@@ -1,19 +1,38 @@
1
1
  # Howitzer
2
2
 
3
- TODO: Write a gem description
3
+ [![Dependency Status](https://gemnasium.com/romikoops/howitzer.png)](https://gemnasium.com/romikoops/howitzer)
4
4
 
5
- ## Installation
6
- Install it yourself as:
5
+ Howitzer is Ruby based framework for acceptance testing.
7
6
 
8
- $ gem install howitzer
7
+ Initially it was developed for testing of web applications, but it is applicable to testing of web services or some API as well.
8
+ The framework uses modern patterns, techniques and tools in automated testing area. For details, please see [Test Framework Design](https://github.com/romikoops/howitzer/wiki/Test-Framework-Design).
9
9
 
10
- ## Usage
10
+ ## Key benefits
11
+ - Independent of test web application, its technologies and lanquage.
12
+ - Deploy all test infrastructure for 5 minutes.
13
+ - Flexible test framework configuration.
14
+ - Ability to choose desired BDD tool (Cucumber for now only, but RSpec is coming soon)
15
+ - Itegration with SauceLabs, Mailgun web services.
16
+ - Easy to support tests in actual state.
17
+ - Ability to execute tests against to both browserless driver and actual browsers with no changes in your tests.
18
+
19
+ ## Setup
20
+ To install, type
21
+
22
+ ```bash
23
+ sudo gem install howitzer
24
+ ```
11
25
 
12
- Write command in command line:
26
+ ## Usage
27
+ To deploy the framework, type:
13
28
 
14
- $ howitzer install --cucumber
29
+ ```bash
30
+ mkdir test_automation
31
+ cd test_automation
32
+ howitzer install --cucumber
33
+ ```
15
34
 
16
- ### This command will generate next folders and files:
35
+ This command will generate next folders and files:
17
36
  ```
18
37
  config/
19
38
  cucumber.yml
@@ -34,6 +53,16 @@ Gemfile
34
53
  Rakefile
35
54
  .gitignore
36
55
  ```
56
+ ### Configuration
57
+ Learn and specify correct default settings in `config/default.yml` file. For details, please see original [sexy_settings](https://github.com/romikoops/sexy_settings) gem.
58
+
59
+ ## Test implementation workflow
60
+
61
+ - Prepare some feature with scenarios in `features/some.feature` file.
62
+ - Implement step definitions in `features/step_definitions/common_steps.rb` file.
63
+ - Implement appropriate pages in `pages` folder. For details, see [Page Object Pattern](https://github.com/romikoops/howitzer/wiki/PageObject-pattern).
64
+ - Debug feature.
65
+ - Enjoy it!
37
66
 
38
67
  ## Contributing
39
68
 
@@ -26,6 +26,10 @@
26
26
  sel_firebug_version: 1.9.1
27
27
  sel_firepath_version: 0.9.7
28
28
 
29
+ # -PhantomJS-
30
+ # specify settings for poltergeist
31
+ poltergeist_settings: {js_errors: false}
32
+
29
33
  # -SauceLabs-
30
34
  sl_user: some_user
31
35
  sl_api_key: some_api_key
data/howitzer.gemspec CHANGED
@@ -24,13 +24,9 @@ Gem::Specification.new do |gem|
24
24
  gem.add_runtime_dependency 'rspec', '~> 2.0'
25
25
  gem.add_runtime_dependency 'sexy_settings'
26
26
  gem.add_runtime_dependency 'repeater'
27
- gem.add_runtime_dependency 'selenium-webdriver'
28
- gem.add_runtime_dependency 'capybara'
29
27
  gem.add_runtime_dependency 'launchy'
30
28
  gem.add_runtime_dependency 'log4r'
31
29
  gem.add_runtime_dependency 'mail'
32
30
  gem.add_runtime_dependency 'rest-client'
33
31
  gem.add_runtime_dependency 'poltergeist'
34
- gem.add_runtime_dependency 'activeresource', '3.2.8'
35
-
36
32
  end
@@ -25,6 +25,15 @@ def ff_browser?
25
25
  end
26
26
  end
27
27
 
28
+ def chrome_browser?
29
+ chrome_browser = :chrome
30
+ if sauce_driver?
31
+ settings.sl_browser_name.to_sym == chrome_browser
32
+ elsif
33
+ settings.sel_browser.to_sym == chrome_browser
34
+ end
35
+ end
36
+
28
37
 
29
38
  def duration(time_in_numeric)
30
39
  secs = time_in_numeric.to_i
@@ -45,6 +45,9 @@ module CapybaraSettings
45
45
  require 'capybara-webkit'
46
46
  when :poltergeist
47
47
  require 'capybara/poltergeist'
48
+ Capybara.register_driver :poltergeist do |app|
49
+ Capybara::Poltergeist::Driver.new(app, settings.poltergeist_settings)
50
+ end
48
51
  when :sauce
49
52
  caps_opts = {
50
53
  platform: settings.sl_platform,
@@ -1,3 +1,3 @@
1
1
  module Howitzer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,8 @@
1
+ require "spec_helper"
2
+
3
+ describe 'Version' do
4
+ it 'should contains VERSION constant with correct format' do
5
+ Howitzer.constants.should include(:VERSION)
6
+ Howitzer::VERSION.should match(/^\d+\.\d+\.\d+$/)
7
+ end
8
+ end
@@ -0,0 +1 @@
1
+ require 'howitzer'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howitzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-30 00:00:00.000000000 Z
12
+ date: 2012-11-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -123,38 +123,6 @@ dependencies:
123
123
  - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: selenium-webdriver
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
- - !ruby/object:Gem::Dependency
143
- name: capybara
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
158
126
  - !ruby/object:Gem::Dependency
159
127
  name: launchy
160
128
  requirement: !ruby/object:Gem::Requirement
@@ -235,22 +203,6 @@ dependencies:
235
203
  - - ! '>='
236
204
  - !ruby/object:Gem::Version
237
205
  version: '0'
238
- - !ruby/object:Gem::Dependency
239
- name: activeresource
240
- requirement: !ruby/object:Gem::Requirement
241
- none: false
242
- requirements:
243
- - - '='
244
- - !ruby/object:Gem::Version
245
- version: 3.2.8
246
- type: :runtime
247
- prerelease: false
248
- version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
- requirements:
251
- - - '='
252
- - !ruby/object:Gem::Version
253
- version: 3.2.8
254
206
  description: The framework is based on Page Object pattern, Capybara and Rspec/Cucumber
255
207
  libraries
256
208
  email:
@@ -262,6 +214,7 @@ extra_rdoc_files: []
262
214
  files:
263
215
  - Gemfile
264
216
  - Gemfile.lock
217
+ - History.md
265
218
  - LICENSE
266
219
  - README.md
267
220
  - Rakefile
@@ -304,6 +257,8 @@ files:
304
257
  - lib/howitzer/utils/logger.rb
305
258
  - lib/howitzer/version.rb
306
259
  - lib/howitzer/web_page.rb
260
+ - spec/howitzer/version_spec.rb
261
+ - spec/spec_helper.rb
307
262
  homepage: https://github.com/romikoops/howitzer
308
263
  licenses: []
309
264
  post_install_message:
@@ -324,11 +279,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
279
  version: '0'
325
280
  segments:
326
281
  - 0
327
- hash: 549866793313446351
282
+ hash: 3255020963715686887
328
283
  requirements: []
329
284
  rubyforge_project:
330
285
  rubygems_version: 1.8.24
331
286
  signing_key:
332
287
  specification_version: 3
333
288
  summary: Universal Ruby Test Framework for black box testing
334
- test_files: []
289
+ test_files:
290
+ - spec/howitzer/version_spec.rb
291
+ - spec/spec_helper.rb