acceptance_test 1.10.12 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWRkY2IyYTg2MDEwMTc1ODE2ZTVlMjU2MmJkNmI2ZTQwYzY1YjkyMg==
4
+ YjgxMjY2N2VjY2FiNjA5MjA3MmRhZmQ3Yzc4NWJkY2UxNmNlNjQ5Zg==
5
5
  data.tar.gz: !binary |-
6
- MzQ3MDlmNWY3NjcyNTNhMDNiMDY4ODRiN2RhYWVkZjZlNzJiNDI2NQ==
6
+ ZmMzNTQ1NDc4MjBhNDA1ZGZlMjQ1OTM5NTFlMTE3NGM3NjZmMjZmZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTI3MzE0MTdlZTkzNWEzMzI4NzVhYjlkNGNlMTdhZmMyOTY3MDZhNjY3OTdm
10
- ZDA1Y2ZhNGI3NjVmOWI5MjgxMmZiYThkMTFmYmFhMTY5NjI0ZmJkNWMxYTNk
11
- ZWJjYjE4M2M4ZWM3MzY5OWMxZTc1NDlhYmQ5Y2YxNzdkMDZiYmY=
9
+ Zjc1ODU4OWRmNTk2MGI5YmIwNjEwNGI5NjJiN2JhNzZlYzZiNGMyMTU2ZDNh
10
+ ZThjNDhiM2VlNjNmOTdlMmQ2M2IzZmZjMjQzNDI0Y2M1OTAxMDUzNGNkMDI2
11
+ ZmY3YzhlZTU0YWUwNmIxNDQzMTM5MTdlYjJjNDJmOTNmNjc1OTQ=
12
12
  data.tar.gz: !binary |-
13
- OTM5YzVlZGFiMzBmMWNjZTk5NmM5ZjQzZWQ0MThhNTUzODE3MjI3YmI0YWM4
14
- ZWQ2OWFiNDFiZjAwNGUzYjVkOWFmNmNiZGVjODYyY2U1MjExYjNmOGRjN2Nl
15
- ZTk1MjZiM2Q2MmI1YjA0MWFiZGQwNWMzMTgyM2MzMGExZjI0ZDY=
13
+ NTA2ODJkNzEyYjkyZTJhM2U2ZjYyZDhlZDEyMjQyZTg4MTAyM2NiMzlmMjg1
14
+ ZjgyZGI5Nzg1MDRiNTJkZTc1YTAwYmYzMDAzZTYzMmY5N2RhM2YwNTUyMTVj
15
+ NDQ2MWNhYWZiZmQzNWVjYTg1MjljNTU0NjI2M2MzY2FhOWZlYTM=
@@ -297,7 +297,7 @@
297
297
  <orderEntry type="sourceFolder" forTests="false" />
298
298
  <orderEntry type="library" scope="PROVIDED" name="activesupport (v4.2.0, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
299
299
  <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.2, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
300
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.7.6, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
300
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.8.2, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
301
301
  <orderEntry type="library" scope="PROVIDED" name="capybara (v2.4.4, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
302
302
  <orderEntry type="library" scope="PROVIDED" name="capybara-firebug (v2.1.0, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
303
303
  <orderEntry type="library" scope="PROVIDED" name="capybara-webkit (v1.4.1, RVM: ruby-1.9.3-p551 [acceptance_test]) [gem]" level="application" />
data/CHANGES CHANGED
@@ -309,3 +309,7 @@
309
309
 
310
310
  * Bug fixes
311
311
 
312
+ == Versions 1.11.0
313
+
314
+ * Refactoring classes
315
+
@@ -10,15 +10,21 @@ require 'gnawrnip'
10
10
  class AcceptanceConfig
11
11
  include Singleton
12
12
 
13
- def configure workspace, app_name=nil
14
- @app_name = app_name
13
+ def configure workspace, params
14
+ @app_name = params[:app_name]
15
15
 
16
16
  support_dirs = load_code_from_support workspace
17
17
  load_steps support_dirs
18
18
 
19
19
  acceptance_test = AcceptanceTest.instance
20
20
 
21
- acceptance_test.enable_external_source data_reader # enable external source for gherkin
21
+ if params[:enable_external_source]
22
+ data_reader = params[:data_reader] ? params[:data_reader] : default_data_reader
23
+
24
+ acceptance_test.enable_external_source data_reader # enable external source for gherkin
25
+ end
26
+
27
+ acceptance_test.ignore_case_in_steps if params[:ignore_case_in_steps]
22
28
 
23
29
  acceptance_config = acceptance_config_file ? HashWithIndifferentAccess.new(YAML.load_file(acceptance_config_file)) : {}
24
30
  acceptance_test.configure(acceptance_config)
@@ -28,7 +34,7 @@ class AcceptanceConfig
28
34
  end
29
35
 
30
36
  RSpec.configure do |config|
31
- configure_turnip
37
+ acceptance_test.configure_turnip turnip_report_file, turnip_report_name
32
38
 
33
39
  config.before(:type => :feature) do |example|
34
40
  acceptance_test.setup page, example.metadata
@@ -82,6 +88,14 @@ class AcceptanceConfig
82
88
  detect_file(results_dir, "#{app_name}.#{format}")
83
89
  end
84
90
 
91
+ def turnip_report_file
92
+ File.expand_path("tmp/" + (app_name ? "#{app_name}-acceptance-report.html" : "acceptance-report.html"))
93
+ end
94
+
95
+ def turnip_report_name
96
+ "#{app_name[0].upcase+app_name[1..-1]} Acceptance"
97
+ end
98
+
85
99
  def webapp_url name=:webapp_url
86
100
  AcceptanceTest.instance.config[name]
87
101
  end
@@ -106,44 +120,23 @@ class AcceptanceConfig
106
120
  !!(AcceptanceTest.instance.config[:webapp_url] =~ /localhost/)
107
121
  end
108
122
 
109
- private
110
-
111
- def configure_turnip
112
- report_file = turnip_report_file(app_name)
113
-
114
- configure_turnip_formatter report_file, app_name
115
-
116
- configure_gnawrnip
117
- end
118
-
119
- def configure_turnip_formatter report_file, report_name
120
- require 'turnip_formatter'
123
+ def default_data_reader
124
+ lambda do |source_path|
125
+ path = acceptance_data_file detect_file_from_script(source_path)
121
126
 
122
- RSpec.configure do |config|
123
- config.add_formatter RSpecTurnipFormatter, report_file
124
- end
127
+ puts "Reading data from: #{path}"
125
128
 
126
- TurnipFormatter.configure do |config|
127
- config.title = "#{report_name[0].upcase+report_name[1..-1]} Acceptance"
128
- end
129
- end
129
+ ext = File.extname(path)
130
130
 
131
- def configure_gnawrnip
132
- Gnawrnip.configure do |c|
133
- c.make_animation = true
134
- c.max_frame_size = 1024 # pixel
131
+ if ext == '.csv'
132
+ CSV.read(File.expand_path(path))
133
+ elsif ext == '.yml'
134
+ YAML.load_file(File.expand_path(path))
135
+ end
135
136
  end
136
-
137
- Gnawrnip.ready!
138
137
  end
139
138
 
140
- def turnip_report_file name=nil
141
- name = ENV['TURNIP_REPORT_PREFIX'] if ENV['TURNIP_REPORT_PREFIX']
142
-
143
- file_name = name.nil? ? "acceptance-report.html" : "#{name}-acceptance-report.html"
144
-
145
- File.expand_path("tmp/#{file_name}")
146
- end
139
+ private
147
140
 
148
141
  def load_code_from_support basedir
149
142
  support_dirs = []
@@ -182,22 +175,6 @@ class AcceptanceConfig
182
175
  File.exist?(full_path1) ? full_path1 : full_path2
183
176
  end
184
177
 
185
- def data_reader
186
- lambda do |source_path|
187
- path = acceptance_data_file detect_file_from_script(source_path)
188
-
189
- puts "Reading data from: #{path}"
190
-
191
- ext = File.extname(path)
192
-
193
- if ext == '.csv'
194
- CSV.read(File.expand_path(path))
195
- elsif ext == '.yml'
196
- YAML.load_file(File.expand_path(path))
197
- end
198
- end
199
- end
200
-
201
178
  def detect_file_from_script source_path
202
179
  path = source_path % {acceptance_env: environment, format: format}
203
180
 
@@ -89,6 +89,44 @@ class AcceptanceTest
89
89
  GherkinExt.enable_external_source data_reader
90
90
  end
91
91
 
92
+ def configure_turnip report_file, title
93
+ # configure turnip formatter
94
+
95
+ require 'turnip_formatter'
96
+
97
+ RSpec.configure do |config|
98
+ config.add_formatter RSpecTurnipFormatter, report_file
99
+ end
100
+
101
+ TurnipFormatter.configure do |config|
102
+ config.title = title
103
+ end
104
+
105
+ # configure gnawrnip
106
+
107
+ Gnawrnip.configure do |c|
108
+ c.make_animation = true
109
+ c.max_frame_size = 1024 # pixel
110
+ end
111
+
112
+ Gnawrnip.ready!
113
+ end
114
+
115
+ def ignore_case_in_steps
116
+ require 'turnip/builder'
117
+
118
+ Turnip::Builder::Step.class_eval do
119
+ def initialize *params
120
+ description = params[0]
121
+ first_word = description[0..description.index(/\s/)]
122
+ first_word = downcase unless ["I ", "(I) "].include?(first_word)
123
+
124
+ params[0] = first_word + description[first_word.size..-1].downcase
125
+ super
126
+ end
127
+ end
128
+ end
129
+
92
130
  private
93
131
 
94
132
  def driver metadata
@@ -129,17 +167,4 @@ class AcceptanceTest
129
167
  ('a'..'z').to_a.shuffle[0, 12].join
130
168
  end
131
169
 
132
- # def self.get_localhost
133
- # orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
134
- #
135
- # UDPSocket.open do |s|
136
- # s.connect '192.168.1.1', 1
137
- # s.addr.last
138
- # end
139
- # ensure
140
- # Socket.do_not_reverse_lookup = orig
141
- # end
142
-
143
- # ip = `ifconfig | grep 'inet ' | grep -v 127.0.0.1 | cut -d ' ' -f2`.strip
144
- # Capybara.app_host = http://#{ip}:#{Capybara.server_port}
145
170
  end
@@ -1,3 +1,3 @@
1
1
  class AcceptanceTest
2
- VERSION = "1.10.12"
2
+ VERSION = "1.11.0"
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -3,7 +3,9 @@ require 'acceptance_test/acceptance_config'
3
3
  ENV['CONFIG_DIR'] = "spec/wikipedia"
4
4
  ENV['DATA_DIR'] = "spec/wikipedia/acceptance_data"
5
5
 
6
- AcceptanceConfig.instance.configure "spec", "wikipedia"
6
+ AcceptanceConfig.instance.configure "spec", app_name: "wikipedia",
7
+ enable_external_source: true,
8
+ ignore_case_in_steps: true
7
9
 
8
10
  RSpec.configure do |c|
9
11
  # c.add_formatter 'progress'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acceptance_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.12
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shvets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -295,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
295
  version: '0'
296
296
  requirements: []
297
297
  rubyforge_project:
298
- rubygems_version: 2.4.4
298
+ rubygems_version: 2.4.6
299
299
  signing_key:
300
300
  specification_version: 4
301
301
  summary: Simplifies congiguration and run of acceptance tests.