kosmas58-cucumber 0.1.16.6 → 0.1.99.21

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 (248) hide show
  1. data/History.txt +126 -2
  2. data/License.txt +1 -1
  3. data/Manifest.txt +0 -270
  4. data/Rakefile +1 -1
  5. data/bin/cucumber +2 -2
  6. data/config/hoe.rb +7 -2
  7. data/examples/cs/features/step_definitons/calculator_steps.rb +1 -1
  8. data/examples/i18n/README.textile +1 -1
  9. data/examples/i18n/Rakefile +3 -3
  10. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -6
  11. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +1 -1
  12. data/examples/i18n/de/features/addition.feature +6 -6
  13. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +2 -2
  14. data/examples/i18n/en/features/addition.feature +6 -6
  15. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +2 -2
  16. data/examples/i18n/es/features/adicion.feature +11 -12
  17. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +7 -10
  18. data/examples/i18n/es/lib/calculador.rb +4 -1
  19. data/examples/i18n/et/features/liitmine.feature +7 -6
  20. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +1 -1
  21. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +1 -1
  22. data/examples/i18n/fi/features/yhteenlasku.feature +2 -2
  23. data/examples/i18n/fr/features/addition.feature +2 -2
  24. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +1 -1
  25. data/examples/i18n/id/features/addition.feature +6 -6
  26. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +2 -2
  27. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +1 -1
  28. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +2 -3
  29. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
  30. data/examples/i18n/lt/features/addition.feature +7 -6
  31. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +2 -2
  32. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +7 -7
  33. data/examples/i18n/no/features/summering.feature +1 -0
  34. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +1 -1
  35. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +1 -1
  36. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +1 -1
  37. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +2 -2
  38. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  39. data/examples/jbehave/README.textile +17 -0
  40. data/examples/jbehave/features/support/env.rb +7 -0
  41. data/examples/jbehave/features/trading.feature +24 -0
  42. data/examples/jbehave/pom.xml +48 -0
  43. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
  44. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
  45. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
  46. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
  47. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +65 -0
  48. data/examples/self_test/README.textile +4 -1
  49. data/examples/{calculator_ruby_features → self_test}/Rakefile +3 -3
  50. data/examples/self_test/features/background/failing_background.feature +10 -0
  51. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  52. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  53. data/examples/self_test/features/background/passing_background.feature +10 -0
  54. data/examples/self_test/features/background/pending_background.feature +10 -0
  55. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  56. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  57. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  58. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  59. data/examples/self_test/features/outline_sample.feature +11 -5
  60. data/examples/self_test/features/sample.feature +8 -3
  61. data/examples/self_test/features/step_definitions/sample_steps.rb +53 -4
  62. data/examples/self_test/features/support/env.rb +1 -0
  63. data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
  64. data/examples/tickets/features/172.feature +28 -0
  65. data/examples/tickets/features/177/1.feature +29 -0
  66. data/examples/tickets/features/177/2.feature +21 -0
  67. data/examples/tickets/features/177/3.feature +18 -0
  68. data/examples/tickets/features/180.feature +7 -0
  69. data/examples/tickets/features/scenario_outline.feature +6 -1
  70. data/examples/tickets/features/step_definitons/tickets_steps.rb +27 -3
  71. data/examples/tickets/features/tickets.feature +4 -0
  72. data/features/background.feature +223 -0
  73. data/features/cucumber_cli.feature +218 -98
  74. data/features/cucumber_cli_outlines.feature +54 -37
  75. data/features/custom_formatter.feature +11 -0
  76. data/features/report_called_undefined_steps.feature +32 -0
  77. data/features/step_definitions/cucumber_steps.rb +7 -3
  78. data/features/step_definitions/extra_steps.rb +1 -1
  79. data/features/support/env.rb +2 -1
  80. data/gem_tasks/flog.rake +1 -1
  81. data/gem_tasks/gemspec.rake +2 -2
  82. data/gem_tasks/jar.rake +67 -0
  83. data/lib/autotest/cucumber_mixin.rb +17 -23
  84. data/lib/cucumber.rb +63 -11
  85. data/lib/cucumber/ast.rb +29 -0
  86. data/lib/cucumber/ast/background.rb +88 -0
  87. data/lib/cucumber/ast/comment.rb +26 -0
  88. data/lib/cucumber/ast/examples.rb +26 -0
  89. data/lib/cucumber/ast/feature.rb +66 -0
  90. data/lib/cucumber/ast/features.rb +39 -0
  91. data/lib/cucumber/ast/filter.rb +22 -0
  92. data/lib/cucumber/ast/outline_table.rb +49 -0
  93. data/lib/cucumber/ast/py_string.rb +52 -0
  94. data/lib/cucumber/ast/scenario.rb +103 -0
  95. data/lib/cucumber/ast/scenario_outline.rb +92 -0
  96. data/lib/cucumber/ast/step.rb +161 -0
  97. data/lib/cucumber/ast/steps.rb +13 -0
  98. data/lib/cucumber/ast/table.rb +218 -0
  99. data/lib/cucumber/ast/tags.rb +40 -0
  100. data/lib/cucumber/ast/visitor.rb +109 -0
  101. data/lib/cucumber/broadcaster.rb +1 -6
  102. data/lib/cucumber/cli/configuration.rb +339 -0
  103. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  104. data/lib/cucumber/cli/main.rb +100 -0
  105. data/lib/cucumber/core_ext/exception.rb +41 -8
  106. data/lib/cucumber/core_ext/instance_exec.rb +54 -0
  107. data/lib/cucumber/core_ext/proc.rb +29 -65
  108. data/lib/cucumber/core_ext/string.rb +19 -0
  109. data/lib/cucumber/formatter.rb +1 -0
  110. data/lib/cucumber/{formatters → formatter}/ansicolor.rb +14 -16
  111. data/lib/cucumber/formatter/color_io.rb +17 -0
  112. data/lib/cucumber/formatter/console.rb +119 -0
  113. data/lib/cucumber/formatter/cucumber.css +55 -0
  114. data/lib/cucumber/formatter/cucumber.sass +49 -0
  115. data/lib/cucumber/formatter/html.rb +121 -0
  116. data/lib/cucumber/formatter/pretty.rb +167 -0
  117. data/lib/cucumber/formatter/profile.rb +77 -0
  118. data/lib/cucumber/formatter/progress.rb +68 -0
  119. data/lib/cucumber/formatter/rerun.rb +35 -0
  120. data/lib/cucumber/formatter/unicode.rb +35 -0
  121. data/lib/cucumber/formatters/unicode.rb +2 -35
  122. data/lib/cucumber/jbehave.rb +102 -0
  123. data/lib/cucumber/languages.yml +128 -75
  124. data/lib/cucumber/parser.rb +43 -0
  125. data/lib/cucumber/parser/basic.rb +0 -0
  126. data/lib/cucumber/parser/feature.rb +1490 -0
  127. data/lib/cucumber/parser/feature.tt +188 -0
  128. data/lib/cucumber/parser/i18n.tt +31 -0
  129. data/lib/cucumber/parser/table.rb +402 -0
  130. data/lib/cucumber/parser/table.tt +59 -0
  131. data/lib/cucumber/parser/treetop_ext.rb +75 -0
  132. data/lib/cucumber/platform.rb +3 -17
  133. data/lib/cucumber/rails/rspec.rb +5 -2
  134. data/lib/cucumber/step_definition.rb +87 -0
  135. data/lib/cucumber/step_mother.rb +151 -66
  136. data/lib/cucumber/version.rb +2 -2
  137. data/rails_generators/cucumber/USAGE +3 -2
  138. data/rails_generators/cucumber/cucumber_generator.rb +33 -23
  139. data/rails_generators/cucumber/templates/cucumber +2 -1
  140. data/rails_generators/cucumber/templates/cucumber.rake +6 -1
  141. data/rails_generators/cucumber/templates/env.rb +1 -1
  142. data/rails_generators/feature/USAGE +3 -0
  143. data/rails_generators/feature/feature_generator.rb +30 -6
  144. data/spec/cucumber/ast/background_spec.rb +58 -0
  145. data/spec/cucumber/ast/feature_factory.rb +54 -0
  146. data/spec/cucumber/ast/feature_spec.rb +60 -0
  147. data/spec/cucumber/ast/py_string_spec.rb +40 -0
  148. data/spec/cucumber/ast/scenario_outline_spec.rb +64 -0
  149. data/spec/cucumber/ast/scenario_spec.rb +82 -0
  150. data/spec/cucumber/ast/step_spec.rb +45 -0
  151. data/spec/cucumber/ast/table_spec.rb +81 -0
  152. data/spec/cucumber/ast/tags_spec.rb +23 -0
  153. data/spec/cucumber/broadcaster_spec.rb +4 -17
  154. data/spec/cucumber/cli/configuration_spec.rb +239 -0
  155. data/spec/cucumber/cli/main_spec.rb +164 -0
  156. data/spec/cucumber/core_ext/proc_spec.rb +27 -35
  157. data/spec/cucumber/core_ext/string_spec.rb +8 -0
  158. data/spec/cucumber/{formatters → formatter}/ansicolor_spec.rb +2 -2
  159. data/spec/cucumber/formatter/html/cucumber.css +37 -0
  160. data/spec/cucumber/formatter/html/cucumber.js +13 -0
  161. data/spec/cucumber/formatter/html/index.html +45 -0
  162. data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
  163. data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
  164. data/spec/cucumber/formatters/profile_formatter_spec.rb +17 -16
  165. data/spec/cucumber/parser/feature_parser_spec.rb +281 -0
  166. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  167. data/spec/cucumber/step_definition_spec.rb +62 -0
  168. data/spec/cucumber/step_mother_spec.rb +50 -51
  169. data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
  170. data/spec/cucumber/treetop_parser/scenario_outline.feature +1 -1
  171. data/spec/cucumber/treetop_parser/spaces.feature +3 -1
  172. data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
  173. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  174. data/spec/cucumber/world/pending_spec.rb +13 -12
  175. data/spec/spec_helper.rb +1 -1
  176. metadata +107 -79
  177. data/examples/calculator_ruby_features/features/addition.rb +0 -39
  178. data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
  179. data/gem_tasks/treetop.rake +0 -41
  180. data/lib/cucumber/cli.rb +0 -355
  181. data/lib/cucumber/executor.rb +0 -205
  182. data/lib/cucumber/formatters.rb +0 -1
  183. data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
  184. data/lib/cucumber/formatters/cucumber.css +0 -132
  185. data/lib/cucumber/formatters/cucumber.js +0 -11
  186. data/lib/cucumber/formatters/html_formatter.rb +0 -152
  187. data/lib/cucumber/formatters/jquery.js +0 -32
  188. data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
  189. data/lib/cucumber/formatters/profile_formatter.rb +0 -92
  190. data/lib/cucumber/formatters/progress_formatter.rb +0 -61
  191. data/lib/cucumber/model.rb +0 -1
  192. data/lib/cucumber/model/table.rb +0 -32
  193. data/lib/cucumber/step_methods.rb +0 -49
  194. data/lib/cucumber/tree.rb +0 -16
  195. data/lib/cucumber/tree/feature.rb +0 -105
  196. data/lib/cucumber/tree/features.rb +0 -21
  197. data/lib/cucumber/tree/given_scenario.rb +0 -13
  198. data/lib/cucumber/tree/scenario.rb +0 -240
  199. data/lib/cucumber/tree/step.rb +0 -173
  200. data/lib/cucumber/tree/table.rb +0 -26
  201. data/lib/cucumber/tree/top_down_visitor.rb +0 -23
  202. data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -254
  203. data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1951
  204. data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1951
  205. data/lib/cucumber/treetop_parser/feature_da.rb +0 -1951
  206. data/lib/cucumber/treetop_parser/feature_de.rb +0 -1951
  207. data/lib/cucumber/treetop_parser/feature_en-lol.rb +0 -1951
  208. data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1951
  209. data/lib/cucumber/treetop_parser/feature_en.rb +0 -1951
  210. data/lib/cucumber/treetop_parser/feature_es.rb +0 -1951
  211. data/lib/cucumber/treetop_parser/feature_et.rb +0 -1951
  212. data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
  213. data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1951
  214. data/lib/cucumber/treetop_parser/feature_id.rb +0 -1951
  215. data/lib/cucumber/treetop_parser/feature_it.rb +0 -1951
  216. data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1951
  217. data/lib/cucumber/treetop_parser/feature_ko.rb +0 -1951
  218. data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1951
  219. data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1951
  220. data/lib/cucumber/treetop_parser/feature_no.rb +0 -1951
  221. data/lib/cucumber/treetop_parser/feature_parser.rb +0 -36
  222. data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1951
  223. data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1951
  224. data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1951
  225. data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1951
  226. data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1951
  227. data/lib/cucumber/treetop_parser/feature_se.rb +0 -1951
  228. data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1951
  229. data/lib/cucumber/world.rb +0 -1
  230. data/lib/cucumber/world/pending.rb +0 -22
  231. data/setup.rb +0 -1585
  232. data/spec/cucumber/cli_spec.rb +0 -521
  233. data/spec/cucumber/executor_spec.rb +0 -382
  234. data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
  235. data/spec/cucumber/formatters/features.html +0 -269
  236. data/spec/cucumber/formatters/html_formatter_spec.rb +0 -110
  237. data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -410
  238. data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -81
  239. data/spec/cucumber/model/table_spec.rb +0 -32
  240. data/spec/cucumber/tree/feature_spec.rb +0 -122
  241. data/spec/cucumber/tree/row_scenario_outline_spec.rb +0 -73
  242. data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
  243. data/spec/cucumber/tree/row_step_outline_spec.rb +0 -38
  244. data/spec/cucumber/tree/scenario_outline_spec.rb +0 -50
  245. data/spec/cucumber/tree/scenario_spec.rb +0 -134
  246. data/spec/cucumber/tree/step_outline_spec.rb +0 -17
  247. data/spec/cucumber/tree/step_spec.rb +0 -59
  248. data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -120
@@ -0,0 +1,62 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ require 'cucumber/ast'
4
+ require 'cucumber/step_mother'
5
+ require 'cucumber/step_definition'
6
+
7
+ module Cucumber
8
+ describe StepDefinition do
9
+ before do
10
+ extend StepMother
11
+ @world = new_world
12
+ $inside = nil
13
+ end
14
+
15
+ it "should allow calling of other steps" do
16
+ Given /Outside/ do
17
+ Given "Inside"
18
+ end
19
+ Given /Inside/ do
20
+ $inside = true
21
+ end
22
+
23
+ step_definition("Outside").execute(nil, @world)
24
+ $inside.should == true
25
+ end
26
+
27
+ it "should allow calling of other steps with inline arg" do
28
+ Given /Outside/ do
29
+ Given "Inside", Ast::Table.new([['inside']])
30
+ end
31
+ Given /Inside/ do |table|
32
+ $inside = table.raw[0][0]
33
+ end
34
+
35
+ step_definition("Outside").execute(nil, @world)
36
+ $inside.should == 'inside'
37
+ end
38
+
39
+ it "should raise Undefined when inside step is not defined" do
40
+ Given /Outside/ do
41
+ Given 'Inside'
42
+ end
43
+
44
+ step = mock('Step')
45
+ step.should_receive(:exception=)
46
+ lambda do
47
+ @world.__cucumber_current_step = step
48
+ step_definition('Outside').execute(nil, @world)
49
+ end.should raise_error(Undefined, 'Undefined step: "Inside"')
50
+ end
51
+
52
+ it "should allow forced pending" do
53
+ Given /Outside/ do
54
+ pending("Do me!")
55
+ end
56
+
57
+ lambda do
58
+ step_definition("Outside").execute(nil, @world)
59
+ end.should raise_error(Pending, "Do me!")
60
+ end
61
+ end
62
+ end
@@ -1,74 +1,73 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
+ require 'cucumber/step_mother'
4
+
3
5
  module Cucumber
4
6
  describe StepMother do
5
- it "should report file and line numbers for both duplicate step definitions" do
6
- m = StepMother.new
7
-
8
- m.register_step_proc /Three (.*) mice/ do |disability|
9
- end
10
-
11
- begin
12
- m.register_step_proc /Three (.*) mice/ do |disability|
13
- end
14
- violated("Should raise error")
15
- rescue => e
16
- e.message.should =~ %r{Duplicate step definitions:.+step_mother_spec\.rb:8:in `/Three \(\.\*\) mice/'.+step_mother_spec\.rb\:12:in `/Three \(\.\*\) mice/'}m
17
-
18
- end
7
+ before do
8
+ @step_mother = Object.new
9
+ @step_mother.extend(StepMother)
10
+ @visitor = mock('Visitor')
19
11
  end
20
12
 
21
- it "should report file and line numbers for multiple step definitions" do
22
- m = StepMother.new
23
-
24
- m.register_step_proc /Three (.*) mice/ do |disability|
13
+ it "should format step names" do
14
+ @step_mother.Given(/it (.*) in (.*)/) do |what, month|
25
15
  end
26
-
27
- m.register_step_proc /Three blind (.*)/ do |animal|
16
+ @step_mother.Given(/nope something else/) do |what, month|
28
17
  end
18
+ format = @step_mother.step_definition("it snows in april").format_args("it snows in april", "[%s]")
19
+ format.should == "it [snows] in [april]"
20
+ end
29
21
 
30
- begin
31
- m.regexp_args_proc('Three blind mice')
32
- violated("Should raise error")
33
- rescue => e
34
- e.message.should =~ %r{Multiple step definitions match "Three blind mice":
22
+ it "should raise Ambiguous error when multiple step definitions match" do
23
+ @step_mother.Given(/Three (.*) mice/) {|disability|}
24
+ @step_mother.Given(/Three blind (.*)/) {|animal|}
35
25
 
36
- .+step_mother_spec\.rb:24:in `/Three \(\.\*\) mice/'
37
- .+step_mother_spec\.rb:27:in `/Three blind \(\.\*\)/'
26
+ lambda do
27
+ @step_mother.step_definition("Three blind mice")
28
+ end.should raise_error(Ambiguous, %{Ambiguous match of "Three blind mice":
38
29
 
39
- }m
40
- end
41
- end
42
-
43
- it "should mark step as pending when it doesn't match any procs" do
44
- pending "think some more about what to expect here" do
45
- m = StepMother.new
46
- step = mock('step')
47
- step.should_receive(:pending!)
48
- raise "FIXME"
49
- m.execute(step)
50
- end
30
+ spec/cucumber/step_mother_spec.rb:23:in `/Three (.*) mice/'
31
+ spec/cucumber/step_mother_spec.rb:24:in `/Three blind (.*)/'
32
+
33
+ })
51
34
  end
52
35
 
53
- it "should report that a step has a definition if the step is registered" do
54
- m = StepMother.new
55
- m.register_step_proc /I am a real step definition/ do end
36
+ it "should not raise Ambiguous error when multiple step definitions match, but --guess is enabled" do
37
+ @step_mother.options = {:guess => true}
38
+ @step_mother.Given(/Three (.*) mice/) {|disability|}
39
+ @step_mother.Given(/Three (.*)/) {|animal|}
56
40
 
57
- m.has_step_definition?('I am a real step definition').should be_true
41
+ lambda do
42
+ @step_mother.step_definition("Three blind mice")
43
+ end.should_not raise_error
58
44
  end
59
-
60
- it "should report that a step does not have a definition if it has not been registered" do
61
- m = StepMother.new
62
45
 
63
- m.has_step_definition?('I am a step without a definition').should be_false
46
+ it "should pick right step definition when --guess is enabled and equal number of capture groups" do
47
+ @step_mother.options = {:guess => true}
48
+ right = @step_mother.Given(/Three (.*) mice/) {|disability|}
49
+ wrong = @step_mother.Given(/Three (.*)/) {|animal|}
50
+ @step_mother.step_definition("Three blind mice").should == right
64
51
  end
65
52
 
66
- it "should explain to the programmer that step definitions always need a proc" do
67
- m = StepMother.new
53
+ it "should pick right step definition when --guess is enabled and unequal number of capture groups" do
54
+ @step_mother.options = {:guess => true}
55
+ right = @step_mother.Given(/Three (.*) mice ran (.*)/) {|disability|}
56
+ wrong = @step_mother.Given(/Three (.*)/) {|animal|}
57
+ @step_mother.step_definition("Three blind mice ran far").should == right
58
+ end
59
+
60
+ it "should raise Undefined error when no step definitions match" do
68
61
  lambda do
69
- m.register_step_proc(/no milk today/)
70
- end.should raise_error(MissingProc, "Step definitions must always have a proc")
62
+ @step_mother.step_definition("Three blind mice")
63
+ end.should raise_error(Undefined)
71
64
  end
72
65
 
66
+ it "should raise Redundant error when same regexp is registered twice" do
67
+ @step_mother.Given(/Three (.*) mice/) {|disability|}
68
+ lambda do
69
+ @step_mother.Given(/Three (.*) mice/) {|disability|}
70
+ end.should raise_error(Redundant)
71
+ end
73
72
  end
74
73
  end
@@ -1,4 +1,4 @@
1
1
  Feature: No scenarios yet
2
- I order to ...
2
+ In order to ...
3
3
  As a ...
4
4
  I want to ...
@@ -4,7 +4,7 @@ Scenario Outline: Joe fails to login
4
4
  Given I login as Joe without the '<Privilege>' privilege
5
5
  When I <Request Method> /admin/<Path>
6
6
  Then I should see the text "Sorry Joe, you're not allowed to see <Path>"
7
-
7
+
8
8
  Examples:
9
9
  | Privilege | Request Method | Path |
10
10
  | user | GET | reports |
@@ -1,4 +1,6 @@
1
- Some title
1
+
2
+
3
+ Feature: Some title
2
4
 
3
5
  Scenario: first
4
6
 
@@ -1,6 +1,6 @@
1
1
  # Header title
2
2
  # Two lines
3
- Some header
3
+ Feature: Some header
4
4
 
5
5
  # Scenario header
6
6
  # on two lines
@@ -0,0 +1,18 @@
1
+ # Uhm hai
2
+ # nai
3
+ @nice @hallo
4
+ Feature: With tags
5
+
6
+ @one @two
7
+ Scenario: Complete scenario
8
+ Given a valid API key
9
+
10
+ @three
11
+ Scenario: Will write at somepoint
12
+
13
+ @four @$$
14
+ Scenario: Another Complete scenario
15
+ Given an invalid API key
16
+
17
+ @six
18
+ Scenario Outline: Jalla
@@ -1,44 +1,45 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  module Cucumber
4
- module World
5
- describe Pending do
4
+ module StepMother
5
+ describe 'Pending' do
6
6
 
7
7
  before(:each) do
8
- @world = Object.new
9
- @world.extend(World::Pending)
8
+ @step_mom = Object.new
9
+ @step_mom.extend(StepMother)
10
+ @world = @step_mom.new_world
10
11
  end
11
12
 
12
- it 'should raise a ForcedPending if no block is supplied' do
13
+ it 'should raise a Pending if no block is supplied' do
13
14
  lambda {
14
15
  @world.pending "TODO"
15
- }.should raise_error(ForcedPending, /TODO/)
16
+ }.should raise_error(Pending, /TODO/)
16
17
  end
17
18
 
18
- it 'should raise a ForcedPending if a supplied block fails as expected' do
19
+ it 'should raise a Pending if a supplied block fails as expected' do
19
20
  lambda {
20
21
  @world.pending "TODO" do
21
22
  raise "oops"
22
23
  end
23
- }.should raise_error(ForcedPending, /TODO/)
24
+ }.should raise_error(Pending, /TODO/)
24
25
  end
25
26
 
26
- it 'should raise a ForcedPending if a supplied block fails as expected with a mock' do
27
+ it 'should raise a Pending if a supplied block fails as expected with a mock' do
27
28
  lambda {
28
29
  @world.pending "TODO" do
29
30
  m = mock('thing')
30
31
  m.should_receive(:foo)
31
32
  m.rspec_verify
32
33
  end
33
- }.should raise_error(ForcedPending, /TODO/)
34
+ }.should raise_error(Pending, /TODO/)
34
35
  end
35
36
 
36
- it 'should raise a ForcedPending if a supplied block starts working' do
37
+ it 'should raise a Pending if a supplied block starts working' do
37
38
  lambda {
38
39
  @world.pending "TODO" do
39
40
  # success!
40
41
  end
41
- }.should raise_error(ForcedPending, /TODO/)
42
+ }.should raise_error(Pending, /TODO/)
42
43
  end
43
44
 
44
45
  end
data/spec/spec_helper.rb CHANGED
@@ -6,8 +6,8 @@ ENV['CUCUMBER_COLORS']=nil
6
6
  $KCODE='u'
7
7
  $:.unshift(File.dirname(__FILE__) + '/../lib')
8
8
  require 'cucumber'
9
- require 'cucumber/treetop_parser/feature_en'
10
9
  Cucumber.load_language('en')
10
+ $:.unshift(File.dirname(__FILE__))
11
11
 
12
12
  ::Term::ANSIColor.coloring = true
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kosmas58-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16.6
4
+ version: 0.1.99.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Aslak Helles\xC3\xB8y"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-23 00:00:00 -08:00
12
+ date: 2009-02-06 00:00:00 -08:00
13
13
  default_executable: cucumber
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,6 +30,15 @@ dependencies:
30
30
  - !ruby/object:Gem::Version
31
31
  version: 1.2.4
32
32
  version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: polyglot
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.4
41
+ version:
33
42
  - !ruby/object:Gem::Dependency
34
43
  name: diff-lcs
35
44
  version_requirement:
@@ -46,7 +55,7 @@ dependencies:
46
55
  requirements:
47
56
  - - ">="
48
57
  - !ruby/object:Gem::Version
49
- version: 1.8.2
58
+ version: 1.8.3
50
59
  version:
51
60
  description: Executable Feature scenarios
52
61
  email:
@@ -71,9 +80,6 @@ files:
71
80
  - config/hoe.rb
72
81
  - config/requirements.rb
73
82
  - cucumber.yml
74
- - examples/calculator_ruby_features/Rakefile
75
- - examples/calculator_ruby_features/features/addition.rb
76
- - examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb
77
83
  - examples/cs/README.textile
78
84
  - examples/cs/Rakefile
79
85
  - examples/cs/compile.bat
@@ -170,18 +176,45 @@ files:
170
176
  - examples/java/features/step_definitons/hello_steps.rb
171
177
  - examples/java/features/step_definitons/tree_steps.rb
172
178
  - examples/java/features/tree.feature
179
+ - examples/java/src/cucumber/demo/Hello.java
180
+ - examples/jbehave/README.textile
181
+ - examples/jbehave/features/support/env.rb
182
+ - examples/jbehave/features/trading.feature
183
+ - examples/jbehave/pom.xml
184
+ - examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java
185
+ - examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java
186
+ - examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java
187
+ - examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java
188
+ - examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java
173
189
  - examples/selenium/Rakefile
174
190
  - examples/selenium/features/search.feature
175
191
  - examples/selenium/features/step_definitons/stories_steps.rb
176
192
  - examples/self_test/README.textile
193
+ - examples/self_test/Rakefile
194
+ - examples/self_test/features/background/failing_background.feature
195
+ - examples/self_test/features/background/failing_background_after_success.feature
196
+ - examples/self_test/features/background/multiline_args_background.feature
197
+ - examples/self_test/features/background/passing_background.feature
198
+ - examples/self_test/features/background/pending_background.feature
199
+ - examples/self_test/features/background/scenario_outline_failing_background.feature
200
+ - examples/self_test/features/background/scenario_outline_passing_background.feature
201
+ - examples/self_test/features/call_undefined_step_from_step_def.feature
202
+ - examples/self_test/features/lots_of_undefined.feature
177
203
  - examples/self_test/features/outline_sample.feature
178
204
  - examples/self_test/features/sample.feature
179
205
  - examples/self_test/features/step_definitions/sample_steps.rb
206
+ - examples/self_test/features/support/env.rb
207
+ - examples/self_test/features/support/tag_count_formatter.rb
180
208
  - examples/test_unit/Rakefile
181
209
  - examples/test_unit/features/step_definitions/test_unit_steps.rb
182
210
  - examples/test_unit/features/test_unit.feature
183
211
  - examples/tickets/Rakefile
184
212
  - examples/tickets/cucumber.yml
213
+ - examples/tickets/features/172.feature
214
+ - examples/tickets/features/177/1.feature
215
+ - examples/tickets/features/177/2.feature
216
+ - examples/tickets/features/177/3.feature
217
+ - examples/tickets/features/180.feature
185
218
  - examples/tickets/features/lib/eatting_machine.rb
186
219
  - examples/tickets/features/lib/pantry.rb
187
220
  - examples/tickets/features/scenario_outline.feature
@@ -193,8 +226,11 @@ files:
193
226
  - examples/watir/features/search.feature
194
227
  - examples/watir/features/step_definitons/search_steps.rb
195
228
  - examples/watir/features/support/env.rb
229
+ - features/background.feature
196
230
  - features/cucumber_cli.feature
197
231
  - features/cucumber_cli_outlines.feature
232
+ - features/custom_formatter.feature
233
+ - features/report_called_undefined_steps.feature
198
234
  - features/step_definitions/cucumber_steps.rb
199
235
  - features/step_definitions/extra_steps.rb
200
236
  - features/support/env.rb
@@ -204,8 +240,8 @@ files:
204
240
  - gem_tasks/fix_cr_lf.rake
205
241
  - gem_tasks/flog.rake
206
242
  - gem_tasks/gemspec.rake
243
+ - gem_tasks/jar.rake
207
244
  - gem_tasks/rspec.rake
208
- - gem_tasks/treetop.rake
209
245
  - gem_tasks/yard.rake
210
246
  - lib/autotest/cucumber.rb
211
247
  - lib/autotest/cucumber_mixin.rb
@@ -214,70 +250,60 @@ files:
214
250
  - lib/autotest/cucumber_rspec.rb
215
251
  - lib/autotest/discover.rb
216
252
  - lib/cucumber.rb
253
+ - lib/cucumber/ast.rb
254
+ - lib/cucumber/ast/background.rb
255
+ - lib/cucumber/ast/comment.rb
256
+ - lib/cucumber/ast/examples.rb
257
+ - lib/cucumber/ast/feature.rb
258
+ - lib/cucumber/ast/features.rb
259
+ - lib/cucumber/ast/filter.rb
260
+ - lib/cucumber/ast/outline_table.rb
261
+ - lib/cucumber/ast/py_string.rb
262
+ - lib/cucumber/ast/scenario.rb
263
+ - lib/cucumber/ast/scenario_outline.rb
264
+ - lib/cucumber/ast/step.rb
265
+ - lib/cucumber/ast/steps.rb
266
+ - lib/cucumber/ast/table.rb
267
+ - lib/cucumber/ast/tags.rb
268
+ - lib/cucumber/ast/visitor.rb
217
269
  - lib/cucumber/broadcaster.rb
218
- - lib/cucumber/cli.rb
270
+ - lib/cucumber/cli/configuration.rb
271
+ - lib/cucumber/cli/language_help_formatter.rb
272
+ - lib/cucumber/cli/main.rb
219
273
  - lib/cucumber/core_ext/exception.rb
274
+ - lib/cucumber/core_ext/instance_exec.rb
220
275
  - lib/cucumber/core_ext/proc.rb
221
276
  - lib/cucumber/core_ext/string.rb
222
- - lib/cucumber/executor.rb
223
- - lib/cucumber/formatters.rb
224
- - lib/cucumber/formatters/ansicolor.rb
225
- - lib/cucumber/formatters/autotest_formatter.rb
226
- - lib/cucumber/formatters/cucumber.css
227
- - lib/cucumber/formatters/cucumber.js
228
- - lib/cucumber/formatters/html_formatter.rb
229
- - lib/cucumber/formatters/jquery.js
230
- - lib/cucumber/formatters/pretty_formatter.rb
231
- - lib/cucumber/formatters/profile_formatter.rb
232
- - lib/cucumber/formatters/progress_formatter.rb
277
+ - lib/cucumber/formatter.rb
278
+ - lib/cucumber/formatter/ansicolor.rb
279
+ - lib/cucumber/formatter/color_io.rb
280
+ - lib/cucumber/formatter/console.rb
281
+ - lib/cucumber/formatter/cucumber.css
282
+ - lib/cucumber/formatter/cucumber.sass
283
+ - lib/cucumber/formatter/html.rb
284
+ - lib/cucumber/formatter/pretty.rb
285
+ - lib/cucumber/formatter/profile.rb
286
+ - lib/cucumber/formatter/progress.rb
287
+ - lib/cucumber/formatter/rerun.rb
288
+ - lib/cucumber/formatter/unicode.rb
233
289
  - lib/cucumber/formatters/unicode.rb
290
+ - lib/cucumber/jbehave.rb
234
291
  - lib/cucumber/languages.yml
235
- - lib/cucumber/model.rb
236
- - lib/cucumber/model/table.rb
292
+ - lib/cucumber/parser.rb
293
+ - lib/cucumber/parser/basic.rb
294
+ - lib/cucumber/parser/feature.rb
295
+ - lib/cucumber/parser/feature.tt
296
+ - lib/cucumber/parser/i18n.tt
297
+ - lib/cucumber/parser/table.rb
298
+ - lib/cucumber/parser/table.tt
299
+ - lib/cucumber/parser/treetop_ext.rb
237
300
  - lib/cucumber/platform.rb
238
301
  - lib/cucumber/rails/rspec.rb
239
302
  - lib/cucumber/rails/world.rb
240
303
  - lib/cucumber/rake/task.rb
241
- - lib/cucumber/step_methods.rb
304
+ - lib/cucumber/step_definition.rb
242
305
  - lib/cucumber/step_mother.rb
243
- - lib/cucumber/tree.rb
244
- - lib/cucumber/tree/feature.rb
245
- - lib/cucumber/tree/features.rb
246
- - lib/cucumber/tree/given_scenario.rb
247
- - lib/cucumber/tree/scenario.rb
248
- - lib/cucumber/tree/step.rb
249
- - lib/cucumber/tree/table.rb
250
- - lib/cucumber/tree/top_down_visitor.rb
251
- - lib/cucumber/treetop_parser/feature.treetop.erb
252
- - lib/cucumber/treetop_parser/feature_ar.rb
253
- - lib/cucumber/treetop_parser/feature_cy.rb
254
- - lib/cucumber/treetop_parser/feature_da.rb
255
- - lib/cucumber/treetop_parser/feature_de.rb
256
- - lib/cucumber/treetop_parser/feature_en-lol.rb
257
- - lib/cucumber/treetop_parser/feature_en-tx.rb
258
- - lib/cucumber/treetop_parser/feature_en.rb
259
- - lib/cucumber/treetop_parser/feature_es.rb
260
- - lib/cucumber/treetop_parser/feature_et.rb
261
- - lib/cucumber/treetop_parser/feature_fi.rb
262
- - lib/cucumber/treetop_parser/feature_fr.rb
263
- - lib/cucumber/treetop_parser/feature_id.rb
264
- - lib/cucumber/treetop_parser/feature_it.rb
265
- - lib/cucumber/treetop_parser/feature_ja.rb
266
- - lib/cucumber/treetop_parser/feature_ko.rb
267
- - lib/cucumber/treetop_parser/feature_lt.rb
268
- - lib/cucumber/treetop_parser/feature_nl.rb
269
- - lib/cucumber/treetop_parser/feature_no.rb
270
- - lib/cucumber/treetop_parser/feature_parser.rb
271
- - lib/cucumber/treetop_parser/feature_pl.rb
272
- - lib/cucumber/treetop_parser/feature_pt.rb
273
- - lib/cucumber/treetop_parser/feature_ro.rb
274
- - lib/cucumber/treetop_parser/feature_ro2.rb
275
- - lib/cucumber/treetop_parser/feature_ru.rb
276
- - lib/cucumber/treetop_parser/feature_se.rb
277
- - lib/cucumber/treetop_parser/feature_zh-CN.rb
278
306
  - lib/cucumber/version.rb
279
- - lib/cucumber/world.rb
280
- - lib/cucumber/world/pending.rb
281
307
  - rails_generators/cucumber/USAGE
282
308
  - rails_generators/cucumber/cucumber_generator.rb
283
309
  - rails_generators/cucumber/templates/cucumber
@@ -289,37 +315,38 @@ files:
289
315
  - rails_generators/feature/feature_generator.rb
290
316
  - rails_generators/feature/templates/feature.erb
291
317
  - rails_generators/feature/templates/steps.erb
292
- - setup.rb
318
+ - spec/cucumber/ast/background_spec.rb
319
+ - spec/cucumber/ast/feature_factory.rb
320
+ - spec/cucumber/ast/feature_spec.rb
321
+ - spec/cucumber/ast/py_string_spec.rb
322
+ - spec/cucumber/ast/scenario_outline_spec.rb
323
+ - spec/cucumber/ast/scenario_spec.rb
324
+ - spec/cucumber/ast/step_spec.rb
325
+ - spec/cucumber/ast/table_spec.rb
326
+ - spec/cucumber/ast/tags_spec.rb
293
327
  - spec/cucumber/broadcaster_spec.rb
294
- - spec/cucumber/cli_spec.rb
328
+ - spec/cucumber/cli/configuration_spec.rb
329
+ - spec/cucumber/cli/main_spec.rb
295
330
  - spec/cucumber/core_ext/proc_spec.rb
296
331
  - spec/cucumber/core_ext/string_spec.rb
297
- - spec/cucumber/executor_spec.rb
298
- - spec/cucumber/formatters/ansicolor_spec.rb
299
- - spec/cucumber/formatters/autotest_formatter_spec.rb
300
- - spec/cucumber/formatters/features.html
301
- - spec/cucumber/formatters/html_formatter_spec.rb
302
- - spec/cucumber/formatters/pretty_formatter_spec.rb
332
+ - spec/cucumber/formatter/ansicolor_spec.rb
333
+ - spec/cucumber/formatter/html/cucumber.css
334
+ - spec/cucumber/formatter/html/cucumber.js
335
+ - spec/cucumber/formatter/html/index.html
336
+ - spec/cucumber/formatter/html/jquery-1.3.min.js
337
+ - spec/cucumber/formatter/html/jquery.uitableedit.js
303
338
  - spec/cucumber/formatters/profile_formatter_spec.rb
304
- - spec/cucumber/formatters/progress_formatter_spec.rb
305
- - spec/cucumber/model/table_spec.rb
339
+ - spec/cucumber/parser/feature_parser_spec.rb
340
+ - spec/cucumber/parser/table_parser_spec.rb
306
341
  - spec/cucumber/rails/stubs/mini_rails.rb
307
342
  - spec/cucumber/rails/stubs/test_help.rb
308
343
  - spec/cucumber/rails/world_spec.rb
309
344
  - spec/cucumber/sell_cucumbers.feature
345
+ - spec/cucumber/step_definition_spec.rb
310
346
  - spec/cucumber/step_mother_spec.rb
311
- - spec/cucumber/tree/feature_spec.rb
312
- - spec/cucumber/tree/row_scenario_outline_spec.rb
313
- - spec/cucumber/tree/row_scenario_spec.rb
314
- - spec/cucumber/tree/row_step_outline_spec.rb
315
- - spec/cucumber/tree/scenario_outline_spec.rb
316
- - spec/cucumber/tree/scenario_spec.rb
317
- - spec/cucumber/tree/step_outline_spec.rb
318
- - spec/cucumber/tree/step_spec.rb
319
347
  - spec/cucumber/treetop_parser/empty_feature.feature
320
348
  - spec/cucumber/treetop_parser/empty_scenario.feature
321
349
  - spec/cucumber/treetop_parser/empty_scenario_outline.feature
322
- - spec/cucumber/treetop_parser/feature_parser_spec.rb
323
350
  - spec/cucumber/treetop_parser/fit_scenario.feature
324
351
  - spec/cucumber/treetop_parser/given_scenario.feature
325
352
  - spec/cucumber/treetop_parser/invalid_scenario_outlines.feature
@@ -329,11 +356,12 @@ files:
329
356
  - spec/cucumber/treetop_parser/spaces.feature
330
357
  - spec/cucumber/treetop_parser/test_dos.feature
331
358
  - spec/cucumber/treetop_parser/with_comments.feature
359
+ - spec/cucumber/treetop_parser/with_tags.feature
332
360
  - spec/cucumber/world/pending_spec.rb
333
361
  - spec/spec.opts
334
362
  - spec/spec_helper.rb
335
363
  has_rdoc: true
336
- homepage: http://github.com/aslakhellesoy/cucumber
364
+ homepage: http://cukes.info
337
365
  post_install_message:
338
366
  rdoc_options:
339
367
  - --main