gherkin 5.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +5 -5
  2. data/lib/gherkin/gherkin-languages.json +50 -4
  3. data/lib/gherkin/pickles/compiler.rb +3 -0
  4. metadata +10 -177
  5. data/.rsync +0 -6
  6. data/.travis.yml +0 -20
  7. data/CONTRIBUTING.md +0 -23
  8. data/Gemfile +0 -2
  9. data/Makefile +0 -62
  10. data/Rakefile +0 -24
  11. data/berp/CommandLine.dll +0 -0
  12. data/berp/RazorEngine.dll +0 -0
  13. data/berp/RazorEngine.pdb +0 -0
  14. data/berp/System.Web.Razor.dll +0 -0
  15. data/berp/berp.exe +0 -0
  16. data/berp/berp.pdb +0 -0
  17. data/bin/gherkin-generate-tokens +0 -13
  18. data/gherkin-ruby.razor +0 -218
  19. data/gherkin.berp +0 -37
  20. data/gherkin.gemspec +0 -27
  21. data/testdata/bad/inconsistent_cell_count.feature +0 -14
  22. data/testdata/bad/inconsistent_cell_count.feature.errors.ndjson +0 -2
  23. data/testdata/bad/invalid_language.feature +0 -6
  24. data/testdata/bad/invalid_language.feature.errors.ndjson +0 -1
  25. data/testdata/bad/multiple_parser_errors.feature +0 -9
  26. data/testdata/bad/multiple_parser_errors.feature.errors.ndjson +0 -2
  27. data/testdata/bad/not_gherkin.feature +0 -2
  28. data/testdata/bad/not_gherkin.feature.errors.ndjson +0 -1
  29. data/testdata/bad/single_parser_error.feature +0 -7
  30. data/testdata/bad/single_parser_error.feature.errors.ndjson +0 -1
  31. data/testdata/bad/unexpected_eof.feature +0 -6
  32. data/testdata/bad/unexpected_eof.feature.errors.ndjson +0 -1
  33. data/testdata/good/background.feature +0 -8
  34. data/testdata/good/background.feature.ast.ndjson +0 -1
  35. data/testdata/good/background.feature.pickles.ndjson +0 -1
  36. data/testdata/good/background.feature.source.ndjson +0 -1
  37. data/testdata/good/background.feature.tokens +0 -9
  38. data/testdata/good/datatables.feature +0 -18
  39. data/testdata/good/datatables.feature.ast.ndjson +0 -1
  40. data/testdata/good/datatables.feature.pickles.ndjson +0 -1
  41. data/testdata/good/datatables.feature.source.ndjson +0 -1
  42. data/testdata/good/datatables.feature.tokens +0 -19
  43. data/testdata/good/descriptions.feature +0 -52
  44. data/testdata/good/descriptions.feature.ast.ndjson +0 -1
  45. data/testdata/good/descriptions.feature.pickles.ndjson +0 -8
  46. data/testdata/good/descriptions.feature.source.ndjson +0 -1
  47. data/testdata/good/descriptions.feature.tokens +0 -53
  48. data/testdata/good/docstrings.feature +0 -43
  49. data/testdata/good/docstrings.feature.ast.ndjson +0 -1
  50. data/testdata/good/docstrings.feature.pickles.ndjson +0 -1
  51. data/testdata/good/docstrings.feature.source.ndjson +0 -1
  52. data/testdata/good/docstrings.feature.tokens +0 -44
  53. data/testdata/good/empty.feature +0 -0
  54. data/testdata/good/empty.feature.ast.ndjson +0 -1
  55. data/testdata/good/empty.feature.pickles.ndjson +0 -0
  56. data/testdata/good/empty.feature.source.ndjson +0 -1
  57. data/testdata/good/empty.feature.tokens +0 -1
  58. data/testdata/good/escaped_pipes.feature +0 -11
  59. data/testdata/good/escaped_pipes.feature.ast.ndjson +0 -1
  60. data/testdata/good/escaped_pipes.feature.pickles.ndjson +0 -1
  61. data/testdata/good/escaped_pipes.feature.source.ndjson +0 -1
  62. data/testdata/good/escaped_pipes.feature.tokens +0 -14
  63. data/testdata/good/example_token_multiple.feature +0 -8
  64. data/testdata/good/example_token_multiple.feature.ast.ndjson +0 -1
  65. data/testdata/good/example_token_multiple.feature.pickles.ndjson +0 -1
  66. data/testdata/good/example_token_multiple.feature.source.ndjson +0 -1
  67. data/testdata/good/example_token_multiple.feature.tokens +0 -9
  68. data/testdata/good/example_tokens_everywhere.feature +0 -14
  69. data/testdata/good/example_tokens_everywhere.feature.ast.ndjson +0 -1
  70. data/testdata/good/example_tokens_everywhere.feature.pickles.ndjson +0 -2
  71. data/testdata/good/example_tokens_everywhere.feature.source.ndjson +0 -1
  72. data/testdata/good/example_tokens_everywhere.feature.tokens +0 -15
  73. data/testdata/good/i18n_emoji.feature +0 -5
  74. data/testdata/good/i18n_emoji.feature.ast.ndjson +0 -1
  75. data/testdata/good/i18n_emoji.feature.pickles.ndjson +0 -1
  76. data/testdata/good/i18n_emoji.feature.source.ndjson +0 -1
  77. data/testdata/good/i18n_emoji.feature.tokens +0 -6
  78. data/testdata/good/i18n_fr.feature +0 -63
  79. data/testdata/good/i18n_fr.feature.ast.ndjson +0 -1
  80. data/testdata/good/i18n_fr.feature.pickles.ndjson +0 -11
  81. data/testdata/good/i18n_fr.feature.source.ndjson +0 -1
  82. data/testdata/good/i18n_fr.feature.tokens +0 -64
  83. data/testdata/good/i18n_no.feature +0 -7
  84. data/testdata/good/i18n_no.feature.ast.ndjson +0 -1
  85. data/testdata/good/i18n_no.feature.pickles.ndjson +0 -1
  86. data/testdata/good/i18n_no.feature.source.ndjson +0 -1
  87. data/testdata/good/i18n_no.feature.tokens +0 -8
  88. data/testdata/good/incomplete_background_1.feature +0 -6
  89. data/testdata/good/incomplete_background_1.feature.ast.ndjson +0 -1
  90. data/testdata/good/incomplete_background_1.feature.pickles.ndjson +0 -1
  91. data/testdata/good/incomplete_background_1.feature.source.ndjson +0 -1
  92. data/testdata/good/incomplete_background_1.feature.tokens +0 -7
  93. data/testdata/good/incomplete_background_2.feature +0 -7
  94. data/testdata/good/incomplete_background_2.feature.ast.ndjson +0 -1
  95. data/testdata/good/incomplete_background_2.feature.pickles.ndjson +0 -1
  96. data/testdata/good/incomplete_background_2.feature.source.ndjson +0 -1
  97. data/testdata/good/incomplete_background_2.feature.tokens +0 -8
  98. data/testdata/good/incomplete_feature_1.feature +0 -2
  99. data/testdata/good/incomplete_feature_1.feature.ast.ndjson +0 -1
  100. data/testdata/good/incomplete_feature_1.feature.pickles.ndjson +0 -0
  101. data/testdata/good/incomplete_feature_1.feature.source.ndjson +0 -1
  102. data/testdata/good/incomplete_feature_1.feature.tokens +0 -3
  103. data/testdata/good/incomplete_feature_2.feature +0 -1
  104. data/testdata/good/incomplete_feature_2.feature.ast.ndjson +0 -1
  105. data/testdata/good/incomplete_feature_2.feature.pickles.ndjson +0 -0
  106. data/testdata/good/incomplete_feature_2.feature.source.ndjson +0 -1
  107. data/testdata/good/incomplete_feature_2.feature.tokens +0 -2
  108. data/testdata/good/incomplete_feature_3.feature +0 -1
  109. data/testdata/good/incomplete_feature_3.feature.ast.ndjson +0 -1
  110. data/testdata/good/incomplete_feature_3.feature.pickles.ndjson +0 -0
  111. data/testdata/good/incomplete_feature_3.feature.source.ndjson +0 -1
  112. data/testdata/good/incomplete_feature_3.feature.tokens +0 -2
  113. data/testdata/good/incomplete_scenario.feature +0 -6
  114. data/testdata/good/incomplete_scenario.feature.ast.ndjson +0 -1
  115. data/testdata/good/incomplete_scenario.feature.pickles.ndjson +0 -1
  116. data/testdata/good/incomplete_scenario.feature.source.ndjson +0 -1
  117. data/testdata/good/incomplete_scenario.feature.tokens +0 -7
  118. data/testdata/good/incomplete_scenario_outline.feature +0 -24
  119. data/testdata/good/incomplete_scenario_outline.feature.ast.ndjson +0 -1
  120. data/testdata/good/incomplete_scenario_outline.feature.pickles.ndjson +0 -1
  121. data/testdata/good/incomplete_scenario_outline.feature.source.ndjson +0 -1
  122. data/testdata/good/incomplete_scenario_outline.feature.tokens +0 -25
  123. data/testdata/good/language.feature +0 -6
  124. data/testdata/good/language.feature.ast.ndjson +0 -1
  125. data/testdata/good/language.feature.pickles.ndjson +0 -1
  126. data/testdata/good/language.feature.source.ndjson +0 -1
  127. data/testdata/good/language.feature.tokens +0 -7
  128. data/testdata/good/minimal.feature +0 -4
  129. data/testdata/good/minimal.feature.ast.ndjson +0 -1
  130. data/testdata/good/minimal.feature.pickles.ndjson +0 -1
  131. data/testdata/good/minimal.feature.source.ndjson +0 -1
  132. data/testdata/good/minimal.feature.tokens +0 -5
  133. data/testdata/good/readme_example.feature +0 -18
  134. data/testdata/good/readme_example.feature.ast.ndjson +0 -1
  135. data/testdata/good/readme_example.feature.pickles.ndjson +0 -2
  136. data/testdata/good/readme_example.feature.source.ndjson +0 -1
  137. data/testdata/good/readme_example.feature.tokens +0 -19
  138. data/testdata/good/scenario_outline.feature +0 -8
  139. data/testdata/good/scenario_outline.feature.ast.ndjson +0 -1
  140. data/testdata/good/scenario_outline.feature.pickles.ndjson +0 -1
  141. data/testdata/good/scenario_outline.feature.source.ndjson +0 -1
  142. data/testdata/good/scenario_outline.feature.tokens +0 -9
  143. data/testdata/good/scenario_outline_no_newline.feature +0 -8
  144. data/testdata/good/scenario_outline_no_newline.feature.ast.ndjson +0 -1
  145. data/testdata/good/scenario_outline_no_newline.feature.pickles.ndjson +0 -1
  146. data/testdata/good/scenario_outline_no_newline.feature.source.ndjson +0 -1
  147. data/testdata/good/scenario_outline_no_newline.feature.tokens +0 -9
  148. data/testdata/good/scenario_outlines_with_tags.feature +0 -18
  149. data/testdata/good/scenario_outlines_with_tags.feature.ast.ndjson +0 -1
  150. data/testdata/good/scenario_outlines_with_tags.feature.pickles.ndjson +0 -2
  151. data/testdata/good/scenario_outlines_with_tags.feature.source.ndjson +0 -1
  152. data/testdata/good/scenario_outlines_with_tags.feature.tokens +0 -19
  153. data/testdata/good/several_examples.feature +0 -17
  154. data/testdata/good/several_examples.feature.ast.ndjson +0 -1
  155. data/testdata/good/several_examples.feature.pickles.ndjson +0 -3
  156. data/testdata/good/several_examples.feature.source.ndjson +0 -1
  157. data/testdata/good/several_examples.feature.tokens +0 -18
  158. data/testdata/good/spaces_in_language.feature +0 -2
  159. data/testdata/good/spaces_in_language.feature.ast.ndjson +0 -1
  160. data/testdata/good/spaces_in_language.feature.pickles.ndjson +0 -0
  161. data/testdata/good/spaces_in_language.feature.source.ndjson +0 -1
  162. data/testdata/good/spaces_in_language.feature.tokens +0 -3
  163. data/testdata/good/tagged_feature_with_scenario_outline.feature +0 -10
  164. data/testdata/good/tagged_feature_with_scenario_outline.feature.ast.ndjson +0 -1
  165. data/testdata/good/tagged_feature_with_scenario_outline.feature.pickles.ndjson +0 -2
  166. data/testdata/good/tagged_feature_with_scenario_outline.feature.source.ndjson +0 -1
  167. data/testdata/good/tagged_feature_with_scenario_outline.feature.tokens +0 -11
  168. data/testdata/good/tags.feature +0 -25
  169. data/testdata/good/tags.feature.ast.ndjson +0 -1
  170. data/testdata/good/tags.feature.pickles.ndjson +0 -3
  171. data/testdata/good/tags.feature.source.ndjson +0 -1
  172. data/testdata/good/tags.feature.tokens +0 -26
data/Rakefile DELETED
@@ -1,24 +0,0 @@
1
- # encoding: utf-8
2
- require 'rubygems'
3
- require 'bundler'
4
- Bundler::GemHelper.install_tasks
5
-
6
- $:.unshift File.expand_path("../lib", __FILE__)
7
-
8
- require "rspec/core/rake_task"
9
- RSpec::Core::RakeTask.new(:spec) do |t|
10
- t.ruby_opts = %w[-r./spec/coverage -w]
11
- t.rspec_opts = %w[--color]
12
- end
13
-
14
- require_relative 'spec/capture_warnings'
15
- include CaptureWarnings
16
- namespace :spec do
17
- task :warnings do
18
- report_warnings do
19
- Rake::Task['spec'].invoke
20
- end
21
- end
22
- end
23
-
24
- task default: ['spec:warnings']
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $VERBOSE=nil # Shut up JRuby warnings on Travis
3
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__),"../lib"))
4
- require 'gherkin/parser'
5
- require 'gherkin/token_formatter_builder'
6
-
7
- parser = Gherkin::Parser.new(Gherkin::TokenFormatterBuilder.new)
8
- files = ARGV
9
- files.each do |file|
10
- File.open(file, 'r:UTF-8') do |io|
11
- print parser.parse(io)
12
- end
13
- end
@@ -1,218 +0,0 @@
1
- @using Berp;
2
- @helper CallProduction(ProductionRule production)
3
- {
4
- switch(production.Type)
5
- {
6
- case ProductionRuleType.Start:
7
- @: start_rule(context, :@production.RuleName);
8
- break;
9
- case ProductionRuleType.End:
10
- @: end_rule(context, :@production.RuleName);
11
- break;
12
- case ProductionRuleType.Process:
13
- @: build(context, token);
14
- break;
15
- }
16
- }
17
- @helper HandleParserError(IEnumerable<string> expectedTokens, State state)
18
- {<text>
19
- state_comment = "State: @state.Id - @Raw(state.Comment)"
20
- token.detach
21
- expected_tokens = ["@Raw(string.Join("\", \"", expectedTokens))"]
22
- error = token.eof? ? UnexpectedEOFException.new(token, expected_tokens, state_comment) : UnexpectedTokenException.new(token, expected_tokens, state_comment)
23
- raise error if (stop_at_first_error)
24
- add_error(context, error)
25
- return @state.Id</text>}
26
- @helper MatchToken(TokenType tokenType)
27
- {<text>match_@(tokenType)(context, token)</text>}
28
- # This file is generated. Do not edit! Edit gherkin-ruby.razor instead.
29
- require 'gherkin/ast_builder'
30
- require 'gherkin/token_matcher'
31
- require 'gherkin/token_scanner'
32
- require 'gherkin/errors'
33
-
34
- module Gherkin
35
-
36
- RULE_TYPE = [
37
- :None,
38
- @foreach(var rule in Model.RuleSet.Where(r => !r.TempRule))
39
- {<text> :@rule.Name.Replace("#", "_"), # @rule.ToString(true)
40
- </text>}
41
- ]
42
-
43
- class ParserContext
44
- attr_reader :token_scanner, :token_matcher, :token_queue, :errors
45
-
46
- def initialize(token_scanner, token_matcher, token_queue, errors)
47
- @@token_scanner = token_scanner
48
- @@token_matcher = token_matcher
49
- @@token_queue = token_queue
50
- @@errors = errors
51
- end
52
- end
53
-
54
- class @Model.ParserClassName
55
- attr_accessor :stop_at_first_error
56
-
57
- def initialize(ast_builder=AstBuilder.new)
58
- @@ast_builder = ast_builder
59
- end
60
-
61
- def parse(token_scanner, token_matcher=TokenMatcher.new)
62
- token_scanner = token_scanner.is_a?(TokenScanner) ? token_scanner : TokenScanner.new(token_scanner)
63
-
64
- @@ast_builder.reset
65
- token_matcher.reset
66
- context = ParserContext.new(
67
- token_scanner,
68
- token_matcher,
69
- [],
70
- []
71
- )
72
-
73
- start_rule(context, :@Model.RuleSet.StartRule.Name);
74
- state = 0
75
- token = nil
76
- begin
77
- token = read_token(context)
78
- state = match_token(state, token, context)
79
- end until(token.eof?)
80
-
81
- end_rule(context, :@Model.RuleSet.StartRule.Name)
82
-
83
- raise CompositeParserException.new(context.errors) if context.errors.any?
84
-
85
- get_result()
86
- end
87
-
88
- def build(context, token)
89
- handle_ast_error(context) do
90
- @@ast_builder.build(token)
91
- end
92
- end
93
-
94
- def add_error(context, error)
95
- context.errors.push(error)
96
- raise CompositeParserException, context.errors if context.errors.length > 10
97
- end
98
-
99
- def start_rule(context, rule_type)
100
- handle_ast_error(context) do
101
- @@ast_builder.start_rule(rule_type)
102
- end
103
- end
104
-
105
- def end_rule(context, rule_type)
106
- handle_ast_error(context) do
107
- @@ast_builder.end_rule(rule_type)
108
- end
109
- end
110
-
111
- def get_result()
112
- @@ast_builder.get_result
113
- end
114
-
115
- def read_token(context)
116
- context.token_queue.any? ? context.token_queue.shift : context.token_scanner.read
117
- end
118
-
119
- @foreach(var rule in Model.RuleSet.TokenRules)
120
- {<text>
121
- def match_@(rule.Name.Replace("#", ""))( context, token)
122
- @if (rule.Name != "#EOF")
123
- {
124
- @:return false if token.eof?
125
- }
126
- return handle_external_error(context, false) do
127
- context.token_matcher.match_@(rule.Name.Replace("#", ""))(token)
128
- end
129
- end</text>
130
- }
131
-
132
- def match_token(state, token, context)
133
- case state
134
- @foreach(var state in Model.States.Values.Where(s => !s.IsEndState))
135
- {
136
- @:when @state.Id
137
- @:match_token_at_@(state.Id)(token, context)
138
- }
139
- else
140
- raise InvalidOperationException, "Unknown state: #{state}"
141
- end
142
- end
143
-
144
- @foreach(var state in Model.States.Values.Where(s => !s.IsEndState))
145
- {<text>
146
- # @Raw(state.Comment)
147
- def match_token_at_@(state.Id)(token, context)
148
- @foreach(var transition in state.Transitions)
149
- {
150
- @:if @MatchToken(transition.TokenType)
151
- if (transition.LookAheadHint != null)
152
- {
153
- @:if lookahead_@(transition.LookAheadHint.Id)(context, token)
154
- }
155
- foreach(var production in transition.Productions)
156
- {
157
- @CallProduction(production)
158
- }
159
- @:return @transition.TargetState
160
- if (transition.LookAheadHint != null)
161
- {
162
- @:end
163
- }
164
- @:end
165
- }
166
- @HandleParserError(state.Transitions.Select(t => "#" + t.TokenType.ToString()).Distinct(), state)
167
- end</text>
168
- }
169
-
170
- @foreach(var lookAheadHint in Model.RuleSet.LookAheadHints)
171
- {
172
- <text>
173
- def lookahead_@(lookAheadHint.Id)(context, currentToken)
174
- currentToken.detach
175
- token = nil
176
- queue = []
177
- match = false
178
- loop do
179
- token = read_token(context)
180
- token.detach
181
- queue.push(token)
182
-
183
- if (false @foreach(var tokenType in lookAheadHint.ExpectedTokens) {<text>|| @MatchToken(tokenType)</text>})
184
- match = true
185
- break
186
- end
187
-
188
- break unless (false @foreach(var tokenType in lookAheadHint.Skip) {<text>|| @MatchToken(tokenType)</text>})
189
- end
190
-
191
- context.token_queue.concat(queue)
192
-
193
- return match
194
- end
195
- </text>
196
- }
197
-
198
- private
199
-
200
- def handle_ast_error(context, &action)
201
- handle_external_error(context, true, &action)
202
- end
203
-
204
- def handle_external_error(context, default_value, &action)
205
- return action.call if stop_at_first_error
206
-
207
- begin
208
- return action.call
209
- rescue CompositeParserException => e
210
- e.errors.each { |error| add_error(context, error) }
211
- rescue ParserException => e
212
- add_error(context, e)
213
- end
214
- default_value
215
- end
216
-
217
- end
218
- end
@@ -1,37 +0,0 @@
1
- [
2
- Tokens -> #Empty,#Comment,#TagLine,#FeatureLine,#BackgroundLine,#ScenarioLine,#ScenarioOutlineLine,#ExamplesLine,#StepLine,#DocStringSeparator,#TableRow,#Language
3
- IgnoredTokens -> #Comment,#Empty
4
- ClassName -> Parser
5
- Namespace -> Gherkin
6
- ]
7
-
8
- GherkinDocument! := Feature?
9
- Feature! := Feature_Header Background? Scenario_Definition*
10
- Feature_Header! := #Language? Tags? #FeatureLine Description_Helper
11
-
12
- Background! := #BackgroundLine Description_Helper Step*
13
-
14
- // we could avoid defining Scenario_Definition, but that would require regular look-aheads, so worse performance
15
- Scenario_Definition! := Tags? (Scenario | ScenarioOutline)
16
-
17
- Scenario! := #ScenarioLine Description_Helper Step*
18
-
19
- ScenarioOutline! := #ScenarioOutlineLine Description_Helper Step* Examples_Definition*
20
- // after the first "Examples" block, interpreting a tag line is ambiguous (tagline of next examples or of next scenario)
21
- // because of this, we need a lookahead hint, that connects the tag line to the next examples, if there is an examples block ahead
22
- Examples_Definition! [#Empty|#Comment|#TagLine->#ExamplesLine]:= Tags? Examples
23
- Examples! := #ExamplesLine Description_Helper Examples_Table?
24
- Examples_Table! := #TableRow #TableRow*
25
-
26
- Step! := #StepLine Step_Arg?
27
- Step_Arg := (DataTable | DocString)
28
-
29
- DataTable! := #TableRow+
30
- DocString! := #DocStringSeparator #Other* #DocStringSeparator
31
-
32
- Tags! := #TagLine+
33
-
34
- // we need to explicitly mention comment, to avoid merging it into the description line's #Other token
35
- // we also eat the leading empty lines, the tailing lines are not removed by the parser to avoid lookahead, this has to be done by the AST builder
36
- Description_Helper := #Empty* Description? #Comment*
37
- Description! := #Other+
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
- Gem::Specification.new do |s|
3
- s.name = 'gherkin'
4
- s.version = '5.0.0'
5
- s.authors = ["Gáspár Nagy", "Aslak Hellesøy", "Steve Tooke"]
6
- s.description = 'Gherkin parser'
7
- s.summary = "gherkin-#{s.version}"
8
- s.email = 'cukes@googlegroups.com'
9
- s.homepage = "https://github.com/cucumber/gherkin-ruby"
10
- s.platform = Gem::Platform::RUBY
11
- s.license = "MIT"
12
- s.required_ruby_version = ">= 1.9.3"
13
-
14
- s.add_development_dependency 'bundler'
15
- s.add_development_dependency 'rake', '~> 10.5'
16
- s.add_development_dependency 'rspec', '~> 3.5'
17
-
18
- # For coverage reports
19
- s.add_development_dependency 'coveralls'
20
-
21
- s.executables = ["gherkin-ruby"]
22
- s.rubygems_version = ">= 1.6.1"
23
- s.files = `git ls-files`.split("\n").reject {|path| path =~ /\.gitignore$/ }
24
- s.test_files = `git ls-files -- spec/*`.split("\n")
25
- s.rdoc_options = ["--charset=UTF-8"]
26
- s.require_path = "lib"
27
- end
@@ -1,14 +0,0 @@
1
- Feature: Inconsistent cell counts
2
-
3
- Scenario: minimalistic
4
- Given a data table with inconsistent cell count
5
- | foo | bar |
6
- | boz |
7
-
8
-
9
- Scenario Outline: minimalistic
10
- Given the <what>
11
-
12
- Examples:
13
- | what |
14
- | minimalism | extra |
@@ -1,2 +0,0 @@
1
- {"data":"(6:7): inconsistent cell count within the table","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":7,"line":6},"uri":"testdata/bad/inconsistent_cell_count.feature"},"type":"attachment"}
2
- {"data":"(14:5): inconsistent cell count within the table","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":5,"line":14},"uri":"testdata/bad/inconsistent_cell_count.feature"},"type":"attachment"}
@@ -1,6 +0,0 @@
1
- #language:no-such
2
-
3
- Feature: Minimal
4
-
5
- Scenario: minimalistic
6
- Given the minimalism
@@ -1 +0,0 @@
1
- {"data":"(1:1): Language not supported: no-such","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":1,"line":1},"uri":"testdata/bad/invalid_language.feature"},"type":"attachment"}
@@ -1,9 +0,0 @@
1
-
2
- invalid line here
3
-
4
- Feature: Multiple parser errors
5
-
6
- Scenario: minimalistic
7
- Given the minimalism
8
-
9
- another invalid line here
@@ -1,2 +0,0 @@
1
- {"data":"(2:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'invalid line here'","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":1,"line":2},"uri":"testdata/bad/multiple_parser_errors.feature"},"type":"attachment"}
2
- {"data":"(9:1): expected: #EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got 'another invalid line here'","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":1,"line":9},"uri":"testdata/bad/multiple_parser_errors.feature"},"type":"attachment"}
@@ -1,2 +0,0 @@
1
- not gherkin
2
-
@@ -1 +0,0 @@
1
- {"data":"(1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'not gherkin'","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":1,"line":1},"uri":"testdata/bad/not_gherkin.feature"},"type":"attachment"}
@@ -1,7 +0,0 @@
1
-
2
- invalid line here
3
-
4
- Feature: Single parser error
5
-
6
- Scenario: minimalistic
7
- Given the minimalism
@@ -1 +0,0 @@
1
- {"data":"(2:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'invalid line here'","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":1,"line":2},"uri":"testdata/bad/single_parser_error.feature"},"type":"attachment"}
@@ -1,6 +0,0 @@
1
- Feature: Unexpected end of file
2
-
3
- Scenario Outline: minimalistic
4
- Given the minimalism
5
-
6
- @tag
@@ -1 +0,0 @@
1
- {"data":"(7:0): unexpected end of file, expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty","media":{"encoding":"utf-8","type":"text/x.cucumber.stacktrace+plain"},"source":{"start":{"column":0,"line":7},"uri":"testdata/bad/unexpected_eof.feature"},"type":"attachment"}
@@ -1,8 +0,0 @@
1
- Feature: Background
2
-
3
- Background: a simple background
4
- Given the minimalism inside a background
5
-
6
-
7
- Scenario: minimalistic
8
- Given the minimalism
@@ -1 +0,0 @@
1
- {"document":{"comments":[],"feature":{"children":[{"keyword":"Background","location":{"column":3,"line":3},"name":"a simple background","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"the minimalism inside a background","type":"Step"}],"type":"Background"},{"keyword":"Scenario","location":{"column":3,"line":7},"name":"minimalistic","steps":[{"keyword":"Given ","location":{"column":5,"line":8},"text":"the minimalism","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Background","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/background.feature"}
@@ -1 +0,0 @@
1
- {"pickle":{"language":"en","locations":[{"column":3,"line":7}],"name":"minimalistic","steps":[{"arguments":[],"locations":[{"column":11,"line":4}],"text":"the minimalism inside a background"},{"arguments":[],"locations":[{"column":11,"line":8}],"text":"the minimalism"}],"tags":[]},"type":"pickle","uri":"testdata/good/background.feature"}
@@ -1 +0,0 @@
1
- {"data":"Feature: Background\n\n Background: a simple background\n Given the minimalism inside a background\n\n\n Scenario: minimalistic\n Given the minimalism\n","media":{"encoding":"utf-8","type":"text/x.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/background.feature"}
@@ -1,9 +0,0 @@
1
- (1:1)FeatureLine:Feature/Background/
2
- (2:1)Empty://
3
- (3:3)BackgroundLine:Background/a simple background/
4
- (4:5)StepLine:Given /the minimalism inside a background/
5
- (5:1)Empty://
6
- (6:1)Empty://
7
- (7:3)ScenarioLine:Scenario/minimalistic/
8
- (8:5)StepLine:Given /the minimalism/
9
- EOF
@@ -1,18 +0,0 @@
1
- Feature: DataTables
2
-
3
- Scenario: minimalistic
4
- Given a simple data table
5
- | foo | bar |
6
- | boz | boo |
7
- And a data table with a single cell
8
- | foo |
9
- And a data table with different fromatting
10
- | foo|bar| boz |
11
- And a data table with an empty cell
12
- |foo||boz|
13
- And a data table with comments and newlines inside
14
- | foo | bar |
15
-
16
- | boz | boo |
17
- # this is a comment
18
- | boz2 | boo2 |