elight-cucumber 0.1.9

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 (186) hide show
  1. data/History.txt +150 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +186 -0
  4. data/README.txt +41 -0
  5. data/Rakefile +5 -0
  6. data/TODO.txt +26 -0
  7. data/bin/cucumber +4 -0
  8. data/config/hoe.rb +69 -0
  9. data/config/requirements.rb +15 -0
  10. data/cucumber.yml +1 -0
  11. data/examples/calculator/README.txt +5 -0
  12. data/examples/calculator/Rakefile +5 -0
  13. data/examples/calculator/features/addition.feature +17 -0
  14. data/examples/calculator/features/division.feature +10 -0
  15. data/examples/calculator/features/steps/calculator_steps.rb +31 -0
  16. data/examples/calculator/lib/calculator.rb +16 -0
  17. data/examples/calculator_ruby_features/Rakefile +6 -0
  18. data/examples/calculator_ruby_features/features/addition.rb +23 -0
  19. data/examples/calculator_ruby_features/features/steps/calculator_steps.rb +43 -0
  20. data/examples/calculatrice_francaise_avec_soit_scenario/Rakefile +6 -0
  21. data/examples/calculatrice_francaise_avec_soit_scenario/features/addition.feature +13 -0
  22. data/examples/calculatrice_francaise_avec_soit_scenario/features/calculatrice_steps.rb +31 -0
  23. data/examples/chinese_simplified_calculator/Rakefile +6 -0
  24. data/examples/chinese_simplified_calculator/features/addition.feature +17 -0
  25. data/examples/chinese_simplified_calculator/features/steps/calculator_steps.rb +24 -0
  26. data/examples/chinese_simplified_calculator/lib/calculator.rb +10 -0
  27. data/examples/cs/README.textile +22 -0
  28. data/examples/cs/Rakefile +12 -0
  29. data/examples/cs/features/hello.feature +11 -0
  30. data/examples/cs/features/steps/hello_steps.rb +25 -0
  31. data/examples/cs/features/steps/tree_steps.rb +14 -0
  32. data/examples/cs/features/tree.feature +9 -0
  33. data/examples/cs/src/Hello.cs +18 -0
  34. data/examples/danish_calculator/Rakefile +6 -0
  35. data/examples/danish_calculator/features/steps/kalkulator_steps.rb +22 -0
  36. data/examples/danish_calculator/features/summering.feature +17 -0
  37. data/examples/danish_calculator/lib/kalkulator.rb +11 -0
  38. data/examples/dos_line_endings/Rakefile +6 -0
  39. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
  40. data/examples/estonian_calculator/Rakefile +6 -0
  41. data/examples/estonian_calculator/features/kalkulaator_steps.rb +35 -0
  42. data/examples/estonian_calculator/features/liitmine.feature +16 -0
  43. data/examples/japanese_calculator/README.txt +5 -0
  44. data/examples/japanese_calculator/Rakefile +6 -0
  45. data/examples/japanese_calculator/features/addition.feature +17 -0
  46. data/examples/japanese_calculator/features/division.feature +10 -0
  47. data/examples/japanese_calculator/features/steps/calculator_steps.rb +30 -0
  48. data/examples/japanese_calculator/lib/calculator.rb +16 -0
  49. data/examples/java/README.textile +22 -0
  50. data/examples/java/Rakefile +12 -0
  51. data/examples/java/features/hello.feature +11 -0
  52. data/examples/java/features/steps/hello_steps.rb +25 -0
  53. data/examples/java/features/steps/tree_steps.rb +14 -0
  54. data/examples/java/features/tree.feature +9 -0
  55. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  56. data/examples/norwegian_calculator/Rakefile +6 -0
  57. data/examples/norwegian_calculator/features/steps/kalkulator_steps.rb +22 -0
  58. data/examples/norwegian_calculator/features/summering.feature +17 -0
  59. data/examples/norwegian_calculator/lib/kalkulator.rb +11 -0
  60. data/examples/portuguese_calculator/Rakefile +6 -0
  61. data/examples/portuguese_calculator/features/adicao.feature +10 -0
  62. data/examples/portuguese_calculator/features/calculadora_steps.rb +31 -0
  63. data/examples/selenium/Rakefile +6 -0
  64. data/examples/selenium/features/search.feature +9 -0
  65. data/examples/selenium/features/steps/stories_steps.rb +41 -0
  66. data/examples/spanish_calculator/Rakefile +6 -0
  67. data/examples/spanish_calculator/features/adicion.feature +17 -0
  68. data/examples/spanish_calculator/features/steps/calculador_steps.rb +22 -0
  69. data/examples/swedish_calculator/Rakefile +5 -0
  70. data/examples/swedish_calculator/features/steps/kalkulator_steps.rb +22 -0
  71. data/examples/swedish_calculator/features/summering.feature +17 -0
  72. data/examples/swedish_calculator/lib/kalkulator.rb +11 -0
  73. data/examples/tickets/Rakefile +11 -0
  74. data/examples/tickets/cucumber.yml +2 -0
  75. data/examples/tickets/features/steps/tickets_steps.rb +32 -0
  76. data/examples/tickets/features/tickets.feature +22 -0
  77. data/examples/watir/Rakefile +6 -0
  78. data/examples/watir/features/search.feature +9 -0
  79. data/examples/watir/features/steps/stories_steps.rb +51 -0
  80. data/features/see_features.feature +8 -0
  81. data/features/steps/features_steps.rb +9 -0
  82. data/gem_tasks/deployment.rake +34 -0
  83. data/gem_tasks/environment.rake +7 -0
  84. data/gem_tasks/features.rake +6 -0
  85. data/gem_tasks/fix_cr_lf.rake +10 -0
  86. data/gem_tasks/flog.rake +4 -0
  87. data/gem_tasks/gemspec.rake +6 -0
  88. data/gem_tasks/rspec.rake +21 -0
  89. data/gem_tasks/treetop.rake +49 -0
  90. data/lib/cucumber.rb +35 -0
  91. data/lib/cucumber/cli.rb +191 -0
  92. data/lib/cucumber/core_ext/proc.rb +55 -0
  93. data/lib/cucumber/core_ext/string.rb +22 -0
  94. data/lib/cucumber/executor.rb +143 -0
  95. data/lib/cucumber/formatters.rb +1 -0
  96. data/lib/cucumber/formatters/ansicolor.rb +112 -0
  97. data/lib/cucumber/formatters/cucumber.css +132 -0
  98. data/lib/cucumber/formatters/cucumber.js +11 -0
  99. data/lib/cucumber/formatters/html_formatter.rb +128 -0
  100. data/lib/cucumber/formatters/jquery.js +32 -0
  101. data/lib/cucumber/formatters/pretty_formatter.rb +211 -0
  102. data/lib/cucumber/formatters/profile_formatter.rb +92 -0
  103. data/lib/cucumber/formatters/progress_formatter.rb +51 -0
  104. data/lib/cucumber/languages.yml +142 -0
  105. data/lib/cucumber/model.rb +1 -0
  106. data/lib/cucumber/model/table.rb +28 -0
  107. data/lib/cucumber/rails/rspec.rb +12 -0
  108. data/lib/cucumber/rails/world.rb +73 -0
  109. data/lib/cucumber/rake/task.rb +75 -0
  110. data/lib/cucumber/step_methods.rb +49 -0
  111. data/lib/cucumber/step_mother.rb +83 -0
  112. data/lib/cucumber/tree.rb +18 -0
  113. data/lib/cucumber/tree/feature.rb +60 -0
  114. data/lib/cucumber/tree/features.rb +21 -0
  115. data/lib/cucumber/tree/given_scenario.rb +13 -0
  116. data/lib/cucumber/tree/scenario.rb +150 -0
  117. data/lib/cucumber/tree/step.rb +133 -0
  118. data/lib/cucumber/tree/table.rb +26 -0
  119. data/lib/cucumber/tree/top_down_visitor.rb +23 -0
  120. data/lib/cucumber/treetop_parser/feature.treetop.erb +201 -0
  121. data/lib/cucumber/treetop_parser/feature_da.rb +1593 -0
  122. data/lib/cucumber/treetop_parser/feature_de.rb +1593 -0
  123. data/lib/cucumber/treetop_parser/feature_en-tx.rb +1593 -0
  124. data/lib/cucumber/treetop_parser/feature_en.rb +1593 -0
  125. data/lib/cucumber/treetop_parser/feature_es.rb +1593 -0
  126. data/lib/cucumber/treetop_parser/feature_et.rb +1593 -0
  127. data/lib/cucumber/treetop_parser/feature_fr.rb +1593 -0
  128. data/lib/cucumber/treetop_parser/feature_ja.rb +1593 -0
  129. data/lib/cucumber/treetop_parser/feature_nl.rb +1593 -0
  130. data/lib/cucumber/treetop_parser/feature_no.rb +1593 -0
  131. data/lib/cucumber/treetop_parser/feature_parser.rb +34 -0
  132. data/lib/cucumber/treetop_parser/feature_pt.rb +1593 -0
  133. data/lib/cucumber/treetop_parser/feature_ru.rb +1593 -0
  134. data/lib/cucumber/treetop_parser/feature_se.rb +1593 -0
  135. data/lib/cucumber/treetop_parser/feature_zh-CN.rb +1593 -0
  136. data/lib/cucumber/version.rb +9 -0
  137. data/rails_generators/cucumber/cucumber_generator.rb +29 -0
  138. data/rails_generators/cucumber/templates/common_webrat.rb +42 -0
  139. data/rails_generators/cucumber/templates/cucumber +2 -0
  140. data/rails_generators/cucumber/templates/cucumber.rake +12 -0
  141. data/rails_generators/cucumber/templates/cucumber.yml +1 -0
  142. data/rails_generators/cucumber/templates/env.rb +8 -0
  143. data/rails_generators/feature/feature_generator.rb +17 -0
  144. data/rails_generators/feature/templates/feature.erb +28 -0
  145. data/rails_generators/feature/templates/steps.erb +22 -0
  146. data/script/console +10 -0
  147. data/script/console.cmd +1 -0
  148. data/script/destroy +14 -0
  149. data/script/destroy.cmd +1 -0
  150. data/script/generate +14 -0
  151. data/script/generate.cmd +1 -0
  152. data/script/txt2html +74 -0
  153. data/script/txt2html.cmd +1 -0
  154. data/setup.rb +1585 -0
  155. data/spec/cucumber/cli_spec.rb +56 -0
  156. data/spec/cucumber/core_ext/proc_spec.rb +45 -0
  157. data/spec/cucumber/core_ext/string_spec.rb +34 -0
  158. data/spec/cucumber/executor_spec.rb +130 -0
  159. data/spec/cucumber/formatters/ansicolor_spec.rb +35 -0
  160. data/spec/cucumber/formatters/features.html +269 -0
  161. data/spec/cucumber/formatters/html_formatter_spec.rb +74 -0
  162. data/spec/cucumber/formatters/pretty_formatter_spec.rb +111 -0
  163. data/spec/cucumber/formatters/profile_formatter_spec.rb +193 -0
  164. data/spec/cucumber/formatters/progress_formatter_spec.rb +45 -0
  165. data/spec/cucumber/model/table_spec.rb +20 -0
  166. data/spec/cucumber/rails/stubs/mini_rails.rb +17 -0
  167. data/spec/cucumber/rails/stubs/test_help.rb +1 -0
  168. data/spec/cucumber/rails/world_spec.rb +11 -0
  169. data/spec/cucumber/sell_cucumbers.feature +9 -0
  170. data/spec/cucumber/step_mother_spec.rb +53 -0
  171. data/spec/cucumber/tree/feature_spec.rb +12 -0
  172. data/spec/cucumber/tree/scenario_spec.rb +37 -0
  173. data/spec/cucumber/tree/step_spec.rb +31 -0
  174. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  175. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  176. data/spec/cucumber/treetop_parser/feature_parser_spec.rb +96 -0
  177. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  178. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  179. data/spec/cucumber/treetop_parser/multiline_steps.feature +13 -0
  180. data/spec/cucumber/treetop_parser/multiple_tables.feature +29 -0
  181. data/spec/cucumber/treetop_parser/spaces.feature +10 -0
  182. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  183. data/spec/cucumber/treetop_parser/with_comments.feature +10 -0
  184. data/spec/spec.opts +2 -0
  185. data/spec/spec_helper.rb +19 -0
  186. metadata +288 -0
@@ -0,0 +1 @@
1
+ # This file is loaded by rails/world.rb
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ $:.unshift(File.dirname(__FILE__) + '/stubs')
3
+
4
+ describe "Rails world" do
5
+
6
+ it "should run without Test::Unit.run defined" do
7
+ require "mini_rails"
8
+ require "cucumber/rails/world"
9
+ end
10
+
11
+ end
@@ -0,0 +1,9 @@
1
+ Feature: Sell cucumbers
2
+ As a cucumber farmer
3
+ I want to sell cucumbers
4
+ So that I buy meat
5
+
6
+ Scenario: Sell a dozen
7
+ Given there are 5 cucumbers
8
+ When I sell 12 cucumbers
9
+ Then I should owe 7 cucumbers
@@ -0,0 +1,53 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ module Cucumber
4
+ 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
19
+ end
20
+
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|
25
+ end
26
+
27
+ m.register_step_proc /Three blind (.*)/ do |animal|
28
+ end
29
+
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":
35
+
36
+ .+step_mother_spec\.rb:24:in `/Three \(\.\*\) mice/'
37
+ .+step_mother_spec\.rb:27:in `/Three blind \(\.\*\)/'
38
+
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
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Cucumber
4
+ module Tree
5
+ describe Feature do
6
+ it "should have padding_length 2 when alone" do
7
+ feature = Feature.new('header')
8
+ feature.padding_length.should == 2
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Cucumber
4
+ module Tree
5
+ describe Scenario do
6
+ xit "should reuse steps in GivenScenario" do
7
+ given_scenario = GivenScenario.new(scenario_2, "First", 99)
8
+
9
+ scenario_2.create_step(given_scenario)
10
+ scenario_2.create_step(step_a)
11
+ scenario_2.steps.should == [step_1, step_2, step_a]
12
+ end
13
+
14
+ it "should have padding_length 2 when alone" do
15
+ scenario = Scenario.new(nil, 'test', 1)
16
+ scenario.padding_length.should == 2
17
+ end
18
+
19
+ it "should include indent when padding to step" do
20
+ scenario = Scenario.new(nil, '', 1)
21
+ scenario.create_step('Given', 'a long step', 1)
22
+
23
+ #Scenario: ***********
24
+ # Given a long step
25
+ scenario.padding_length.should == 9 + 2 #Allow for indent
26
+ end
27
+
28
+ it "should ignore step padding if scenario is longer than all steps" do
29
+ scenario = Scenario.new(nil, 'Very long scenario and then some', 1)
30
+ scenario.create_step('Given', 'test', 1)
31
+
32
+ scenario.padding_length.should == 2
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Cucumber
4
+ module Tree
5
+ describe Step do
6
+ it "should have padding_length 2 when alone" do
7
+ scenario = Scenario.new(nil, nil, 1)
8
+ step = scenario.create_step('Given', '666666', 98)
9
+ step.padding_length.should == 2
10
+ end
11
+
12
+ it "should have padding_length 5 when 3 shorter" do
13
+ scenario = Scenario.new(nil, nil, 1)
14
+ long = scenario.create_step('Given', '999999999', 80)
15
+ step = scenario.create_step('Given', '666666', 98)
16
+ step.padding_length.should == 5
17
+ end
18
+
19
+ it "should remove indent from padding_length if padding to scenario" do
20
+ scenario = Scenario.new(nil, '9', 1)
21
+ step = scenario.create_step('Given', '9', 80)
22
+
23
+ #Scenario: 9 #
24
+ # Given 9****
25
+ step.padding_length.should == 4
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+
@@ -0,0 +1,4 @@
1
+ Feature: No scenarios yet
2
+ I order to ...
3
+ As a ...
4
+ I want to ...
@@ -0,0 +1,9 @@
1
+ Feature: Empty scenarios should work
2
+
3
+ Scenario: Complete scenario
4
+ Given a valid API key
5
+
6
+ Scenario: Will write at somepoint
7
+
8
+ Scenario: Another Complete scenario
9
+ Given an invalid API key
@@ -0,0 +1,96 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Cucumber
4
+ module TreetopParser
5
+ describe FeatureParser do
6
+ it "should parse features with weird spaces" do
7
+ p = FeatureParser.new
8
+ f = p.parse_feature(File.dirname(__FILE__) + '/spaces.feature')
9
+ f.header.should == "Some title"
10
+ f.should have(2).scenarios
11
+
12
+ first = f.scenarios[0]
13
+ first.name.should == "first"
14
+ first.should have(1).steps
15
+ first.steps[0].name.should == "a"
16
+
17
+ second = f.scenarios[1]
18
+ second.name.should == "second"
19
+ second.should have(1).steps
20
+ second.steps[0].name.should == "b"
21
+ end
22
+
23
+ it "should parse GivenScenario" do
24
+ p = FeatureParser.new
25
+ f = p.parse_feature(File.dirname(__FILE__) + '/given_scenario.feature')
26
+
27
+ f.header.should == "Some title"
28
+ f.should have(2).scenarios
29
+
30
+ first = f.scenarios[0]
31
+ first.should have(2).steps
32
+
33
+ second = f.scenarios[1]
34
+ second.should have(3).steps
35
+ end
36
+
37
+ it "should allow spaces between FIT values" do
38
+ p = FeatureParser.new
39
+ Cucumber::Tree::RowScenario.should_receive(:new).with(anything, anything, ['I can have spaces'], anything)
40
+
41
+ f = p.parse_feature(File.dirname(__FILE__) + '/fit_scenario.feature')
42
+ end
43
+
44
+ it "should allow comments in feature files" do
45
+ p = FeatureParser.new
46
+ f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
47
+ f.scenarios[0].should have(2).steps
48
+ end
49
+
50
+ it "should skip comments in feature header" do
51
+ p = FeatureParser.new
52
+ f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
53
+ f.header.should == "Some header"
54
+ end
55
+
56
+ it "should skip comments in scenario header" do
57
+ p = FeatureParser.new
58
+ f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
59
+ f.scenarios[0].name.should == "Some scenario"
60
+ end
61
+
62
+ it "should allow empty scenarios" do
63
+ p = FeatureParser.new
64
+ f = p.parse_feature(File.dirname(__FILE__) + '/empty_scenario.feature')
65
+ f.scenarios[0].should have(1).steps
66
+ f.scenarios[1].should have(0).steps
67
+ f.scenarios[2].should have(1).steps
68
+ end
69
+
70
+ it "should allow multiple tables" do
71
+ p = FeatureParser.new
72
+ f = p.parse_feature(File.dirname(__FILE__) + '/multiple_tables.feature')
73
+ f.should have(6).scenarios
74
+ f.scenarios[0].should have(5).steps
75
+ end
76
+
77
+ it "should allow empty features" do
78
+ p = FeatureParser.new
79
+ f = p.parse_feature(File.dirname(__FILE__) + '/empty_feature.feature')
80
+ f.should have(0).scenarios
81
+ end
82
+
83
+ it "should parse features with dos line endings" do
84
+ p = FeatureParser.new
85
+ f = p.parse_feature(File.dirname(__FILE__) + '/test_dos.feature')
86
+ f.should have(5).scenarios
87
+ end
88
+
89
+ it "should parse multiline steps" do
90
+ p = FeatureParser.new
91
+ f = p.parse_feature(File.dirname(__FILE__) + '/multiline_steps.feature')
92
+ f.should have(1).scenarios
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,8 @@
1
+ Some title
2
+
3
+ Scenario: second
4
+ Given 'bind me please'
5
+
6
+ More Examples:
7
+ |c|
8
+ |I can have spaces|
@@ -0,0 +1,9 @@
1
+ Some title
2
+
3
+ Scenario: first
4
+ Given a
5
+ Given b
6
+
7
+ Scenario: second
8
+ GivenScenario: first
9
+ Given c
@@ -0,0 +1,13 @@
1
+ Feature: Multiline steps should work
2
+
3
+ Scenario: Reading a table
4
+ Given the following table
5
+ | where | why |
6
+ | Oslo | born |
7
+ | London| working |
8
+ Then I should be working in London
9
+ And I should be born in Oslo
10
+ And I should be able to expect
11
+ "A string
12
+ that spans
13
+ several lines"
@@ -0,0 +1,29 @@
1
+ Feature: Addition
2
+ In order to avoid silly mistakes
3
+ As a math idiot
4
+ I want to be told the sum of two numbers
5
+
6
+ Scenario: Add two numbers
7
+ Given I have entered 50 into the calculator
8
+ And I have entered 70 into the calculator
9
+ When I press add
10
+ Then the result should be 120 on the screen
11
+ And the result class should be Fixnum
12
+
13
+ More Examples:
14
+ | input_1 | input_2 | button | output | class |
15
+ | 20 | 30 | add | 50 | Fixnum |
16
+ | 2 | 5 | add | 7 | Fixnum |
17
+ | 0 | 40 | add | 40 | Fixnum |
18
+
19
+ Scenario: Add three numbers
20
+ Given I have entered 25 into the calculator
21
+ And I have entered 12 into the calculator
22
+ And I have entered 13 into the calculator
23
+ When I press add
24
+ Then the result should be 50 on the screen
25
+ And the result class should be Fixnum
26
+
27
+ More Examples:
28
+ | input_1 | input_2 | input_3 | button | output | class |
29
+ | 1 | 2 | 3 | add | 6 | Fixnum |
@@ -0,0 +1,10 @@
1
+ Some title
2
+
3
+ Scenario: first
4
+
5
+ Given a
6
+
7
+ Scenario: second
8
+
9
+ Given b
10
+
@@ -0,0 +1,25 @@
1
+ Feature: Search
2
+ In order to learn cucumber
3
+ As an engineer
4
+ I want to run some simple tests
5
+
6
+ Scenario: 1) Reverse a String
7
+ Given a string "abc"
8
+ When the string is reversed
9
+ Then the string should be "cba"
10
+
11
+ More Examples:
12
+ |input |output|
13
+ |a |a |
14
+ |ab |ba |
15
+
16
+ Scenario: 2) Upcase a String
17
+ Given a string "abc"
18
+ When the string is upcased
19
+ Then the string should be "ABC"
20
+
21
+ Scenario: 3) Combining 2 Methods
22
+ Given a string "abc"
23
+ When the string is upcased
24
+ And the string is reversed
25
+ Then the string should be "CBA"
@@ -0,0 +1,10 @@
1
+ # Header title
2
+ # Two lines
3
+ Some header
4
+
5
+ # Scenario header
6
+ # on two lines
7
+ Scenario: Some scenario
8
+ Given one
9
+ # When two
10
+ Then three
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --diff
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ gem 'rspec'
3
+ require 'spec'
4
+
5
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
6
+ require 'cucumber'
7
+ require 'cucumber/treetop_parser/feature_en'
8
+ Cucumber.load_language('en')
9
+
10
+ ::Term::ANSIColor.coloring = false
11
+
12
+ # Open up the tree classes a little for easier inspection.
13
+ module Cucumber
14
+ module Tree
15
+ class Feature
16
+ attr_reader :header, :scenarios
17
+ end
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,288 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elight-cucumber
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.9
5
+ platform: ruby
6
+ authors:
7
+ - "Aslak Helles\xC3\xB8y"
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-09-30 00:00:00 -07:00
13
+ default_executable: cucumber
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: term-ansicolor
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.3
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: treetop
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.2.4
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.4
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: diff-lcs
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.1.2
50
+ version:
51
+ - !ruby/object:Gem::Dependency
52
+ name: hoe
53
+ version_requirement:
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: 1.7.0
59
+ version:
60
+ description: Executable Feature scenarios
61
+ email:
62
+ - aslak.hellesoy@gmail.com
63
+ executables:
64
+ - cucumber
65
+ extensions: []
66
+
67
+ extra_rdoc_files:
68
+ - History.txt
69
+ - License.txt
70
+ - Manifest.txt
71
+ - README.txt
72
+ - TODO.txt
73
+ files:
74
+ - History.txt
75
+ - License.txt
76
+ - Manifest.txt
77
+ - README.txt
78
+ - Rakefile
79
+ - TODO.txt
80
+ - bin/cucumber
81
+ - config/hoe.rb
82
+ - config/requirements.rb
83
+ - cucumber.yml
84
+ - examples/calculator/README.txt
85
+ - examples/calculator/Rakefile
86
+ - examples/calculator/features/addition.feature
87
+ - examples/calculator/features/division.feature
88
+ - examples/calculator/features/steps/calculator_steps.rb
89
+ - examples/calculator/lib/calculator.rb
90
+ - examples/calculator_ruby_features/Rakefile
91
+ - examples/calculator_ruby_features/features/addition.rb
92
+ - examples/calculator_ruby_features/features/steps/calculator_steps.rb
93
+ - examples/calculatrice_francaise_avec_soit_scenario/Rakefile
94
+ - examples/calculatrice_francaise_avec_soit_scenario/features/addition.feature
95
+ - examples/calculatrice_francaise_avec_soit_scenario/features/calculatrice_steps.rb
96
+ - examples/chinese_simplified_calculator/Rakefile
97
+ - examples/chinese_simplified_calculator/features/addition.feature
98
+ - examples/chinese_simplified_calculator/features/steps/calculator_steps.rb
99
+ - examples/chinese_simplified_calculator/lib/calculator.rb
100
+ - examples/cs/README.textile
101
+ - examples/cs/Rakefile
102
+ - examples/cs/features/hello.feature
103
+ - examples/cs/features/steps/hello_steps.rb
104
+ - examples/cs/features/steps/tree_steps.rb
105
+ - examples/cs/features/tree.feature
106
+ - examples/cs/src/Hello.cs
107
+ - examples/danish_calculator/Rakefile
108
+ - examples/danish_calculator/features/steps/kalkulator_steps.rb
109
+ - examples/danish_calculator/features/summering.feature
110
+ - examples/danish_calculator/lib/kalkulator.rb
111
+ - examples/dos_line_endings/Rakefile
112
+ - examples/dos_line_endings/features/dos_line_endings.feature
113
+ - examples/estonian_calculator/Rakefile
114
+ - examples/estonian_calculator/features/kalkulaator_steps.rb
115
+ - examples/estonian_calculator/features/liitmine.feature
116
+ - examples/japanese_calculator/README.txt
117
+ - examples/japanese_calculator/Rakefile
118
+ - examples/japanese_calculator/features/addition.feature
119
+ - examples/japanese_calculator/features/division.feature
120
+ - examples/japanese_calculator/features/steps/calculator_steps.rb
121
+ - examples/japanese_calculator/lib/calculator.rb
122
+ - examples/java/README.textile
123
+ - examples/java/Rakefile
124
+ - examples/java/features/hello.feature
125
+ - examples/java/features/steps/hello_steps.rb
126
+ - examples/java/features/steps/tree_steps.rb
127
+ - examples/java/features/tree.feature
128
+ - examples/java/src/cucumber/demo/Hello.java
129
+ - examples/norwegian_calculator/Rakefile
130
+ - examples/norwegian_calculator/features/steps/kalkulator_steps.rb
131
+ - examples/norwegian_calculator/features/summering.feature
132
+ - examples/norwegian_calculator/lib/kalkulator.rb
133
+ - examples/portuguese_calculator/Rakefile
134
+ - examples/portuguese_calculator/features/adicao.feature
135
+ - examples/portuguese_calculator/features/calculadora_steps.rb
136
+ - examples/selenium/Rakefile
137
+ - examples/selenium/features/search.feature
138
+ - examples/selenium/features/steps/stories_steps.rb
139
+ - examples/spanish_calculator/Rakefile
140
+ - examples/spanish_calculator/features/adicion.feature
141
+ - examples/spanish_calculator/features/steps/calculador_steps.rb
142
+ - examples/spanish_calculator/lib/Calculador.rb
143
+ - examples/swedish_calculator/Rakefile
144
+ - examples/swedish_calculator/features/steps/kalkulator_steps.rb
145
+ - examples/swedish_calculator/features/summering.feature
146
+ - examples/swedish_calculator/lib/kalkulator.rb
147
+ - examples/tickets/Rakefile
148
+ - examples/tickets/cucumber.yml
149
+ - examples/tickets/features/steps/tickets_steps.rb
150
+ - examples/tickets/features/tickets.feature
151
+ - examples/watir/Rakefile
152
+ - examples/watir/features/search.feature
153
+ - examples/watir/features/steps/stories_steps.rb
154
+ - features/see_features.feature
155
+ - features/steps/features_steps.rb
156
+ - gem_tasks/deployment.rake
157
+ - gem_tasks/environment.rake
158
+ - gem_tasks/features.rake
159
+ - gem_tasks/fix_cr_lf.rake
160
+ - gem_tasks/flog.rake
161
+ - gem_tasks/gemspec.rake
162
+ - gem_tasks/rspec.rake
163
+ - gem_tasks/treetop.rake
164
+ - lib/cucumber.rb
165
+ - lib/cucumber/cli.rb
166
+ - lib/cucumber/core_ext/proc.rb
167
+ - lib/cucumber/core_ext/string.rb
168
+ - lib/cucumber/executor.rb
169
+ - lib/cucumber/formatters.rb
170
+ - lib/cucumber/formatters/ansicolor.rb
171
+ - lib/cucumber/formatters/cucumber.css
172
+ - lib/cucumber/formatters/cucumber.js
173
+ - lib/cucumber/formatters/html_formatter.rb
174
+ - lib/cucumber/formatters/jquery.js
175
+ - lib/cucumber/formatters/pretty_formatter.rb
176
+ - lib/cucumber/formatters/profile_formatter.rb
177
+ - lib/cucumber/formatters/progress_formatter.rb
178
+ - lib/cucumber/languages.yml
179
+ - lib/cucumber/model.rb
180
+ - lib/cucumber/model/table.rb
181
+ - lib/cucumber/rails/rspec.rb
182
+ - lib/cucumber/rails/world.rb
183
+ - lib/cucumber/rake/task.rb
184
+ - lib/cucumber/step_methods.rb
185
+ - lib/cucumber/step_mother.rb
186
+ - lib/cucumber/tree.rb
187
+ - lib/cucumber/tree/feature.rb
188
+ - lib/cucumber/tree/features.rb
189
+ - lib/cucumber/tree/given_scenario.rb
190
+ - lib/cucumber/tree/scenario.rb
191
+ - lib/cucumber/tree/step.rb
192
+ - lib/cucumber/tree/table.rb
193
+ - lib/cucumber/tree/top_down_visitor.rb
194
+ - lib/cucumber/treetop_parser/feature.treetop.erb
195
+ - lib/cucumber/treetop_parser/feature_da.rb
196
+ - lib/cucumber/treetop_parser/feature_de.rb
197
+ - lib/cucumber/treetop_parser/feature_en-tx.rb
198
+ - lib/cucumber/treetop_parser/feature_en.rb
199
+ - lib/cucumber/treetop_parser/feature_es.rb
200
+ - lib/cucumber/treetop_parser/feature_et.rb
201
+ - lib/cucumber/treetop_parser/feature_fr.rb
202
+ - lib/cucumber/treetop_parser/feature_ja.rb
203
+ - lib/cucumber/treetop_parser/feature_nl.rb
204
+ - lib/cucumber/treetop_parser/feature_no.rb
205
+ - lib/cucumber/treetop_parser/feature_parser.rb
206
+ - lib/cucumber/treetop_parser/feature_pt.rb
207
+ - lib/cucumber/treetop_parser/feature_ru.rb
208
+ - lib/cucumber/treetop_parser/feature_se.rb
209
+ - lib/cucumber/treetop_parser/feature_zh-CN.rb
210
+ - lib/cucumber/version.rb
211
+ - rails_generators/cucumber/cucumber_generator.rb
212
+ - rails_generators/cucumber/templates/common_webrat.rb
213
+ - rails_generators/cucumber/templates/cucumber
214
+ - rails_generators/cucumber/templates/cucumber.rake
215
+ - rails_generators/cucumber/templates/env.rb
216
+ - rails_generators/cucumber/templates/cucumber.yml
217
+ - rails_generators/feature/feature_generator.rb
218
+ - rails_generators/feature/templates/feature.erb
219
+ - rails_generators/feature/templates/steps.erb
220
+ - script/console
221
+ - script/console.cmd
222
+ - script/destroy
223
+ - script/destroy.cmd
224
+ - script/generate
225
+ - script/generate.cmd
226
+ - script/txt2html
227
+ - script/txt2html.cmd
228
+ - setup.rb
229
+ - spec/cucumber/cli_spec.rb
230
+ - spec/cucumber/core_ext/proc_spec.rb
231
+ - spec/cucumber/core_ext/string_spec.rb
232
+ - spec/cucumber/executor_spec.rb
233
+ - spec/cucumber/formatters/ansicolor_spec.rb
234
+ - spec/cucumber/formatters/features.html
235
+ - spec/cucumber/formatters/html_formatter_spec.rb
236
+ - spec/cucumber/formatters/pretty_formatter_spec.rb
237
+ - spec/cucumber/formatters/profile_formatter_spec.rb
238
+ - spec/cucumber/formatters/progress_formatter_spec.rb
239
+ - spec/cucumber/model/table_spec.rb
240
+ - spec/cucumber/rails/stubs/mini_rails.rb
241
+ - spec/cucumber/rails/stubs/test_help.rb
242
+ - spec/cucumber/rails/world_spec.rb
243
+ - spec/cucumber/sell_cucumbers.feature
244
+ - spec/cucumber/step_mother_spec.rb
245
+ - spec/cucumber/tree/feature_spec.rb
246
+ - spec/cucumber/tree/scenario_spec.rb
247
+ - spec/cucumber/tree/step_spec.rb
248
+ - spec/cucumber/treetop_parser/empty_feature.feature
249
+ - spec/cucumber/treetop_parser/empty_scenario.feature
250
+ - spec/cucumber/treetop_parser/feature_parser_spec.rb
251
+ - spec/cucumber/treetop_parser/fit_scenario.feature
252
+ - spec/cucumber/treetop_parser/given_scenario.feature
253
+ - spec/cucumber/treetop_parser/multiline_steps.feature
254
+ - spec/cucumber/treetop_parser/multiple_tables.feature
255
+ - spec/cucumber/treetop_parser/spaces.feature
256
+ - spec/cucumber/treetop_parser/test_dos.feature
257
+ - spec/cucumber/treetop_parser/with_comments.feature
258
+ - spec/spec.opts
259
+ - spec/spec_helper.rb
260
+ has_rdoc: true
261
+ homepage: http://github.com/aslakhellesoy/cucumber
262
+ post_install_message:
263
+ rdoc_options:
264
+ - --main
265
+ - README.txt
266
+ require_paths:
267
+ - lib
268
+ required_ruby_version: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: "0"
273
+ version:
274
+ required_rubygems_version: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: "0"
279
+ version:
280
+ requirements: []
281
+
282
+ rubyforge_project: cucumber
283
+ rubygems_version: 1.2.0
284
+ signing_key:
285
+ specification_version: 2
286
+ summary: Executable Feature scenarios
287
+ test_files: []
288
+