kosmas58-cucumber 0.2.0.1 → 0.2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/History.txt +32 -1
  2. data/Manifest.txt +4 -11
  3. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -9
  4. data/examples/pure_java/README.textile +5 -0
  5. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  6. data/examples/sinatra/features/support/env.rb +6 -2
  7. data/examples/tickets/features/248.feature +11 -0
  8. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  9. data/features/cucumber_cli.feature +1 -1
  10. data/features/custom_formatter.feature +2 -2
  11. data/features/usage.feature +108 -0
  12. data/gem_tasks/features.rake +18 -6
  13. data/lib/autotest/cucumber_mixin.rb +1 -1
  14. data/lib/cucumber/ast/feature.rb +1 -1
  15. data/lib/cucumber/ast/features.rb +6 -0
  16. data/lib/cucumber/ast/step.rb +4 -0
  17. data/lib/cucumber/ast/step_invocation.rb +10 -2
  18. data/lib/cucumber/ast/table.rb +4 -0
  19. data/lib/cucumber/cli/configuration.rb +11 -14
  20. data/lib/cucumber/cli/main.rb +14 -21
  21. data/lib/cucumber/core_ext/exception.rb +1 -1
  22. data/lib/cucumber/formatter.rb +1 -1
  23. data/lib/cucumber/formatter/html.rb +47 -8
  24. data/lib/cucumber/formatter/pretty.rb +1 -2
  25. data/lib/cucumber/formatter/rerun.rb +8 -0
  26. data/lib/cucumber/formatter/usage.rb +69 -0
  27. data/lib/cucumber/languages.yml +7 -2
  28. data/lib/cucumber/rails/world.rb +22 -21
  29. data/lib/cucumber/step_definition.rb +65 -54
  30. data/lib/cucumber/step_match.rb +10 -2
  31. data/lib/cucumber/step_mother.rb +4 -10
  32. data/lib/cucumber/version.rb +1 -1
  33. data/rails_generators/cucumber/templates/env.rb +2 -0
  34. data/rails_generators/feature/templates/steps.erb +1 -1
  35. data/spec/cucumber/ast/feature_spec.rb +2 -1
  36. data/spec/cucumber/cli/configuration_spec.rb +18 -6
  37. data/spec/cucumber/cli/main_spec.rb +1 -14
  38. data/spec/cucumber/parser/feature_parser_spec.rb +15 -15
  39. data/spec/cucumber/step_definition_spec.rb +21 -9
  40. data/spec/cucumber/step_mother_spec.rb +17 -1
  41. metadata +8 -13
  42. data/examples/jbehave/README.textile +0 -20
  43. data/examples/jbehave/features/support/env.rb +0 -7
  44. data/examples/jbehave/features/trading.feature +0 -28
  45. data/examples/jbehave/pom.xml +0 -53
  46. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +0 -32
  47. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +0 -42
  48. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +0 -29
  49. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +0 -22
  50. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +0 -70
  51. data/gem_tasks/jar.rake +0 -67
  52. data/lib/cucumber/jbehave.rb +0 -97
data/History.txt CHANGED
@@ -1,8 +1,39 @@
1
- == 0.2.1 (In Git)
1
+ == 0.2.3 (In Git)
2
+
3
+ === New features
4
+ * Ambiguous step errors hint about --guess (unless --guess already on) (Aslak Hellesøy)
5
+ * Updated language for Dutch (Bart Zonneveld)
6
+ * Updated language for Italian (Alessandro Baroni)
7
+ * Updated language for Japanese (KAKUTANI Shintaro)
8
+
9
+ == 0.2.2 2009-03-25
10
+
11
+ This release includes some minor changes to make Cucumber work with pure Java. Cucumber
12
+ has already worked with Java for a while (using JRuby and step definitions in Ruby),
13
+ but now you can write step definitions in pure Java!
14
+
15
+ Check out the Cucumber Java project for more details:
16
+ http://github.com/aslakhellesoy/cucumber_java/tree/master
17
+
18
+ == 0.2.1 2009-03-25
19
+
20
+ This release fixes a few minor bugs and adds a couple of new features.
2
21
 
3
22
  == Bugfixes
23
+ * Fixed Cucumber, and rails controller error handling (#49 Matt Patterson)
24
+ * HTML Formatter doesn't work correctly with scenario Outlines. (#260 Aslak Hellesøy)
25
+ * After blocks are run in reverse order of registration. (#113 Aslak Hellesøy)
4
26
  * Snippets are showing 'Ands' (#249 Aslak Hellesøy)
5
27
 
28
+ === New features
29
+ * Snippets use a regexp and block arguments if the step name has "quoted" arguments. (Aslak Hellesøy)
30
+ * Cucumber::Ast::Feature#to_sexp includes the file name. (Aslak Hellesøy)
31
+ * support/env.rb is not loaded when --dry-run is specified. This is to increase performance. (Aslak Hellesøy)
32
+ * New usage formatter. This is the foundation for editor autocompletion and navigation between steps and step definitions. (#209 Aslak Hellesøy)
33
+
34
+ === Removed features
35
+ * -S/--step-definitions option introduced in 0.2.0 is removed. Use --format usage [--dry-run] [--no-color].
36
+
6
37
  == 0.2.0 2009-03-18
7
38
 
8
39
  This release sports a bunch of new and exciting features, as well a major rewrite of Cucumber's internals.
data/Manifest.txt CHANGED
@@ -124,15 +124,7 @@ examples/java/features/step_definitons/hello_steps.rb
124
124
  examples/java/features/step_definitons/tree_steps.rb
125
125
  examples/java/features/tree.feature
126
126
  examples/java/src/cucumber/demo/Hello.java
127
- examples/jbehave/README.textile
128
- examples/jbehave/features/support/env.rb
129
- examples/jbehave/features/trading.feature
130
- examples/jbehave/pom.xml
131
- examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java
132
- examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java
133
- examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java
134
- examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java
135
- examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java
127
+ examples/pure_java/README.textile
136
128
  examples/selenium/Rakefile
137
129
  examples/selenium/features/search.feature
138
130
  examples/selenium/features/step_definitons/search_steps.rb
@@ -158,6 +150,7 @@ examples/self_test/features/sample.feature
158
150
  examples/self_test/features/step_definitions/sample_steps.rb
159
151
  examples/self_test/features/support/env.rb
160
152
  examples/self_test/features/support/tag_count_formatter.rb
153
+ examples/self_test/features/tons_of_cukes.feature
161
154
  examples/sinatra/Rakefile
162
155
  examples/sinatra/app.rb
163
156
  examples/sinatra/features/add.feature
@@ -199,13 +192,13 @@ features/report_called_undefined_steps.feature
199
192
  features/step_definitions/cucumber_steps.rb
200
193
  features/step_definitions/extra_steps.rb
201
194
  features/support/env.rb
195
+ features/usage.feature
202
196
  gem_tasks/deployment.rake
203
197
  gem_tasks/environment.rake
204
198
  gem_tasks/features.rake
205
199
  gem_tasks/fix_cr_lf.rake
206
200
  gem_tasks/flog.rake
207
201
  gem_tasks/gemspec.rake
208
- gem_tasks/jar.rake
209
202
  gem_tasks/rspec.rake
210
203
  gem_tasks/yard.rake
211
204
  lib/autotest/cucumber.rb
@@ -252,8 +245,8 @@ lib/cucumber/formatter/profile.rb
252
245
  lib/cucumber/formatter/progress.rb
253
246
  lib/cucumber/formatter/rerun.rb
254
247
  lib/cucumber/formatter/unicode.rb
248
+ lib/cucumber/formatter/usage.rb
255
249
  lib/cucumber/formatters/unicode.rb
256
- lib/cucumber/jbehave.rb
257
250
  lib/cucumber/languages.yml
258
251
  lib/cucumber/parser.rb
259
252
  lib/cucumber/parser/basic.rb
@@ -1,9 +1,9 @@
1
- Feature: DOS line endings
2
- In order to have less bug reports
3
- As a windows developer
4
- I want to write features with DOS line endigs
5
-
6
- Scenario: Just lots of DOS
7
- Given I am on DOS
8
- And Any version of Windows is really just DOS
9
- Then Windows still sucks
1
+ Feature: DOS line endings
2
+ In order to have less bug reports
3
+ As a windows developer
4
+ I want to write features with DOS line endigs
5
+
6
+ Scenario: Just lots of DOS
7
+ Given I am on DOS
8
+ And Any version of Windows is really just DOS
9
+ Then Windows still sucks
@@ -0,0 +1,5 @@
1
+ h1. Cucumber with pure Java
2
+
3
+ You can use Cucumber with step definitions in pure Java.
4
+
5
+ See http://github.com/aslakhellesoy/cucumber_java/tree/master
@@ -0,0 +1,52 @@
1
+ @lots
2
+ Feature: Tons of cukes
3
+ Scenario: Lots and lots
4
+ Given '2' cukes
5
+ Given '2' cukes
6
+ Given '2' cukes
7
+ Given '2' cukes
8
+ Given '2' cukes
9
+ Given '2' cukes
10
+ Given '2' cukes
11
+ Given '2' cukes
12
+ Given '2' cukes
13
+ Given '2' cukes
14
+ Given '2' cukes
15
+ Given '2' cukes
16
+ Given '2' cukes
17
+ Given '2' cukes
18
+ Given '2' cukes
19
+ Given '2' cukes
20
+ Given '2' cukes
21
+ Given '2' cukes
22
+ Given '2' cukes
23
+ Given '2' cukes
24
+ Given '2' cukes
25
+ Given '2' cukes
26
+ Given '2' cukes
27
+ Given '2' cukes
28
+ Given '2' cukes
29
+ Given '2' cukes
30
+ Given '2' cukes
31
+ Given '2' cukes
32
+ Given '2' cukes
33
+ Given '2' cukes
34
+ Given '2' cukes
35
+ Given '2' cukes
36
+ Given '2' cukes
37
+ Given '2' cukes
38
+ Given '2' cukes
39
+ Given '2' cukes
40
+ Given '2' cukes
41
+ Given '2' cukes
42
+ Given '2' cukes
43
+ Given '2' cukes
44
+ Given '2' cukes
45
+ Given '2' cukes
46
+ Given '2' cukes
47
+ Given '2' cukes
48
+ Given '2' cukes
49
+ Given '2' cukes
50
+ Given '2' cukes
51
+ Given '2' cukes
52
+ Given '2' cukes
@@ -1,7 +1,11 @@
1
+ # See http://wiki.github.com/aslakhellesoy/cucumber/sinatra
2
+ # for more details about Sinatra with Cucumber
3
+
1
4
  # Sinatra
2
- require File.join(File.dirname(__FILE__), *%w[.. .. app])
5
+ app_file = File.join(File.dirname(__FILE__), *%w[.. .. app.rb])
6
+ require app_file
3
7
  # Force the application name because polyglot breaks the auto-detection logic.
4
- Sinatra::Application.app_file = File.join(File.dirname(__FILE__), *%w[.. .. app.rb])
8
+ Sinatra::Application.app_file = app_file
5
9
 
6
10
  # RSpec
7
11
  require 'spec/expectations'
@@ -0,0 +1,11 @@
1
+ Feature: pending method causes failure in Scenario Outlines
2
+
3
+ Scenario Outline: blah
4
+ Given this is pending until we fix it
5
+ Given context with <Stuff>
6
+ When action
7
+ Then outcome with <Blah>
8
+
9
+ Examples:
10
+ | Stuff | Blah |
11
+ | Cheese | Pepper Jack |
@@ -0,0 +1,15 @@
1
+ Given /^this is pending until we fix it$/ do
2
+ pending
3
+ end
4
+
5
+ Given /^context with Cheese$/ do
6
+ pending
7
+ end
8
+
9
+ When /^action$/ do
10
+ pending
11
+ end
12
+
13
+ Then /^outcome with Pepper Jack$/ do
14
+ pending
15
+ end
@@ -166,7 +166,7 @@ Feature: Cucumber command line
166
166
  """
167
167
 
168
168
  Scenario: --dry-run
169
- When I run cucumber --dry-run --no-snippets features/*.feature
169
+ When I run cucumber --dry-run --no-snippets features/*.feature --tags ~@lots
170
170
  Then it should pass with
171
171
  """
172
172
  Feature: Calling undefined step
@@ -4,8 +4,8 @@ Feature: Custom Formatter
4
4
  When I run cucumber --format Tag::Count features
5
5
  Then it should fail with
6
6
  """
7
- | four | one | three | two |
8
- | 1 | 1 | 2 | 1 |
7
+ | four | lots | one | three | two |
8
+ | 1 | 1 | 1 | 2 | 1 |
9
9
 
10
10
  """
11
11
 
@@ -0,0 +1,108 @@
1
+ Feature: Cucumber command line
2
+ In order to be able to write an editor plugin that can jump between
3
+ steps and step definitions, Cucumber must provide a way to
4
+ display how they are related.
5
+
6
+ Scenario: List usage of step definitions
7
+ When I run cucumber features --format usage --dry-run
8
+ Then it should pass with
9
+ """
10
+ /^passing without a table$/ # features/step_definitions/sample_steps.rb:12
11
+ Given passing without a table # features/background/failing_background_after_success.feature:4
12
+ Given <state> without a table # features/outline_sample.feature:6
13
+ Given <other_state> without a table # features/outline_sample.feature:7
14
+ /^failing without a table$/ # features/step_definitions/sample_steps.rb:15
15
+ Given failing without a table # features/background/failing_background.feature:4
16
+ Given failing without a table # features/background/scenario_outline_failing_background.feature:4
17
+ /^a step definition that calls an undefined step$/ # features/step_definitions/sample_steps.rb:19
18
+ Given a step definition that calls an undefined step # features/call_undefined_step_from_step_def.feature:4
19
+ /^call step "(.*)"$/ # features/step_definitions/sample_steps.rb:23
20
+ Given call step "a step definition that calls an undefined step" # features/call_undefined_step_from_step_def.feature:7
21
+ /^'(.+)' cukes$/ # features/step_definitions/sample_steps.rb:27
22
+ And '10' cukes # features/background/failing_background.feature:5
23
+ Given '10' cukes # features/background/passing_background.feature:4
24
+ Given '10' cukes # features/background/scenario_outline_passing_background.feature:4
25
+ Given '2' cukes # features/tons_of_cukes.feature:4
26
+ Given '2' cukes # features/tons_of_cukes.feature:5
27
+ Given '2' cukes # features/tons_of_cukes.feature:6
28
+ Given '2' cukes # features/tons_of_cukes.feature:7
29
+ Given '2' cukes # features/tons_of_cukes.feature:8
30
+ Given '2' cukes # features/tons_of_cukes.feature:9
31
+ Given '2' cukes # features/tons_of_cukes.feature:10
32
+ Given '2' cukes # features/tons_of_cukes.feature:11
33
+ Given '2' cukes # features/tons_of_cukes.feature:12
34
+ Given '2' cukes # features/tons_of_cukes.feature:13
35
+ Given '2' cukes # features/tons_of_cukes.feature:14
36
+ Given '2' cukes # features/tons_of_cukes.feature:15
37
+ Given '2' cukes # features/tons_of_cukes.feature:16
38
+ Given '2' cukes # features/tons_of_cukes.feature:17
39
+ Given '2' cukes # features/tons_of_cukes.feature:18
40
+ Given '2' cukes # features/tons_of_cukes.feature:19
41
+ Given '2' cukes # features/tons_of_cukes.feature:20
42
+ Given '2' cukes # features/tons_of_cukes.feature:21
43
+ Given '2' cukes # features/tons_of_cukes.feature:22
44
+ Given '2' cukes # features/tons_of_cukes.feature:23
45
+ Given '2' cukes # features/tons_of_cukes.feature:24
46
+ Given '2' cukes # features/tons_of_cukes.feature:25
47
+ Given '2' cukes # features/tons_of_cukes.feature:26
48
+ Given '2' cukes # features/tons_of_cukes.feature:27
49
+ Given '2' cukes # features/tons_of_cukes.feature:28
50
+ Given '2' cukes # features/tons_of_cukes.feature:29
51
+ Given '2' cukes # features/tons_of_cukes.feature:30
52
+ Given '2' cukes # features/tons_of_cukes.feature:31
53
+ Given '2' cukes # features/tons_of_cukes.feature:32
54
+ Given '2' cukes # features/tons_of_cukes.feature:33
55
+ Given '2' cukes # features/tons_of_cukes.feature:34
56
+ Given '2' cukes # features/tons_of_cukes.feature:35
57
+ Given '2' cukes # features/tons_of_cukes.feature:36
58
+ Given '2' cukes # features/tons_of_cukes.feature:37
59
+ Given '2' cukes # features/tons_of_cukes.feature:38
60
+ Given '2' cukes # features/tons_of_cukes.feature:39
61
+ Given '2' cukes # features/tons_of_cukes.feature:40
62
+ Given '2' cukes # features/tons_of_cukes.feature:41
63
+ Given '2' cukes # features/tons_of_cukes.feature:42
64
+ Given '2' cukes # features/tons_of_cukes.feature:43
65
+ Given '2' cukes # features/tons_of_cukes.feature:44
66
+ Given '2' cukes # features/tons_of_cukes.feature:45
67
+ Given '2' cukes # features/tons_of_cukes.feature:46
68
+ Given '2' cukes # features/tons_of_cukes.feature:47
69
+ Given '2' cukes # features/tons_of_cukes.feature:48
70
+ Given '2' cukes # features/tons_of_cukes.feature:49
71
+ Given '2' cukes # features/tons_of_cukes.feature:50
72
+ Given '2' cukes # features/tons_of_cukes.feature:51
73
+ Given '2' cukes # features/tons_of_cukes.feature:52
74
+ /^I should have '(.+)' cukes$/ # features/step_definitions/sample_steps.rb:31
75
+ Then I should have '10' cukes # features/background/failing_background.feature:8
76
+ Then I should have '10' cukes # features/background/failing_background.feature:11
77
+ Then I should have '10' cukes # features/background/passing_background.feature:7
78
+ Then I should have '10' cukes # features/background/passing_background.feature:10
79
+ Then I should have '10' cukes # features/background/pending_background.feature:7
80
+ Then I should have '10' cukes # features/background/pending_background.feature:10
81
+ Then I should have '<count>' cukes # features/background/scenario_outline_failing_background.feature:7
82
+ Then I should have '<count>' cukes # features/background/scenario_outline_failing_background.feature:13
83
+ Then I should have '<count>' cukes # features/background/scenario_outline_passing_background.feature:7
84
+ Then I should have '<count>' cukes # features/background/scenario_outline_passing_background.feature:13
85
+ /^'(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:35
86
+ And '10' global cukes # features/background/failing_background_after_success.feature:5
87
+ /^I should have '(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:42
88
+ Then I should have '10' global cukes # features/background/failing_background_after_success.feature:8
89
+ Then I should have '10' global cukes # features/background/failing_background_after_success.feature:11
90
+ /^table$/ # features/step_definitions/sample_steps.rb:46
91
+ Given table # features/background/multiline_args_background.feature:4
92
+ /^multiline string$/ # features/step_definitions/sample_steps.rb:50
93
+ And multiline string # features/background/multiline_args_background.feature:7
94
+ /^the table should be$/ # features/step_definitions/sample_steps.rb:54
95
+ Then the table should be # features/background/multiline_args_background.feature:14
96
+ Then the table should be # features/background/multiline_args_background.feature:24
97
+ /^the multiline string should be$/ # features/step_definitions/sample_steps.rb:58
98
+ Then the multiline string should be # features/background/multiline_args_background.feature:17
99
+ Then the multiline string should be # features/background/multiline_args_background.feature:27
100
+ /^passing$/ # features/step_definitions/sample_steps.rb:5
101
+ Given passing # features/sample.feature:10
102
+ /^failing expectation$/ # features/step_definitions/sample_steps.rb:62
103
+ Given failing expectation # features/failing_expectation.feature:4
104
+ /^failing$/ # features/step_definitions/sample_steps.rb:8
105
+ Given failing # features/sample.feature:16
106
+
107
+ """
108
+
@@ -1,9 +1,21 @@
1
1
  $:.unshift(File.dirname(__FILE__) + '/../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
- Cucumber::Rake::Task.new do |t|
5
- #t.language = "de"
6
- #t.cucumber_opts = "--profile html --language #{t.language}"
7
- t.cucumber_opts = "--profile html"
8
- t.rcov = true
9
- end
4
+ namespace :features do
5
+ Cucumber::Rake::Task.new(:all) do |t|
6
+ t.cucumber_opts = "--format pretty"
7
+ end
8
+
9
+ Cucumber::Rake::Task.new(:cruise) do |t|
10
+ t.cucumber_opts = "--format html --out=#{ENV['CC_BUILD_ARTIFACTS']}/CucumberFeatures.html"
11
+ t.rcov = true
12
+ t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/}
13
+ t.rcov_opts << %[-o "#{ENV['CC_BUILD_ARTIFACTS']}/CucumberCoverage"]
14
+ end
15
+
16
+ Cucumber::Rake::Task.new(:rcov) do |t|
17
+ t.rcov = true
18
+ t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/}
19
+ t.rcov_opts << %[-o "features_rcov"]
20
+ end
21
+ end
@@ -1,7 +1,7 @@
1
1
  require 'autotest'
2
2
  require 'tempfile'
3
3
  require 'yaml'
4
- require File.dirname(__FILE__) + '/../cucumber'
4
+ require 'cucumber'
5
5
 
6
6
  module Autotest::CucumberMixin
7
7
  def self.included(receiver)
@@ -48,7 +48,7 @@ module Cucumber
48
48
  end
49
49
 
50
50
  def to_sexp
51
- sexp = [:feature, @name]
51
+ sexp = [:feature, @file, @name]
52
52
  comment = @comment.to_sexp
53
53
  sexp += [comment] if comment
54
54
  tags = @tags.to_sexp
@@ -1,10 +1,16 @@
1
1
  module Cucumber
2
2
  module Ast
3
3
  class Features
4
+ include Enumerable
5
+
4
6
  def initialize
5
7
  @features = []
6
8
  end
7
9
 
10
+ def each(&proc)
11
+ @features.each(&proc)
12
+ end
13
+
8
14
  def add_feature(feature)
9
15
  feature.features = self
10
16
  @features << feature
@@ -78,6 +78,10 @@ module Cucumber
78
78
  @file_colon_line ||= @feature_element.file_colon_line(@line) unless @feature_element.nil?
79
79
  end
80
80
 
81
+ def dom_id
82
+ @dom_id ||= file_colon_line.gsub(/\//, '_').gsub(/\./, '_').gsub(/:/, '_')
83
+ end
84
+
81
85
  private
82
86
 
83
87
  def matched_cells(cells)
@@ -28,7 +28,7 @@ module Cucumber
28
28
  unless @skip_invoke || options[:dry_run] || exception || @step_collection.exception
29
29
  @skip_invoke = true
30
30
  begin
31
- step_mother.current_world.__cucumber_current_step = self
31
+ step_mother.current_world.__cucumber_current_step = self if step_mother.current_world # Nil in Pure Java
32
32
  @step_match.invoke(step_mother.current_world, @multiline_arg)
33
33
  status!(:passed)
34
34
  rescue Pending => e
@@ -82,7 +82,7 @@ module Cucumber
82
82
  if [Cucumber.keyword_hash['and'], Cucumber.keyword_hash['but']].index(@step.keyword) && previous
83
83
  previous.actual_keyword
84
84
  else
85
- @step.keyword
85
+ keyword
86
86
  end
87
87
  end
88
88
 
@@ -94,10 +94,18 @@ module Cucumber
94
94
  @step.text_length
95
95
  end
96
96
 
97
+ def keyword
98
+ @step.keyword
99
+ end
100
+
97
101
  def file_colon_line
98
102
  @step.file_colon_line
99
103
  end
100
104
 
105
+ def dom_id
106
+ @step.dom_id
107
+ end
108
+
101
109
  def backtrace_line
102
110
  @step.backtrace_line
103
111
  end