cucumber 0.8.6 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. data/.rspec +1 -1
  2. data/Caliper.yml +4 -0
  3. data/History.txt +1557 -0
  4. data/LICENSE +1 -1
  5. data/README.rdoc +26 -0
  6. data/Rakefile +51 -5
  7. data/VERSION.yml +5 -0
  8. data/bin/cucumber +1 -7
  9. data/cucumber.gemspec +77 -3
  10. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -1
  11. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +1 -1
  12. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +7 -4
  13. data/examples/i18n/ro/features/suma.feature +11 -0
  14. data/examples/i18n/ru/features/division.feature +2 -2
  15. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +3 -3
  16. data/examples/sinatra/features/support/env.rb +5 -2
  17. data/examples/v8/features/fibonacci.feature +1 -1
  18. data/examples/watir/features/step_definitions/search_steps.rb +1 -1
  19. data/features/announce.feature +164 -0
  20. data/features/around_hooks.feature +232 -0
  21. data/features/background.feature +95 -284
  22. data/features/bug_371.feature +32 -0
  23. data/features/bug_464.feature +16 -0
  24. data/features/bug_475.feature +42 -0
  25. data/features/bug_585_tab_indentation.feature +22 -0
  26. data/features/bug_600.feature +67 -0
  27. data/features/call_steps_from_stepdefs.feature +154 -0
  28. data/features/cucumber_cli.feature +591 -0
  29. data/features/cucumber_cli_outlines.feature +117 -0
  30. data/features/custom_formatter.feature +73 -3
  31. data/features/default_snippets.feature +42 -0
  32. data/features/diffing.feature +25 -0
  33. data/features/drb_server_integration.feature +174 -0
  34. data/features/exception_in_after_block.feature +127 -0
  35. data/features/exception_in_after_step_block.feature +104 -0
  36. data/features/exception_in_before_block.feature +98 -0
  37. data/features/exclude_files.feature +20 -0
  38. data/features/expand.feature +60 -0
  39. data/features/html_formatter.feature +8 -0
  40. data/features/html_formatter/a.html +582 -0
  41. data/features/json_formatter.feature +245 -160
  42. data/features/junit_formatter.feature +88 -0
  43. data/features/language_from_header.feature +30 -0
  44. data/features/language_help.feature +78 -0
  45. data/features/listener_debugger_formatter.feature +42 -0
  46. data/features/multiline_names.feature +44 -0
  47. data/features/negative_tagged_hooks.feature +60 -0
  48. data/features/post_configuration_hook.feature +37 -0
  49. data/features/profiles.feature +126 -0
  50. data/features/rake_task.feature +152 -0
  51. data/features/report_called_undefined_steps.feature +34 -0
  52. data/features/rerun_formatter.feature +45 -0
  53. data/features/simplest.feature +11 -0
  54. data/features/snippet.feature +23 -0
  55. data/features/snippets_when_using_star_keyword.feature +36 -0
  56. data/features/step_definitions/cucumber_steps.rb +153 -7
  57. data/features/step_definitions/extra_steps.rb +2 -0
  58. data/features/step_definitions/simplest_steps.rb +3 -0
  59. data/features/step_definitions/wire_steps.rb +32 -0
  60. data/features/support/env.rb +140 -18
  61. data/features/support/env.rb.simplest +7 -0
  62. data/features/support/fake_wire_server.rb +77 -0
  63. data/features/table_diffing.feature +45 -0
  64. data/features/table_mapping.feature +34 -0
  65. data/features/tag_logic.feature +258 -0
  66. data/features/transform.feature +245 -0
  67. data/features/unicode_table.feature +35 -0
  68. data/features/usage_and_stepdefs_formatter.feature +169 -0
  69. data/features/wire_protocol.feature +332 -0
  70. data/features/wire_protocol_table_diffing.feature +119 -0
  71. data/features/wire_protocol_tags.feature +87 -0
  72. data/features/wire_protocol_timeouts.feature +63 -0
  73. data/features/work_in_progress.feature +156 -0
  74. data/fixtures/json/features/pystring.feature +8 -0
  75. data/fixtures/junit/features/pending.feature +1 -3
  76. data/fixtures/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  77. data/fixtures/self_test/features/background/background_with_name.feature +7 -0
  78. data/fixtures/self_test/features/background/failing_background.feature +12 -0
  79. data/fixtures/self_test/features/background/failing_background_after_success.feature +11 -0
  80. data/fixtures/self_test/features/background/multiline_args_background.feature +32 -0
  81. data/fixtures/self_test/features/background/passing_background.feature +10 -0
  82. data/fixtures/self_test/features/background/pending_background.feature +10 -0
  83. data/fixtures/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  84. data/fixtures/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  85. data/fixtures/self_test/features/support/env.rb +0 -8
  86. data/fixtures/tickets/features.html +1 -1
  87. data/gem_tasks/examples.rake +1 -1
  88. data/gem_tasks/features.rake +14 -0
  89. data/gem_tasks/sdoc.rake +12 -0
  90. data/lib/cucumber.rb +0 -12
  91. data/lib/cucumber/ast.rb +1 -1
  92. data/lib/cucumber/ast/background.rb +5 -21
  93. data/lib/cucumber/ast/examples.rb +4 -12
  94. data/lib/cucumber/ast/feature.rb +5 -13
  95. data/lib/cucumber/ast/feature_element.rb +4 -9
  96. data/lib/cucumber/ast/outline_table.rb +4 -4
  97. data/lib/cucumber/ast/py_string.rb +80 -0
  98. data/lib/cucumber/ast/scenario.rb +5 -7
  99. data/lib/cucumber/ast/scenario_outline.rb +15 -23
  100. data/lib/cucumber/ast/step.rb +0 -5
  101. data/lib/cucumber/ast/step_invocation.rb +15 -21
  102. data/lib/cucumber/ast/table.rb +8 -14
  103. data/lib/cucumber/ast/tree_walker.rb +48 -10
  104. data/lib/cucumber/cli/configuration.rb +8 -33
  105. data/lib/cucumber/cli/main.rb +35 -20
  106. data/lib/cucumber/cli/options.rb +7 -8
  107. data/lib/cucumber/cli/profile_loader.rb +0 -2
  108. data/lib/cucumber/core_ext/proc.rb +1 -2
  109. data/lib/cucumber/feature_file.rb +15 -47
  110. data/lib/cucumber/formatter/ansicolor.rb +5 -3
  111. data/lib/cucumber/formatter/color_io.rb +23 -0
  112. data/lib/cucumber/formatter/console.rb +23 -27
  113. data/lib/cucumber/formatter/cucumber.css +17 -34
  114. data/lib/cucumber/formatter/cucumber.sass +182 -173
  115. data/lib/cucumber/formatter/html.rb +11 -46
  116. data/lib/cucumber/formatter/io.rb +4 -2
  117. data/lib/cucumber/formatter/json.rb +152 -15
  118. data/lib/cucumber/formatter/json_pretty.rb +6 -5
  119. data/lib/cucumber/formatter/junit.rb +22 -28
  120. data/lib/cucumber/formatter/pdf.rb +6 -6
  121. data/lib/cucumber/formatter/pretty.rb +5 -5
  122. data/lib/cucumber/formatter/rerun.rb +11 -22
  123. data/lib/cucumber/formatter/tag_cloud.rb +35 -0
  124. data/lib/cucumber/formatter/unicode.rb +20 -41
  125. data/lib/cucumber/js_support/js_dsl.js +4 -4
  126. data/lib/cucumber/js_support/js_language.rb +5 -9
  127. data/lib/cucumber/js_support/js_snippets.rb +2 -2
  128. data/lib/cucumber/language_support.rb +2 -2
  129. data/lib/cucumber/parser/gherkin_builder.rb +30 -35
  130. data/lib/cucumber/platform.rb +8 -8
  131. data/lib/cucumber/py_support/py_language.rb +2 -2
  132. data/lib/cucumber/rake/task.rb +31 -74
  133. data/lib/cucumber/rb_support/rb_dsl.rb +0 -1
  134. data/lib/cucumber/rb_support/rb_language.rb +8 -10
  135. data/lib/cucumber/rb_support/rb_step_definition.rb +0 -8
  136. data/lib/cucumber/rb_support/rb_transform.rb +0 -17
  137. data/lib/cucumber/rb_support/rb_world.rb +18 -26
  138. data/lib/cucumber/rspec/doubles.rb +3 -3
  139. data/lib/cucumber/step_match.rb +2 -6
  140. data/lib/cucumber/step_mother.rb +427 -6
  141. data/lib/cucumber/wire_support/configuration.rb +1 -4
  142. data/lib/cucumber/wire_support/wire_language.rb +10 -3
  143. data/spec/cucumber/ast/background_spec.rb +6 -68
  144. data/spec/cucumber/ast/feature_factory.rb +4 -5
  145. data/spec/cucumber/ast/feature_spec.rb +4 -4
  146. data/spec/cucumber/ast/outline_table_spec.rb +1 -1
  147. data/spec/cucumber/ast/py_string_spec.rb +40 -0
  148. data/spec/cucumber/ast/scenario_outline_spec.rb +11 -15
  149. data/spec/cucumber/ast/scenario_spec.rb +4 -4
  150. data/spec/cucumber/ast/step_spec.rb +3 -3
  151. data/spec/cucumber/ast/table_spec.rb +2 -38
  152. data/spec/cucumber/ast/tree_walker_spec.rb +2 -2
  153. data/spec/cucumber/broadcaster_spec.rb +1 -1
  154. data/spec/cucumber/cli/configuration_spec.rb +6 -32
  155. data/spec/cucumber/cli/drb_client_spec.rb +3 -2
  156. data/spec/cucumber/cli/main_spec.rb +43 -43
  157. data/spec/cucumber/cli/options_spec.rb +1 -28
  158. data/spec/cucumber/cli/profile_loader_spec.rb +1 -1
  159. data/spec/cucumber/core_ext/proc_spec.rb +1 -1
  160. data/spec/cucumber/formatter/ansicolor_spec.rb +1 -1
  161. data/spec/cucumber/formatter/color_io_spec.rb +29 -0
  162. data/spec/cucumber/formatter/duration_spec.rb +1 -1
  163. data/spec/cucumber/formatter/html_spec.rb +5 -3
  164. data/spec/cucumber/formatter/junit_spec.rb +2 -16
  165. data/spec/cucumber/formatter/progress_spec.rb +1 -1
  166. data/spec/cucumber/formatter/spec_helper.rb +12 -11
  167. data/spec/cucumber/rb_support/rb_language_spec.rb +28 -241
  168. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +28 -33
  169. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +1 -1
  170. data/spec/cucumber/step_match_spec.rb +9 -11
  171. data/spec/cucumber/step_mother_spec.rb +302 -0
  172. data/spec/cucumber/wire_support/configuration_spec.rb +1 -1
  173. data/spec/cucumber/wire_support/connection_spec.rb +1 -1
  174. data/spec/cucumber/wire_support/wire_exception_spec.rb +1 -1
  175. data/spec/cucumber/wire_support/wire_language_spec.rb +1 -1
  176. data/spec/cucumber/wire_support/wire_packet_spec.rb +1 -1
  177. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +1 -1
  178. data/spec/cucumber/world/pending_spec.rb +2 -2
  179. data/spec/spec_helper.rb +20 -13
  180. metadata +78 -4
@@ -0,0 +1,302 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ require 'cucumber'
4
+ require 'cucumber/rb_support/rb_language'
5
+
6
+ module Cucumber
7
+ describe StepMother do
8
+ before do
9
+ @dsl = Object.new
10
+ @dsl.extend(RbSupport::RbDsl)
11
+
12
+ @step_mother = StepMother.new
13
+
14
+ @rb = @step_mother.load_programming_language('rb')
15
+
16
+ @visitor = mock('Visitor')
17
+ end
18
+
19
+ it "should format step names" do
20
+ @dsl.Given(/it (.*) in (.*)/) do |what, month|
21
+ end
22
+ @dsl.Given(/nope something else/) do |what, month|
23
+ end
24
+
25
+ format = @step_mother.step_match("it snows in april").format_args("[%s]")
26
+ format.should == "it [snows] in [april]"
27
+ end
28
+
29
+ it "should raise Ambiguous error with guess hint when multiple step definitions match" do
30
+ @dsl.Given(/Three (.*) mice/) {|disability|}
31
+ @dsl.Given(/Three blind (.*)/) {|animal|}
32
+
33
+ lambda do
34
+ @step_mother.step_match("Three blind mice")
35
+ end.should raise_error(Ambiguous, %{Ambiguous match of "Three blind mice":
36
+
37
+ spec/cucumber/step_mother_spec.rb:30:in `/Three (.*) mice/'
38
+ spec/cucumber/step_mother_spec.rb:31:in `/Three blind (.*)/'
39
+
40
+ You can run again with --guess to make Cucumber be more smart about it
41
+ })
42
+ end
43
+
44
+ it "should not show --guess hint when --guess is used" do
45
+ @step_mother.options = {:guess => true}
46
+
47
+ @dsl.Given(/Three (.*) mice/) {|disability|}
48
+ @dsl.Given(/Three cute (.*)/) {|animal|}
49
+
50
+ lambda do
51
+ @step_mother.step_match("Three cute mice")
52
+ end.should raise_error(Ambiguous, %{Ambiguous match of "Three cute mice":
53
+
54
+ spec/cucumber/step_mother_spec.rb:47:in `/Three (.*) mice/'
55
+ spec/cucumber/step_mother_spec.rb:48:in `/Three cute (.*)/'
56
+
57
+ })
58
+ end
59
+
60
+ it "should not raise Ambiguous error when multiple step definitions match, but --guess is enabled" do
61
+ @step_mother.options = {:guess => true}
62
+ @dsl.Given(/Three (.*) mice/) {|disability|}
63
+ @dsl.Given(/Three (.*)/) {|animal|}
64
+
65
+ lambda do
66
+ @step_mother.step_match("Three blind mice")
67
+ end.should_not raise_error
68
+ end
69
+
70
+ it "should not raise NoMethodError when guessing from multiple step definitions with nil fields" do
71
+ @step_mother.options = {:guess => true}
72
+ @dsl.Given(/Three (.*) mice( cannot find food)?/) {|disability, is_disastrous|}
73
+ @dsl.Given(/Three (.*)?/) {|animal|}
74
+
75
+ lambda do
76
+ @step_mother.step_match("Three blind mice")
77
+ end.should_not raise_error
78
+ end
79
+
80
+ it "should pick right step definition when --guess is enabled and equal number of capture groups" do
81
+ @step_mother.options = {:guess => true}
82
+ right = @dsl.Given(/Three (.*) mice/) {|disability|}
83
+ wrong = @dsl.Given(/Three (.*)/) {|animal|}
84
+
85
+ @step_mother.step_match("Three blind mice").step_definition.should == right
86
+ end
87
+
88
+ it "should pick right step definition when --guess is enabled and unequal number of capture groups" do
89
+ @step_mother.options = {:guess => true}
90
+ right = @dsl.Given(/Three (.*) mice ran (.*)/) {|disability|}
91
+ wrong = @dsl.Given(/Three (.*)/) {|animal|}
92
+
93
+ @step_mother.step_match("Three blind mice ran far").step_definition.should == right
94
+ end
95
+
96
+ it "should pick most specific step definition when --guess is enabled and unequal number of capture groups" do
97
+ @step_mother.options = {:guess => true}
98
+ general = @dsl.Given(/Three (.*) mice ran (.*)/) {|disability|}
99
+ specific = @dsl.Given(/Three blind mice ran far/) do; end
100
+ more_specific = @dsl.Given(/^Three blind mice ran far$/) do; end
101
+
102
+ @step_mother.step_match("Three blind mice ran far").step_definition.should == more_specific
103
+ end
104
+
105
+ it "should raise Undefined error when no step definitions match" do
106
+ lambda do
107
+ @step_mother.step_match("Three blind mice")
108
+ end.should raise_error(Undefined)
109
+ end
110
+
111
+ # http://railsforum.com/viewtopic.php?pid=93881
112
+ it "should not raise Redundant unless it's really redundant" do
113
+ @dsl.Given(/^(.*) (.*) user named '(.*)'$/) {|a,b,c|}
114
+ @dsl.Given(/^there is no (.*) user named '(.*)'$/) {|a,b|}
115
+ end
116
+
117
+ it "should raise an error if the world is nil" do
118
+ @dsl.World {}
119
+
120
+ begin
121
+ @step_mother.before_and_after(nil) do; end
122
+ raise "Should fail"
123
+ rescue RbSupport::NilWorld => e
124
+ e.message.should == "World procs should never return nil"
125
+ e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:118:in `World'"]
126
+ end
127
+ end
128
+
129
+ module ModuleOne
130
+ end
131
+
132
+ module ModuleTwo
133
+ end
134
+
135
+ class ClassOne
136
+ end
137
+
138
+ it "should implicitly extend world with modules" do
139
+ @dsl.World(ModuleOne, ModuleTwo)
140
+ @step_mother.before(mock('scenario').as_null_object)
141
+ class << @rb.current_world
142
+ included_modules.inspect.should =~ /ModuleOne/ # Workaround for RSpec/Ruby 1.9 issue with namespaces
143
+ included_modules.inspect.should =~ /ModuleTwo/
144
+ end
145
+ @rb.current_world.class.should == Object
146
+ end
147
+
148
+ it "should raise error when we try to register more than one World proc" do
149
+ @dsl.World { Hash.new }
150
+ lambda do
151
+ @dsl.World { Array.new }
152
+ end.should raise_error(RbSupport::MultipleWorld, %{You can only pass a proc to #World once, but it's happening
153
+ in 2 places:
154
+
155
+ spec/cucumber/step_mother_spec.rb:149:in `World'
156
+ spec/cucumber/step_mother_spec.rb:151:in `World'
157
+
158
+ Use Ruby modules instead to extend your worlds. See the Cucumber::RbSupport::RbDsl#World RDoc
159
+ or http://wiki.github.com/aslakhellesoy/cucumber/a-whole-new-world.
160
+
161
+ })
162
+ end
163
+
164
+ it "should find before hooks" do
165
+ fish = @dsl.Before('@fish'){}
166
+ meat = @dsl.Before('@meat'){}
167
+
168
+ scenario = mock('Scenario')
169
+ scenario.should_receive(:accept_hook?).with(fish).and_return(true)
170
+ scenario.should_receive(:accept_hook?).with(meat).and_return(false)
171
+
172
+ @rb.hooks_for(:before, scenario).should == [fish]
173
+ end
174
+
175
+ it "should find around hooks" do
176
+ a = @dsl.Around do |scenario, block|
177
+ end
178
+
179
+ b = @dsl.Around('@tag') do |scenario, block|
180
+ end
181
+
182
+ scenario = mock('Scenario')
183
+ scenario.should_receive(:accept_hook?).with(a).and_return(true)
184
+ scenario.should_receive(:accept_hook?).with(b).and_return(false)
185
+
186
+ @rb.hooks_for(:around, scenario).should == [a]
187
+ end
188
+ end
189
+
190
+ describe StepMother, "step argument transformations" do
191
+ before do
192
+ @dsl = Object.new
193
+ @dsl.extend(RbSupport::RbDsl)
194
+
195
+ @step_mother = StepMother.new
196
+
197
+ @rb = @step_mother.load_programming_language('rb')
198
+ end
199
+
200
+ describe "without capture groups" do
201
+ it "complains when registering with a with no transform block" do
202
+ lambda do
203
+ @dsl.Transform('^abc$')
204
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
205
+ end
206
+
207
+ it "complains when registering with a zero-arg transform block" do
208
+ lambda do
209
+ @dsl.Transform('^abc$') {42}
210
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
211
+ end
212
+
213
+ it "complains when registering with a splat-arg transform block" do
214
+ lambda do
215
+ @dsl.Transform('^abc$') {|*splat| 42 }
216
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
217
+ end
218
+
219
+ it "complains when transforming with an arity mismatch" do
220
+ lambda do
221
+ @dsl.Transform('^abc$') {|one, two| 42 }
222
+ @rb.execute_transforms(['abc'])
223
+ end.should raise_error(Cucumber::ArityMismatchError)
224
+ end
225
+
226
+ it "allows registering a regexp pattern that yields the step_arg matched" do
227
+ @dsl.Transform(/^ab*c$/) {|arg| 42}
228
+ @rb.execute_transforms(['ab']).should == ['ab']
229
+ @rb.execute_transforms(['ac']).should == [42]
230
+ @rb.execute_transforms(['abc']).should == [42]
231
+ @rb.execute_transforms(['abbc']).should == [42]
232
+ end
233
+ end
234
+
235
+ describe "with capture groups" do
236
+ it "complains when registering with a with no transform block" do
237
+ lambda do
238
+ @dsl.Transform('^a(.)c$')
239
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
240
+ end
241
+
242
+ it "complains when registering with a zero-arg transform block" do
243
+ lambda do
244
+ @dsl.Transform('^a(.)c$') { 42 }
245
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
246
+ end
247
+
248
+ it "complains when registering with a splat-arg transform block" do
249
+ lambda do
250
+ @dsl.Transform('^a(.)c$') {|*splat| 42 }
251
+ end.should raise_error(Cucumber::RbSupport::RbTransform::MissingProc)
252
+ end
253
+
254
+ it "complains when transforming with an arity mismatch" do
255
+ lambda do
256
+ @dsl.Transform('^a(.)c$') {|one, two| 42 }
257
+ @rb.execute_transforms(['abc'])
258
+ end.should raise_error(Cucumber::ArityMismatchError)
259
+ end
260
+
261
+ it "allows registering a regexp pattern that yields capture groups" do
262
+ @dsl.Transform(/^shape: (.+), color: (.+)$/) do |shape, color|
263
+ {shape.to_sym => color.to_sym}
264
+ end
265
+ @rb.execute_transforms(['shape: circle, color: blue']).should == [{:circle => :blue}]
266
+ @rb.execute_transforms(['shape: square, color: red']).should == [{:square => :red}]
267
+ @rb.execute_transforms(['not shape: square, not color: red']).should == ['not shape: square, not color: red']
268
+ end
269
+ end
270
+
271
+ it "allows registering a string pattern" do
272
+ @dsl.Transform('^ab*c$') {|arg| 42}
273
+ @rb.execute_transforms(['ab']).should == ['ab']
274
+ @rb.execute_transforms(['ac']).should == [42]
275
+ @rb.execute_transforms(['abc']).should == [42]
276
+ @rb.execute_transforms(['abbc']).should == [42]
277
+ end
278
+
279
+ it "gives match priority to transforms defined last" do
280
+ @dsl.Transform(/^transform_me$/) {|arg| :foo }
281
+ @dsl.Transform(/^transform_me$/) {|arg| :bar }
282
+ @dsl.Transform(/^transform_me$/) {|arg| :baz }
283
+ @rb.execute_transforms(['transform_me']).should == [:baz]
284
+ end
285
+
286
+ it "allows registering a transform which returns nil" do
287
+ @dsl.Transform('^ac$') {|arg| nil}
288
+ @rb.execute_transforms(['ab']).should == ['ab']
289
+ @rb.execute_transforms(['ac']).should == [nil]
290
+ end
291
+ end
292
+
293
+ end
294
+
295
+ module ModuleOne
296
+ end
297
+
298
+ module ModuleTwo
299
+ end
300
+
301
+ class ClassOne
302
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
  require 'tempfile'
4
4
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
 
4
4
  module Cucumber
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
 
4
4
  module Cucumber
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
 
4
4
  module Cucumber
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
 
4
4
  module Cucumber
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/wire_support/wire_language'
3
3
 
4
4
  module Cucumber
@@ -1,11 +1,11 @@
1
- require 'spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
  require 'cucumber/rb_support/rb_language'
3
3
 
4
4
  module Cucumber
5
5
  describe 'Pending' do
6
6
 
7
7
  before(:each) do
8
- l = RbSupport::RbLanguage.new(Runtime.new)
8
+ l = RbSupport::RbLanguage.new(StepMother.new)
9
9
  l.begin_rb_scenario(mock('scenario').as_null_object)
10
10
  @world = l.current_world
11
11
  end
@@ -2,21 +2,28 @@ ENV['CUCUMBER_COLORS']=nil
2
2
  $:.unshift(File.dirname(__FILE__) + '/../lib')
3
3
  $:.unshift(File.dirname(__FILE__))
4
4
 
5
- # For Travis....
6
- if defined? Encoding
7
- Encoding.default_external = 'utf-8'
8
- Encoding.default_internal = 'utf-8'
9
- end
10
-
11
5
  require 'rubygems'
12
- require 'bundler'
13
- Bundler.setup
6
+
7
+ begin
8
+ require 'rspec'
9
+ require 'rspec/autorun'
10
+ RSpec.configure do |c|
11
+ c.color_enabled = true
12
+ c.before(:each) do
13
+ ::Term::ANSIColor.coloring = true
14
+ end
15
+ end
16
+ rescue LoadError
17
+ require 'spec'
18
+ require 'spec/autorun'
19
+ Spec::Runner.configure do |c|
20
+ c.before(:each) do
21
+ ::Term::ANSIColor.coloring = true
22
+ end
23
+ end
24
+ end
14
25
 
15
26
  require 'cucumber'
16
27
  $KCODE='u' unless Cucumber::RUBY_1_9
17
28
 
18
- RSpec.configure do |c|
19
- c.before do
20
- ::Term::ANSIColor.coloring = true
21
- end
22
- end
29
+ alias running lambda
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- hash: 51
4
+ hash: 49
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 6
10
- version: 0.8.6
9
+ - 7
10
+ version: 0.8.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Aslak Helles\xC3\xB8y"
@@ -204,11 +204,16 @@ extensions: []
204
204
 
205
205
  extra_rdoc_files:
206
206
  - LICENSE
207
+ - README.rdoc
207
208
  files:
208
209
  - .gitattributes
209
210
  - .rspec
211
+ - Caliper.yml
212
+ - History.txt
210
213
  - LICENSE
214
+ - README.rdoc
211
215
  - Rakefile
216
+ - VERSION.yml
212
217
  - bin/cucumber
213
218
  - cucumber.gemspec
214
219
  - cucumber.yml
@@ -343,6 +348,7 @@ files:
343
348
  - examples/i18n/pt/lib/calculadora.rb
344
349
  - examples/i18n/ro/Rakefile
345
350
  - examples/i18n/ro/features/step_definitons/calculator_steps.rb
351
+ - examples/i18n/ro/features/suma.feature
346
352
  - examples/i18n/ro/lib/calculator.rb
347
353
  - examples/i18n/ru/Rakefile
348
354
  - examples/i18n/ru/features/addition.feature
@@ -458,14 +464,65 @@ files:
458
464
  - examples/watir/features/step_definitions/search_steps.rb
459
465
  - examples/watir/features/support/env.rb
460
466
  - examples/watir/features/support/screenshots.rb
467
+ - features/announce.feature
468
+ - features/around_hooks.feature
461
469
  - features/background.feature
470
+ - features/bug_371.feature
471
+ - features/bug_464.feature
472
+ - features/bug_475.feature
473
+ - features/bug_585_tab_indentation.feature
474
+ - features/bug_600.feature
475
+ - features/call_steps_from_stepdefs.feature
476
+ - features/cucumber_cli.feature
477
+ - features/cucumber_cli_outlines.feature
462
478
  - features/custom_formatter.feature
479
+ - features/default_snippets.feature
480
+ - features/diffing.feature
481
+ - features/drb_server_integration.feature
482
+ - features/exception_in_after_block.feature
483
+ - features/exception_in_after_step_block.feature
484
+ - features/exception_in_before_block.feature
485
+ - features/exclude_files.feature
486
+ - features/expand.feature
487
+ - features/html_formatter.feature
488
+ - features/html_formatter/a.html
463
489
  - features/json_formatter.feature
490
+ - features/junit_formatter.feature
491
+ - features/language_from_header.feature
492
+ - features/language_help.feature
493
+ - features/listener_debugger_formatter.feature
494
+ - features/multiline_names.feature
495
+ - features/negative_tagged_hooks.feature
496
+ - features/post_configuration_hook.feature
497
+ - features/profiles.feature
498
+ - features/rake_task.feature
499
+ - features/report_called_undefined_steps.feature
500
+ - features/rerun_formatter.feature
501
+ - features/simplest.feature
502
+ - features/snippet.feature
503
+ - features/snippets_when_using_star_keyword.feature
464
504
  - features/step_definitions/cucumber_steps.rb
505
+ - features/step_definitions/extra_steps.rb
506
+ - features/step_definitions/simplest_steps.rb
507
+ - features/step_definitions/wire_steps.rb
465
508
  - features/support/env.rb
509
+ - features/support/env.rb.simplest
510
+ - features/support/fake_wire_server.rb
511
+ - features/table_diffing.feature
512
+ - features/table_mapping.feature
513
+ - features/tag_logic.feature
514
+ - features/transform.feature
515
+ - features/unicode_table.feature
516
+ - features/usage_and_stepdefs_formatter.feature
517
+ - features/wire_protocol.feature
518
+ - features/wire_protocol_table_diffing.feature
519
+ - features/wire_protocol_tags.feature
520
+ - features/wire_protocol_timeouts.feature
521
+ - features/work_in_progress.feature
466
522
  - fixtures/json/features/background.feature
467
523
  - fixtures/json/features/embed.feature
468
524
  - fixtures/json/features/one_passing_one_failing.feature
525
+ - fixtures/json/features/pystring.feature
469
526
  - fixtures/json/features/step_definitions/steps.rb
470
527
  - fixtures/json/features/tables.feature
471
528
  - fixtures/junit/features/one_passing_one_failing.feature
@@ -474,6 +531,15 @@ files:
474
531
  - fixtures/self_test/.gitignore
475
532
  - fixtures/self_test/README.textile
476
533
  - fixtures/self_test/Rakefile
534
+ - fixtures/self_test/features/background/background_tagged_before_on_outline.feature
535
+ - fixtures/self_test/features/background/background_with_name.feature
536
+ - fixtures/self_test/features/background/failing_background.feature
537
+ - fixtures/self_test/features/background/failing_background_after_success.feature
538
+ - fixtures/self_test/features/background/multiline_args_background.feature
539
+ - fixtures/self_test/features/background/passing_background.feature
540
+ - fixtures/self_test/features/background/pending_background.feature
541
+ - fixtures/self_test/features/background/scenario_outline_failing_background.feature
542
+ - fixtures/self_test/features/background/scenario_outline_passing_background.feature
477
543
  - fixtures/self_test/features/call_undefined_step_from_step_def.feature
478
544
  - fixtures/self_test/features/failing_expectation.feature
479
545
  - fixtures/self_test/features/lots_of_undefined.feature
@@ -530,10 +596,12 @@ files:
530
596
  - gem_tasks/contributors.rake
531
597
  - gem_tasks/environment.rake
532
598
  - gem_tasks/examples.rake
599
+ - gem_tasks/features.rake
533
600
  - gem_tasks/fix_cr_lf.rake
534
601
  - gem_tasks/flog.rake
535
602
  - gem_tasks/rspec.rake
536
603
  - gem_tasks/sass.rake
604
+ - gem_tasks/sdoc.rake
537
605
  - lib/README.rdoc
538
606
  - lib/autotest/cucumber.rb
539
607
  - lib/autotest/cucumber_mixin.rb
@@ -552,6 +620,7 @@ files:
552
620
  - lib/cucumber/ast/feature_element.rb
553
621
  - lib/cucumber/ast/features.rb
554
622
  - lib/cucumber/ast/outline_table.rb
623
+ - lib/cucumber/ast/py_string.rb
555
624
  - lib/cucumber/ast/scenario.rb
556
625
  - lib/cucumber/ast/scenario_outline.rb
557
626
  - lib/cucumber/ast/step.rb
@@ -573,6 +642,7 @@ files:
573
642
  - lib/cucumber/core_ext/string.rb
574
643
  - lib/cucumber/feature_file.rb
575
644
  - lib/cucumber/formatter/ansicolor.rb
645
+ - lib/cucumber/formatter/color_io.rb
576
646
  - lib/cucumber/formatter/console.rb
577
647
  - lib/cucumber/formatter/cucumber.css
578
648
  - lib/cucumber/formatter/cucumber.sass
@@ -592,6 +662,7 @@ files:
592
662
  - lib/cucumber/formatter/stepdefs.rb
593
663
  - lib/cucumber/formatter/steps.rb
594
664
  - lib/cucumber/formatter/summary.rb
665
+ - lib/cucumber/formatter/tag_cloud.rb
595
666
  - lib/cucumber/formatter/unicode.rb
596
667
  - lib/cucumber/formatter/usage.rb
597
668
  - lib/cucumber/js_support/js_dsl.js
@@ -632,6 +703,7 @@ files:
632
703
  - spec/cucumber/ast/feature_factory.rb
633
704
  - spec/cucumber/ast/feature_spec.rb
634
705
  - spec/cucumber/ast/outline_table_spec.rb
706
+ - spec/cucumber/ast/py_string_spec.rb
635
707
  - spec/cucumber/ast/scenario_outline_spec.rb
636
708
  - spec/cucumber/ast/scenario_spec.rb
637
709
  - spec/cucumber/ast/step_spec.rb
@@ -645,6 +717,7 @@ files:
645
717
  - spec/cucumber/cli/profile_loader_spec.rb
646
718
  - spec/cucumber/core_ext/proc_spec.rb
647
719
  - spec/cucumber/formatter/ansicolor_spec.rb
720
+ - spec/cucumber/formatter/color_io_spec.rb
648
721
  - spec/cucumber/formatter/duration_spec.rb
649
722
  - spec/cucumber/formatter/html_spec.rb
650
723
  - spec/cucumber/formatter/junit_spec.rb
@@ -655,6 +728,7 @@ files:
655
728
  - spec/cucumber/rb_support/regexp_argument_matcher_spec.rb
656
729
  - spec/cucumber/sell_cucumbers.feature
657
730
  - spec/cucumber/step_match_spec.rb
731
+ - spec/cucumber/step_mother_spec.rb
658
732
  - spec/cucumber/wire_support/configuration_spec.rb
659
733
  - spec/cucumber/wire_support/connection_spec.rb
660
734
  - spec/cucumber/wire_support/wire_exception_spec.rb
@@ -673,7 +747,7 @@ post_install_message: |+
673
747
 
674
748
  (::) U P G R A D I N G (::)
675
749
 
676
- Thank you for installing cucumber-0.8.6.
750
+ Thank you for installing cucumber-0.8.7.
677
751
  Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
678
752
  for important information about this release. Happy cuking!
679
753