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
@@ -1,81 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Formatters
5
- describe ProgressFormatter do
6
- before do
7
- ::Term::ANSIColor.coloring = false
8
- end
9
-
10
- after do
11
- ::Term::ANSIColor.coloring = true
12
- end
13
-
14
- it "should print . when passed" do
15
- io = StringIO.new
16
- formatter = ProgressFormatter.new io
17
- step = stub('step',
18
- :error => nil
19
- )
20
- formatter.step_passed(step,nil,nil)
21
- io.string.should =~ /^\.$/
22
- end
23
-
24
- it "should print F when failed" do
25
- io = StringIO.new
26
- formatter = ProgressFormatter.new io
27
- step = stub('step',
28
- :error => StandardError.new
29
- )
30
- formatter.step_failed(step,nil,nil)
31
- io.string.should =~ /^\F$/
32
- end
33
-
34
- it "should print P when pending" do
35
- io = StringIO.new
36
- formatter = ProgressFormatter.new io
37
- step = stub('step',
38
- :error => Pending.new,
39
- :scenario => mock('scenario')
40
- )
41
- formatter.step_pending(step,nil,nil)
42
- io.string.should =~ /^\P$/
43
- end
44
-
45
- it "should print _ when skipped" do
46
- io = StringIO.new
47
- formatter = ProgressFormatter.new io
48
- formatter.step_skipped(nil,nil,nil)
49
- io.string.should =~ /^_$/
50
- end
51
-
52
- it "should print nothing when traced" do
53
- io = StringIO.new
54
- formatter = ProgressFormatter.new io
55
- formatter.step_traced(nil, nil, nil)
56
-
57
- io.string.should =~ /^$/
58
- end
59
-
60
- describe "scenario without any steps" do
61
- before :each do
62
- @io = StringIO.new
63
- @formatter = ProgressFormatter.new(@io)
64
- @feature = stub("feature", :header => "Feature Header")
65
- @scenario = stub("scenario", :feature => @feature, :name => "Scenario Title", :row? => false, :pending? => true)
66
- end
67
-
68
- it "should print a P when executing" do
69
- @formatter.should_receive(:pending).with("P")
70
- @formatter.scenario_executing(@scenario)
71
- end
72
-
73
- it "should display as pending in the dump" do
74
- @formatter.scenario_executing(@scenario)
75
- @formatter.dump
76
- @io.string.should include("Feature Header (Scenario Title)")
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,32 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Model
5
- describe Table do
6
- before do
7
- @raw = [
8
- %w{name gender},
9
- %w{aslak male},
10
- %w{patty female},
11
- ]
12
- end
13
-
14
- it "should convert into hash-array" do
15
- ha = Table.new(@raw).hashes
16
- ha.should == [
17
- {'name' => 'aslak', 'gender' => 'male'},
18
- {'name' => 'patty', 'gender' => 'female'}
19
- ]
20
- end
21
-
22
- it "should return the rows of the table" do
23
- ar = Table.new(@raw).rows
24
- ar.should == [
25
- ["aslak", "male"],
26
- ["patty", "female"]
27
- ]
28
- end
29
-
30
- end
31
- end
32
- end
@@ -1,122 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Tree
5
- describe Feature do
6
-
7
- def mock_scenario(stubs = {})
8
- mock("scenario", {:update_table_column_widths => nil,
9
- :outline? => false,
10
- :table_header= => nil}.merge(stubs))
11
- end
12
-
13
- def mock_scenario_outline(stubs = {})
14
- mock_scenario({:outline? => true, :row? => false, :table_header= => nil}.merge(stubs))
15
- end
16
-
17
- it "should have padding_length 2 when alone" do
18
- feature = Feature.new('header')
19
- feature.padding_length.should == 2
20
- end
21
-
22
- describe "creating a Scenario" do
23
-
24
- it "should create a new scenario for a feature" do
25
- feature = Feature.new('header')
26
-
27
- Scenario.should_receive(:new).with(feature, 'test scenario', "29")
28
-
29
- feature.Scenario('test scenario') {}
30
- end
31
-
32
- end
33
-
34
- describe "creating a Scenario Outline" do
35
-
36
- it "should create a new scenario outline for feature" do
37
- feature = Feature.new('header')
38
-
39
- ScenarioOutline.should_receive(:new).with(feature, 'test', '41')
40
-
41
- feature.ScenarioOutline('test') {}
42
- end
43
-
44
- end
45
-
46
- describe "creating a Table" do
47
-
48
- before(:each) do
49
- @feature = Feature.new('header')
50
- end
51
-
52
- describe "previous scenario is a scenario outline" do
53
-
54
- it "should create a row scenario outline for feature" do
55
- mock_scenario_outline = mock_scenario_outline(:outline? => true)
56
- Scenario.stub!(:new).and_return(mock_scenario_outline)
57
- @feature.add_scenario('scenario', 5)
58
-
59
- RowScenarioOutline.should_receive(:new).with(@feature, mock_scenario_outline, ['1', '2'], anything)
60
-
61
- @feature.Table do |t|
62
- t | "input_1" | "input_2" | t
63
- t | 1 | 2 | t
64
- end
65
- end
66
-
67
- end
68
-
69
- describe "previous scenario was a regular scenario" do
70
-
71
- it "should create a row scenario for feature" do
72
- mock_scenario = mock_scenario(:outline? => false)
73
- Scenario.stub!(:new).and_return(mock_scenario)
74
- @feature.add_scenario('scenario', 5)
75
-
76
- RowScenario.should_receive(:new).with(@feature, mock_scenario, ['1', '2'], anything)
77
-
78
- @feature.Table do |t|
79
- t | "input_1" | "input_2" | t
80
- t | 1 | 2 | t
81
- end
82
- end
83
-
84
- end
85
-
86
- it "should set the table header of the template scenario" do
87
- mock_scenario = mock("scenario", :update_table_column_widths => nil, :outline? => false)
88
- Scenario.stub!(:new).and_return(mock_scenario)
89
- @feature.add_scenario('scenario', 5)
90
-
91
- mock_scenario.should_receive(:table_header=).with(["input_1", "input_2"])
92
-
93
- @feature.Table do |t|
94
- t | "input_1" | "input_2" | t
95
- t | 1 | 2 | t
96
- end
97
- end
98
-
99
- end
100
-
101
- it "should create a new row scenario outline" do
102
- feature = Feature.new('header')
103
-
104
- RowScenarioOutline.should_receive(:new)
105
-
106
- feature.add_row_scenario_outline(mock_scenario_outline, [], 1)
107
- end
108
-
109
- it "should visit scenario outline" do
110
- feature = Feature.new('header')
111
- ScenarioOutline.stub!(:new).and_return(mock_scenario_outline(:outline? => true, :row? => false))
112
- feature.add_scenario_outline(nil, nil)
113
- mock_visitor = mock('visitor', :visit_header => nil)
114
-
115
- mock_visitor.should_receive(:visit_scenario_outline)
116
-
117
- feature.accept(mock_visitor)
118
- end
119
-
120
- end
121
- end
122
- end
@@ -1,73 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Tree
5
- describe RowScenarioOutline do
6
-
7
- def mock_feature
8
- mock_feature = mock("feature")
9
- end
10
-
11
- def mock_scenario(stubs ={})
12
- mock("scenario", {:update_table_column_widths => nil}.merge(stubs))
13
- end
14
-
15
- def mock_step(stubs = {})
16
- mock("step", {:arity => 0}.merge(stubs))
17
- end
18
-
19
- it "should indicate scenario is a scenario outline" do
20
- outline = RowScenarioOutline.new(mock_feature, mock_scenario, [], 1)
21
-
22
- outline.should be_a_outline
23
- end
24
-
25
- describe "steps" do
26
-
27
- it "should create a new step with placeholders in template scenario steps replaced with values from scenario row" do
28
- mock_step = mock_step(:keyword => 'Given', :name => '<animal> burning bright')
29
- mock_scenario = mock_scenario(:table_header => ["animal"], :steps => [mock_step] )
30
- outline = RowScenarioOutline.new(mock_feature, mock_scenario, ["tiger"], 1)
31
-
32
- RowStepOutline.should_receive(:new).with(outline, mock_step, 'tiger burning bright', ["tiger"], 1)
33
-
34
- outline.steps
35
- end
36
-
37
- it "should leave the scenario template's name unchanged when replacing placeholders" do
38
- mock_step = mock_step(:keyword => 'Given', :name => '<animal> burning bright', :extra_args => [])
39
- mock_scenario = mock_scenario(:table_header => ["animal"], :steps => [mock_step] )
40
- outline = RowScenarioOutline.new(mock_feature, mock_scenario, ["tiger"], 1)
41
-
42
- outline.steps
43
-
44
- mock_step.name.should == '<animal> burning bright'
45
- end
46
-
47
- it "should leave the step name untouched if it has no placeholders" do
48
- mock_step = mock_step(:keyword => 'Given', :name => 'beauty too rich for earth too dear')
49
- mock_scenario = mock_scenario(:table_header => ["animal"], :steps => [mock_step] )
50
- outline = RowScenarioOutline.new(mock_feature, mock_scenario, ["tiger"], 1)
51
-
52
- RowStepOutline.should_receive(:new).with(outline, mock_step, 'beauty too rich for earth too dear', [], 1)
53
-
54
- outline.steps
55
- end
56
-
57
- it "should ensure that created steps do not contain values already used in previous steps" do
58
- mock_step_1 = mock_step(:keyword => 'Given', :name => '<animal> eating')
59
- mock_step_2 = mock_step(:keyword => 'Given', :name => 'eating <animal>')
60
- mock_scenario = mock_scenario(:table_header => ["animal"], :steps => [mock_step_1, mock_step_2] )
61
- outline = RowScenarioOutline.new(mock_feature, mock_scenario, ["tiger"], 1)
62
-
63
- RowStepOutline.should_receive(:new).with(anything, anything, anything, ['tiger'], anything)
64
- RowStepOutline.should_receive(:new).with(anything, anything, anything, [], anything)
65
-
66
- outline.steps
67
- end
68
-
69
- end
70
-
71
- end
72
- end
73
- end
@@ -1,55 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Tree
5
- describe RowScenario do
6
-
7
- def mock_scenario(stubs = {})
8
- mock('scenario', {:update_table_column_widths => nil, :steps => []}.merge(stubs))
9
- end
10
-
11
- describe "pending?" do
12
- before :each do
13
- @scenario = Scenario.new(nil, '', 1)
14
- @row_scenario = RowScenario.new(mock('feature'), @scenario, [], 1)
15
- end
16
-
17
- it "should return true if the template scenario has no steps" do
18
- @row_scenario.should be_pending
19
- end
20
-
21
- it "should return false if the template scenario has no steps" do
22
- @scenario.create_step('Given', 'a long step', 1)
23
- @row_scenario.should_not be_pending
24
- end
25
- end
26
-
27
- describe "generating row steps" do
28
-
29
- it "should cache unbound steps" do
30
- row_scenario = RowScenario.new(mock('feature'), mock_scenario, [], 1)
31
-
32
- row_scenario.steps.should equal(row_scenario.steps)
33
- end
34
-
35
- it "should cache bound steps" do
36
- mock_step = mock('step', :arity => 1)
37
- row_scenario = RowScenario.new(mock('feature'), mock_scenario(:steps => [mock_step]), [], 1)
38
-
39
- row_scenario.steps.should equal(row_scenario.steps)
40
- end
41
-
42
- it "should regenerate row steps when scenario template steps have been matched" do
43
- mock_step = mock('step', :arity => 0)
44
- row_scenario = RowScenario.new(mock('feature'), mock_scenario(:steps => [mock_step]), [], 1)
45
- unbound_steps = row_scenario.steps
46
- mock_step.stub!(:arity => 1)
47
-
48
- unbound_steps.should_not equal(row_scenario.steps)
49
- end
50
-
51
- end
52
-
53
- end
54
- end
55
- end
@@ -1,38 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Tree
5
- describe RowStepOutline do
6
-
7
- def mock_step(stubs = {})
8
- mock("step", {:extra_args => []}.merge(stubs))
9
- end
10
-
11
-
12
- it "should be a outline" do
13
- outline_row = RowStepOutline.new(mock("scenario"), mock_step, 'outline', [], 1)
14
-
15
- outline_row.should be_a_outline
16
- end
17
-
18
- it "should be a row step" do
19
- outline_row = RowStepOutline.new(mock("scenario"), mock_step, 'outline', [], 1)
20
-
21
- outline_row.should be_a_row
22
- end
23
-
24
- it "should have visible args" do
25
- outline_row = RowStepOutline.new(mock("scenario"), mock_step, 'outline', ["tiger", "night"], 1)
26
-
27
- outline_row.visible_args.should == ["tiger", "night"]
28
- end
29
-
30
- it "should have extra args" do
31
- outline_row = RowStepOutline.new(mock("scenario"), mock_step(:extra_args => ["extra", "arrrgs"]), 'outline', [], 1)
32
-
33
- outline_row.extra_args.should == ["extra", "arrrgs"]
34
- end
35
-
36
- end
37
- end
38
- end
@@ -1,50 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Cucumber
4
- module Tree
5
- describe ScenarioOutline do
6
-
7
- def mock_feature
8
- mock_feature = mock("feature")
9
- end
10
-
11
- def mock_scenario(stubs ={})
12
- mock("scenario", {:update_table_column_widths => nil}.merge(stubs))
13
- end
14
-
15
- it "should indicate its a scenario outline" do
16
- scenario_outline = ScenarioOutline.new(mock_feature, '', 1)
17
-
18
- scenario_outline.should be_a_outline
19
- end
20
-
21
- it "should create a step outline when adding new steps" do
22
- scenario_outline = ScenarioOutline.new(mock_feature, '', 1)
23
-
24
- StepOutline.should_receive(:new)
25
-
26
- scenario_outline.create_step('Given', '', 2)
27
- end
28
-
29
- it "should visit step outlines" do
30
- outline = ScenarioOutline.new(mock_feature, '', 1)
31
- outline.create_step('Given', '', 1)
32
- mock_visitor = mock('visitor')
33
-
34
- mock_visitor.should_receive(:visit_step_outline)
35
-
36
- outline.accept(mock_visitor)
37
- end
38
-
39
- it "should include indent when padding to step" do
40
- scenario = ScenarioOutline.new(mock_feature, '', 1)
41
- scenario.create_step('Given', 'a longish step', 1)
42
-
43
- #Scenario Outline: ****
44
- # Given a longish step
45
- scenario.padding_length.should == 4 + Scenario::INDENT
46
- end
47
-
48
- end
49
- end
50
- end