kosmas58-cucumber 0.2.0.1 → 0.2.2.1

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 (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