gherkin 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/.rsync +5 -0
  3. data/.travis.yml +16 -1
  4. data/Makefile +31 -36
  5. data/berp/CommandLine.dll +0 -0
  6. data/berp/RazorEngine.dll +0 -0
  7. data/berp/RazorEngine.pdb +0 -0
  8. data/berp/System.Web.Razor.dll +0 -0
  9. data/berp/berp.exe +0 -0
  10. data/berp/berp.pdb +0 -0
  11. data/bin/gherkin +34 -0
  12. data/bin/gherkin-generate-tokens +1 -1
  13. data/gherkin-languages.json +3191 -0
  14. data/gherkin.berp +46 -0
  15. data/gherkin.gemspec +6 -6
  16. data/lib/gherkin/gherkin-languages.json +225 -3
  17. data/lib/gherkin/pickles/compiler.rb +31 -31
  18. data/lib/gherkin/stream/gherkin_events.rb +69 -0
  19. data/lib/gherkin/stream/source_events.rb +26 -0
  20. data/lib/gherkin/token_scanner.rb +1 -1
  21. data/testdata/bad/inconsistent_cell_count.feature +14 -0
  22. data/testdata/bad/inconsistent_cell_count.feature.errors.ndjson +2 -0
  23. data/testdata/bad/invalid_language.feature +6 -0
  24. data/testdata/bad/invalid_language.feature.errors.ndjson +1 -0
  25. data/testdata/bad/multiple_parser_errors.feature +9 -0
  26. data/testdata/bad/multiple_parser_errors.feature.errors.ndjson +2 -0
  27. data/testdata/bad/not_gherkin.feature +2 -0
  28. data/testdata/bad/not_gherkin.feature.errors.ndjson +1 -0
  29. data/testdata/bad/single_parser_error.feature +7 -0
  30. data/testdata/bad/single_parser_error.feature.errors.ndjson +1 -0
  31. data/testdata/bad/unexpected_eof.feature +6 -0
  32. data/testdata/bad/unexpected_eof.feature.errors.ndjson +1 -0
  33. data/testdata/good/background.feature +8 -0
  34. data/testdata/good/background.feature.ast.ndjson +1 -0
  35. data/testdata/good/background.feature.pickles.ndjson +1 -0
  36. data/testdata/good/background.feature.source.ndjson +1 -0
  37. data/testdata/good/background.feature.tokens +9 -0
  38. data/testdata/good/datatables.feature +18 -0
  39. data/testdata/good/datatables.feature.ast.ndjson +1 -0
  40. data/testdata/good/datatables.feature.pickles.ndjson +1 -0
  41. data/testdata/good/datatables.feature.source.ndjson +1 -0
  42. data/testdata/good/datatables.feature.tokens +19 -0
  43. data/testdata/good/descriptions.feature +52 -0
  44. data/testdata/good/descriptions.feature.ast.ndjson +1 -0
  45. data/testdata/good/descriptions.feature.pickles.ndjson +8 -0
  46. data/testdata/good/descriptions.feature.source.ndjson +1 -0
  47. data/testdata/good/descriptions.feature.tokens +53 -0
  48. data/testdata/good/docstrings.feature +43 -0
  49. data/testdata/good/docstrings.feature.ast.ndjson +1 -0
  50. data/testdata/good/docstrings.feature.pickles.ndjson +1 -0
  51. data/testdata/good/docstrings.feature.source.ndjson +1 -0
  52. data/testdata/good/docstrings.feature.tokens +44 -0
  53. data/testdata/good/empty.feature +0 -0
  54. data/testdata/good/empty.feature.ast.ndjson +1 -0
  55. data/testdata/good/empty.feature.pickles.ndjson +0 -0
  56. data/testdata/good/empty.feature.source.ndjson +1 -0
  57. data/testdata/good/empty.feature.tokens +1 -0
  58. data/testdata/good/escaped_pipes.feature +11 -0
  59. data/testdata/good/escaped_pipes.feature.ast.ndjson +1 -0
  60. data/testdata/good/escaped_pipes.feature.pickles.ndjson +1 -0
  61. data/testdata/good/escaped_pipes.feature.source.ndjson +1 -0
  62. data/testdata/good/escaped_pipes.feature.tokens +14 -0
  63. data/testdata/good/example_token_multiple.feature +8 -0
  64. data/testdata/good/example_token_multiple.feature.ast.ndjson +1 -0
  65. data/testdata/good/example_token_multiple.feature.pickles.ndjson +1 -0
  66. data/testdata/good/example_token_multiple.feature.source.ndjson +1 -0
  67. data/testdata/good/example_token_multiple.feature.tokens +9 -0
  68. data/testdata/good/example_tokens_everywhere.feature +14 -0
  69. data/testdata/good/example_tokens_everywhere.feature.ast.ndjson +1 -0
  70. data/testdata/good/example_tokens_everywhere.feature.pickles.ndjson +2 -0
  71. data/testdata/good/example_tokens_everywhere.feature.source.ndjson +1 -0
  72. data/testdata/good/example_tokens_everywhere.feature.tokens +15 -0
  73. data/testdata/good/i18n_emoji.feature +5 -0
  74. data/testdata/good/i18n_emoji.feature.ast.ndjson +1 -0
  75. data/testdata/good/i18n_emoji.feature.pickles.ndjson +1 -0
  76. data/testdata/good/i18n_emoji.feature.source.ndjson +1 -0
  77. data/testdata/good/i18n_emoji.feature.tokens +6 -0
  78. data/testdata/good/i18n_fr.feature +63 -0
  79. data/testdata/good/i18n_fr.feature.ast.ndjson +1 -0
  80. data/testdata/good/i18n_fr.feature.pickles.ndjson +11 -0
  81. data/testdata/good/i18n_fr.feature.source.ndjson +1 -0
  82. data/testdata/good/i18n_fr.feature.tokens +64 -0
  83. data/testdata/good/i18n_no.feature +7 -0
  84. data/testdata/good/i18n_no.feature.ast.ndjson +1 -0
  85. data/testdata/good/i18n_no.feature.pickles.ndjson +1 -0
  86. data/testdata/good/i18n_no.feature.source.ndjson +1 -0
  87. data/testdata/good/i18n_no.feature.tokens +8 -0
  88. data/testdata/good/incomplete_background_1.feature +6 -0
  89. data/testdata/good/incomplete_background_1.feature.ast.ndjson +1 -0
  90. data/testdata/good/incomplete_background_1.feature.pickles.ndjson +1 -0
  91. data/testdata/good/incomplete_background_1.feature.source.ndjson +1 -0
  92. data/testdata/good/incomplete_background_1.feature.tokens +7 -0
  93. data/testdata/good/incomplete_background_2.feature +7 -0
  94. data/testdata/good/incomplete_background_2.feature.ast.ndjson +1 -0
  95. data/testdata/good/incomplete_background_2.feature.pickles.ndjson +1 -0
  96. data/testdata/good/incomplete_background_2.feature.source.ndjson +1 -0
  97. data/testdata/good/incomplete_background_2.feature.tokens +8 -0
  98. data/testdata/good/incomplete_feature_1.feature +2 -0
  99. data/testdata/good/incomplete_feature_1.feature.ast.ndjson +1 -0
  100. data/testdata/good/incomplete_feature_1.feature.pickles.ndjson +0 -0
  101. data/testdata/good/incomplete_feature_1.feature.source.ndjson +1 -0
  102. data/testdata/good/incomplete_feature_1.feature.tokens +3 -0
  103. data/testdata/good/incomplete_feature_2.feature +1 -0
  104. data/testdata/good/incomplete_feature_2.feature.ast.ndjson +1 -0
  105. data/testdata/good/incomplete_feature_2.feature.pickles.ndjson +0 -0
  106. data/testdata/good/incomplete_feature_2.feature.source.ndjson +1 -0
  107. data/testdata/good/incomplete_feature_2.feature.tokens +2 -0
  108. data/testdata/good/incomplete_feature_3.feature +1 -0
  109. data/testdata/good/incomplete_feature_3.feature.ast.ndjson +1 -0
  110. data/testdata/good/incomplete_feature_3.feature.pickles.ndjson +0 -0
  111. data/testdata/good/incomplete_feature_3.feature.source.ndjson +1 -0
  112. data/testdata/good/incomplete_feature_3.feature.tokens +2 -0
  113. data/testdata/good/incomplete_scenario.feature +6 -0
  114. data/testdata/good/incomplete_scenario.feature.ast.ndjson +1 -0
  115. data/testdata/good/incomplete_scenario.feature.pickles.ndjson +0 -0
  116. data/testdata/good/incomplete_scenario.feature.source.ndjson +1 -0
  117. data/testdata/good/incomplete_scenario.feature.tokens +7 -0
  118. data/testdata/good/incomplete_scenario_outline.feature +24 -0
  119. data/testdata/good/incomplete_scenario_outline.feature.ast.ndjson +1 -0
  120. data/testdata/good/incomplete_scenario_outline.feature.pickles.ndjson +0 -0
  121. data/testdata/good/incomplete_scenario_outline.feature.source.ndjson +1 -0
  122. data/testdata/good/incomplete_scenario_outline.feature.tokens +25 -0
  123. data/testdata/good/language.feature +6 -0
  124. data/testdata/good/language.feature.ast.ndjson +1 -0
  125. data/testdata/good/language.feature.pickles.ndjson +1 -0
  126. data/testdata/good/language.feature.source.ndjson +1 -0
  127. data/testdata/good/language.feature.tokens +7 -0
  128. data/testdata/good/minimal.feature +4 -0
  129. data/testdata/good/minimal.feature.ast.ndjson +1 -0
  130. data/testdata/good/minimal.feature.pickles.ndjson +1 -0
  131. data/testdata/good/minimal.feature.source.ndjson +1 -0
  132. data/testdata/good/minimal.feature.tokens +5 -0
  133. data/testdata/good/readme_example.feature +18 -0
  134. data/testdata/good/readme_example.feature.ast.ndjson +1 -0
  135. data/testdata/good/readme_example.feature.pickles.ndjson +2 -0
  136. data/testdata/good/readme_example.feature.source.ndjson +1 -0
  137. data/testdata/good/readme_example.feature.tokens +19 -0
  138. data/testdata/good/scenario_outline.feature +8 -0
  139. data/testdata/good/scenario_outline.feature.ast.ndjson +1 -0
  140. data/testdata/good/scenario_outline.feature.pickles.ndjson +1 -0
  141. data/testdata/good/scenario_outline.feature.source.ndjson +1 -0
  142. data/testdata/good/scenario_outline.feature.tokens +9 -0
  143. data/testdata/good/scenario_outline_no_newline.feature +8 -0
  144. data/testdata/good/scenario_outline_no_newline.feature.ast.ndjson +1 -0
  145. data/testdata/good/scenario_outline_no_newline.feature.pickles.ndjson +1 -0
  146. data/testdata/good/scenario_outline_no_newline.feature.source.ndjson +1 -0
  147. data/testdata/good/scenario_outline_no_newline.feature.tokens +9 -0
  148. data/testdata/good/scenario_outlines_with_tags.feature +18 -0
  149. data/testdata/good/scenario_outlines_with_tags.feature.ast.ndjson +1 -0
  150. data/testdata/good/scenario_outlines_with_tags.feature.pickles.ndjson +2 -0
  151. data/testdata/good/scenario_outlines_with_tags.feature.source.ndjson +1 -0
  152. data/testdata/good/scenario_outlines_with_tags.feature.tokens +19 -0
  153. data/testdata/good/several_examples.feature +17 -0
  154. data/testdata/good/several_examples.feature.ast.ndjson +1 -0
  155. data/testdata/good/several_examples.feature.pickles.ndjson +2 -0
  156. data/testdata/good/several_examples.feature.source.ndjson +1 -0
  157. data/testdata/good/several_examples.feature.tokens +18 -0
  158. data/testdata/good/spaces_in_language.feature +2 -0
  159. data/testdata/good/spaces_in_language.feature.ast.ndjson +1 -0
  160. data/testdata/good/spaces_in_language.feature.pickles.ndjson +0 -0
  161. data/testdata/good/spaces_in_language.feature.source.ndjson +1 -0
  162. data/testdata/good/spaces_in_language.feature.tokens +3 -0
  163. data/testdata/good/tags.feature +25 -0
  164. data/testdata/good/tags.feature.ast.ndjson +1 -0
  165. data/testdata/good/tags.feature.pickles.ndjson +3 -0
  166. data/testdata/good/tags.feature.source.ndjson +1 -0
  167. data/testdata/good/tags.feature.tokens +26 -0
  168. metadata +176 -25
  169. data/bin/gherkin-generate-ast +0 -22
  170. data/bin/gherkin-generate-pickles +0 -26
File without changes
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/empty.feature"}
@@ -0,0 +1 @@
1
+ {"data":"","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/empty.feature"}
@@ -0,0 +1,11 @@
1
+ Feature: Escaped pipes
2
+ The \-character will be considered as an escape in table cell
3
+ iff it is followed by a |-character, a \-character or an n.
4
+
5
+ Scenario: They are the future
6
+ Given they have arrived
7
+ | æ | o |
8
+ | a | ø |
9
+ Given they have arrived
10
+ | \|æ\\n | \o\no\ |
11
+ | \\\|a\\\\n | ø\\\nø\\|
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scenario","location":{"column":3,"line":5},"name":"They are the future","steps":[{"argument":{"location":{"column":7,"line":7},"rows":[{"cells":[{"location":{"column":9,"line":7},"type":"TableCell","value":"æ"},{"location":{"column":13,"line":7},"type":"TableCell","value":"o"}],"location":{"column":7,"line":7},"type":"TableRow"},{"cells":[{"location":{"column":9,"line":8},"type":"TableCell","value":"a"},{"location":{"column":13,"line":8},"type":"TableCell","value":"ø"}],"location":{"column":7,"line":8},"type":"TableRow"}],"type":"DataTable"},"keyword":"Given ","location":{"column":5,"line":6},"text":"they have arrived","type":"Step"},{"argument":{"location":{"column":7,"line":10},"rows":[{"cells":[{"location":{"column":9,"line":10},"type":"TableCell","value":"|æ\\n"},{"location":{"column":22,"line":10},"type":"TableCell","value":"\\o\no\\"}],"location":{"column":7,"line":10},"type":"TableRow"},{"cells":[{"location":{"column":9,"line":11},"type":"TableCell","value":"\\|a\\\\n"},{"location":{"column":22,"line":11},"type":"TableCell","value":"ø\\\nø\\"}],"location":{"column":7,"line":11},"type":"TableRow"}],"type":"DataTable"},"keyword":"Given ","location":{"column":5,"line":9},"text":"they have arrived","type":"Step"}],"tags":[],"type":"Scenario"}],"description":" The \\-character will be considered as an escape in table cell\n iff it is followed by a |-character, a \\-character or an n.","keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Escaped pipes","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/escaped_pipes.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":5}],"name":"They are the future","steps":[{"arguments":[{"rows":[{"cells":[{"location":{"column":9,"line":7},"value":"æ"},{"location":{"column":13,"line":7},"value":"o"}]},{"cells":[{"location":{"column":9,"line":8},"value":"a"},{"location":{"column":13,"line":8},"value":"ø"}]}]}],"locations":[{"column":11,"line":6}],"text":"they have arrived"},{"arguments":[{"rows":[{"cells":[{"location":{"column":9,"line":10},"value":"|æ\\n"},{"location":{"column":22,"line":10},"value":"\\o\no\\"}]},{"cells":[{"location":{"column":9,"line":11},"value":"\\|a\\\\n"},{"location":{"column":22,"line":11},"value":"ø\\\nø\\"}]}]}],"locations":[{"column":11,"line":9}],"text":"they have arrived"}],"tags":[]},"type":"pickle","uri":"testdata/good/escaped_pipes.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Escaped pipes\n The \\-character will be considered as an escape in table cell\n iff it is followed by a |-character, a \\-character or an n.\n\n Scenario: They are the future\n Given they have arrived\n | æ | o |\n | a | ø |\n Given they have arrived\n | \\|æ\\\\n | \\o\\no\\ |\n | \\\\\\|a\\\\\\\\n | ø\\\\\\nø\\\\|\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/escaped_pipes.feature"}
@@ -0,0 +1,14 @@
1
+ (1:1)FeatureLine:Feature/Escaped pipes/
2
+ (2:1)Other:/ The \-character will be considered as an escape in table cell/
3
+ (3:1)Other:/ iff it is followed by a |-character, a \-character or an n./
4
+ (4:1)Other://
5
+ (5:3)ScenarioLine:Scenario/They are the future/
6
+ (6:5)StepLine:Given /they have arrived/
7
+ (7:7)TableRow://9:æ,13:o
8
+ (8:7)TableRow://9:a,13:ø
9
+ (9:5)StepLine:Given /they have arrived/
10
+ (10:7)TableRow://9:|æ\n,22:\o
11
+ o\
12
+ (11:7)TableRow://9:\|a\\n,22:ø\
13
+ ø\
14
+ EOF
@@ -0,0 +1,8 @@
1
+ Feature: Example token used multiple times
2
+
3
+ Scenario Outline: Token used twice in a single step
4
+ Given <what> <what>
5
+
6
+ Examples:
7
+ | what |
8
+ | usage |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":5,"line":6},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":8},"type":"TableCell","value":"usage"}],"location":{"column":7,"line":8},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":7},"type":"TableCell","value":"what"}],"location":{"column":7,"line":7},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":3},"name":"Token used twice in a single step","steps":[{"keyword":"Given ","location":{"column":5,"line":4},"text":"<what> <what>","type":"Step"}],"tags":[],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Example token used multiple times","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/example_token_multiple.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":7,"line":8},{"column":3,"line":3}],"name":"Token used twice in a single step","steps":[{"arguments":[],"locations":[{"column":7,"line":8},{"column":11,"line":4}],"text":"usage usage"}],"tags":[]},"type":"pickle","uri":"testdata/good/example_token_multiple.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Example token used multiple times\n\n Scenario Outline: Token used twice in a single step\n Given <what> <what>\n\n Examples:\n | what |\n | usage |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/example_token_multiple.feature"}
@@ -0,0 +1,9 @@
1
+ (1:1)FeatureLine:Feature/Example token used multiple times/
2
+ (2:1)Empty://
3
+ (3:3)ScenarioOutlineLine:Scenario Outline/Token used twice in a single step/
4
+ (4:5)StepLine:Given /<what> <what>/
5
+ (5:1)Empty://
6
+ (6:5)ExamplesLine:Examples//
7
+ (7:7)TableRow://9:what
8
+ (8:7)TableRow://9:usage
9
+ EOF
@@ -0,0 +1,14 @@
1
+ Feature: Example tokens everywhere
2
+
3
+ Scenario Outline: the <one>
4
+ Given the <two>:
5
+ """
6
+ <three>
7
+ """
8
+ Given the <four>:
9
+ | <five> |
10
+
11
+ Examples:
12
+ | one | two | three | four | five |
13
+ | un | deux | trois | quatre | cinq |
14
+ | uno | dos | tres | quatro | cinco |
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"examples":[{"keyword":"Examples","location":{"column":5,"line":11},"name":"","tableBody":[{"cells":[{"location":{"column":9,"line":13},"type":"TableCell","value":"un"},{"location":{"column":15,"line":13},"type":"TableCell","value":"deux"},{"location":{"column":22,"line":13},"type":"TableCell","value":"trois"},{"location":{"column":30,"line":13},"type":"TableCell","value":"quatre"},{"location":{"column":39,"line":13},"type":"TableCell","value":"cinq"}],"location":{"column":7,"line":13},"type":"TableRow"},{"cells":[{"location":{"column":9,"line":14},"type":"TableCell","value":"uno"},{"location":{"column":15,"line":14},"type":"TableCell","value":"dos"},{"location":{"column":22,"line":14},"type":"TableCell","value":"tres"},{"location":{"column":30,"line":14},"type":"TableCell","value":"quatro"},{"location":{"column":39,"line":14},"type":"TableCell","value":"cinco"}],"location":{"column":7,"line":14},"type":"TableRow"}],"tableHeader":{"cells":[{"location":{"column":9,"line":12},"type":"TableCell","value":"one"},{"location":{"column":15,"line":12},"type":"TableCell","value":"two"},{"location":{"column":22,"line":12},"type":"TableCell","value":"three"},{"location":{"column":30,"line":12},"type":"TableCell","value":"four"},{"location":{"column":39,"line":12},"type":"TableCell","value":"five"}],"location":{"column":7,"line":12},"type":"TableRow"},"tags":[],"type":"Examples"}],"keyword":"Scenario Outline","location":{"column":3,"line":3},"name":"the <one>","steps":[{"argument":{"content":"<three>","location":{"column":7,"line":5},"type":"DocString"},"keyword":"Given ","location":{"column":5,"line":4},"text":"the <two>:","type":"Step"},{"argument":{"location":{"column":7,"line":9},"rows":[{"cells":[{"location":{"column":9,"line":9},"type":"TableCell","value":"<five>"}],"location":{"column":7,"line":9},"type":"TableRow"}],"type":"DataTable"},"keyword":"Given ","location":{"column":5,"line":8},"text":"the <four>:","type":"Step"}],"tags":[],"type":"ScenarioOutline"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Example tokens everywhere","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/example_tokens_everywhere.feature"}
@@ -0,0 +1,2 @@
1
+ {"pickle":{"language":"en","locations":[{"column":7,"line":13},{"column":3,"line":3}],"name":"the un","steps":[{"arguments":[{"content":"trois","location":{"column":7,"line":5}}],"locations":[{"column":7,"line":13},{"column":11,"line":4}],"text":"the deux:"},{"arguments":[{"rows":[{"cells":[{"location":{"column":9,"line":9},"value":"cinq"}]}]}],"locations":[{"column":7,"line":13},{"column":11,"line":8}],"text":"the quatre:"}],"tags":[]},"type":"pickle","uri":"testdata/good/example_tokens_everywhere.feature"}
2
+ {"pickle":{"language":"en","locations":[{"column":7,"line":14},{"column":3,"line":3}],"name":"the uno","steps":[{"arguments":[{"content":"tres","location":{"column":7,"line":5}}],"locations":[{"column":7,"line":14},{"column":11,"line":4}],"text":"the dos:"},{"arguments":[{"rows":[{"cells":[{"location":{"column":9,"line":9},"value":"cinco"}]}]}],"locations":[{"column":7,"line":14},{"column":11,"line":8}],"text":"the quatro:"}],"tags":[]},"type":"pickle","uri":"testdata/good/example_tokens_everywhere.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Example tokens everywhere\n\n Scenario Outline: the <one>\n Given the <two>:\n \"\"\"\n <three>\n \"\"\"\n Given the <four>:\n | <five> |\n\n Examples:\n | one | two | three | four | five |\n | un | deux | trois | quatre | cinq |\n | uno | dos | tres | quatro | cinco |\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/example_tokens_everywhere.feature"}
@@ -0,0 +1,15 @@
1
+ (1:1)FeatureLine:Feature/Example tokens everywhere/
2
+ (2:1)Empty://
3
+ (3:3)ScenarioOutlineLine:Scenario Outline/the <one>/
4
+ (4:5)StepLine:Given /the <two>:/
5
+ (5:7)DocStringSeparator://
6
+ (6:1)Other:/<three>/
7
+ (7:7)DocStringSeparator://
8
+ (8:5)StepLine:Given /the <four>:/
9
+ (9:7)TableRow://9:<five>
10
+ (10:1)Empty://
11
+ (11:5)ExamplesLine:Examples//
12
+ (12:7)TableRow://9:one,15:two,22:three,30:four,39:five
13
+ (13:7)TableRow://9:un,15:deux,22:trois,30:quatre,39:cinq
14
+ (14:7)TableRow://9:uno,15:dos,22:tres,30:quatro,39:cinco
15
+ EOF
@@ -0,0 +1,5 @@
1
+ # language: em
2
+ 📚: 🙈🙉🙊
3
+
4
+ 📕: 💃
5
+ 😐🎸
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"📕","location":{"column":3,"line":4},"name":"💃","steps":[{"keyword":"😐","location":{"column":5,"line":5},"text":"🎸","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"📚","language":"em","location":{"column":1,"line":2},"name":"🙈🙉🙊","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/i18n_emoji.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"em","locations":[{"column":3,"line":4}],"name":"💃","steps":[{"arguments":[],"locations":[{"column":6,"line":5}],"text":"🎸"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_emoji.feature"}
@@ -0,0 +1 @@
1
+ {"data":"# language: em\n📚: 🙈🙉🙊\n\n 📕: 💃\n 😐🎸\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/i18n_emoji.feature"}
@@ -0,0 +1,6 @@
1
+ (1:1)Language:/em/
2
+ (2:1)FeatureLine:📚/🙈🙉🙊/
3
+ (3:1)Empty://
4
+ (4:3)ScenarioLine:📕/💃/
5
+ (5:5)StepLine:😐/🎸/
6
+ EOF
@@ -0,0 +1,63 @@
1
+ #language:fr
2
+ Fonctionnalité: i18n support
3
+
4
+ Scénario: Support des caractères spéciaux
5
+ Soit un exemple de scénario en français
6
+ Quand j'ai 1 gâteau
7
+ Alors je suis heureux
8
+
9
+ Scénario: Support du mot-clef "Etant donné que "
10
+ Etant donné que j'aime les gâteaux
11
+ Lorsqu'on m'offre 1 gâteau
12
+ Alors je suis heureux
13
+
14
+ Scénario: Support du mot-clef "Etant donné qu'"
15
+ Etant donné qu'offrir un gâteau rend heureux
16
+ Lorsqu'on m'offre 1 gâteau
17
+ Alors je suis heureux
18
+
19
+ Scénario: Support du mot-clef "Étant donné que "
20
+ Étant donné que j'aime les gâteaux
21
+ Lorsqu'on m'offre 1 gâteau
22
+ Alors je suis heureux
23
+
24
+ Scénario: Support du mot-clef "Étant donné qu'"
25
+ Étant donné qu'offrir un gâteau rend heureux
26
+ Lorsqu'on m'offre 1 gâteau
27
+ Alors je suis heureux
28
+
29
+ Scénario: Support du mot-clef "Et que "
30
+ Soit un exemple de scénario en français
31
+ Lorsque j'ai 2 gâteaux
32
+ Et que quelqu'un m'offre 1 gâteau
33
+ Alors j'ai 3 gâteaux
34
+
35
+ Scénario: Support du mot-clef "Et qu'"
36
+ Soit un exemple de scénario en français
37
+ Lorsque j'ai 2 gâteaux
38
+ Et qu'on m'offre 1 gâteau
39
+ Alors j'ai 3 gâteaux
40
+
41
+ Scénario: Support du mot-clef "Et "
42
+ Soit un exemple de scénario en français
43
+ Quand j'ai 2 gâteaux
44
+ Et quelqu'un m'offre 1 gâteau
45
+ Alors j'ai 3 gâteaux
46
+
47
+ Scénario: Support du mot-clef "Mais que "
48
+ Soit un exemple de scénario en français
49
+ Lorsque j'ai 2 gâteaux
50
+ Mais que quelqu'un me vole 1 gâteau
51
+ Alors j'ai 1 gâteau
52
+
53
+ Scénario: Support du mot-clef "Mais qu'"
54
+ Soit un exemple de scénario en français
55
+ Lorsque j'ai 2 gâteaux
56
+ Mais qu'on me vole 1 gâteau
57
+ Alors j'ai 1 gâteau
58
+
59
+ Scénario: Support du mot-clef "Mais "
60
+ Soit un exemple de scénario en français
61
+ Quand j'ai 2 gâteaux
62
+ Mais quelqu'un me vole 1 gâteau
63
+ Alors j'ai 1 gâteau
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scénario","location":{"column":3,"line":4},"name":"Support des caractères spéciaux","steps":[{"keyword":"Soit ","location":{"column":5,"line":5},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Quand ","location":{"column":5,"line":6},"text":"j'ai 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":7},"text":"je suis heureux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":9},"name":"Support du mot-clef \"Etant donné que \"","steps":[{"keyword":"Etant donné que ","location":{"column":5,"line":10},"text":"j'aime les gâteaux","type":"Step"},{"keyword":"Lorsqu'","location":{"column":5,"line":11},"text":"on m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":12},"text":"je suis heureux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":14},"name":"Support du mot-clef \"Etant donné qu'\"","steps":[{"keyword":"Etant donné qu'","location":{"column":5,"line":15},"text":"offrir un gâteau rend heureux","type":"Step"},{"keyword":"Lorsqu'","location":{"column":5,"line":16},"text":"on m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":17},"text":"je suis heureux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":19},"name":"Support du mot-clef \"Étant donné que \"","steps":[{"keyword":"Étant donné que ","location":{"column":5,"line":20},"text":"j'aime les gâteaux","type":"Step"},{"keyword":"Lorsqu'","location":{"column":5,"line":21},"text":"on m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":22},"text":"je suis heureux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":24},"name":"Support du mot-clef \"Étant donné qu'\"","steps":[{"keyword":"Étant donné qu'","location":{"column":5,"line":25},"text":"offrir un gâteau rend heureux","type":"Step"},{"keyword":"Lorsqu'","location":{"column":5,"line":26},"text":"on m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":27},"text":"je suis heureux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":29},"name":"Support du mot-clef \"Et que \"","steps":[{"keyword":"Soit ","location":{"column":5,"line":30},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Lorsque ","location":{"column":5,"line":31},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Et que ","location":{"column":5,"line":32},"text":"quelqu'un m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":33},"text":"j'ai 3 gâteaux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":35},"name":"Support du mot-clef \"Et qu'\"","steps":[{"keyword":"Soit ","location":{"column":5,"line":36},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Lorsque ","location":{"column":5,"line":37},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Et qu'","location":{"column":5,"line":38},"text":"on m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":39},"text":"j'ai 3 gâteaux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":41},"name":"Support du mot-clef \"Et \"","steps":[{"keyword":"Soit ","location":{"column":5,"line":42},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Quand ","location":{"column":5,"line":43},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Et ","location":{"column":5,"line":44},"text":"quelqu'un m'offre 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":45},"text":"j'ai 3 gâteaux","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":47},"name":"Support du mot-clef \"Mais que \"","steps":[{"keyword":"Soit ","location":{"column":5,"line":48},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Lorsque ","location":{"column":5,"line":49},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Mais que ","location":{"column":5,"line":50},"text":"quelqu'un me vole 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":51},"text":"j'ai 1 gâteau","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":53},"name":"Support du mot-clef \"Mais qu'\"","steps":[{"keyword":"Soit ","location":{"column":5,"line":54},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Lorsque ","location":{"column":5,"line":55},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Mais qu'","location":{"column":5,"line":56},"text":"on me vole 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":57},"text":"j'ai 1 gâteau","type":"Step"}],"tags":[],"type":"Scenario"},{"keyword":"Scénario","location":{"column":3,"line":59},"name":"Support du mot-clef \"Mais \"","steps":[{"keyword":"Soit ","location":{"column":5,"line":60},"text":"un exemple de scénario en français","type":"Step"},{"keyword":"Quand ","location":{"column":5,"line":61},"text":"j'ai 2 gâteaux","type":"Step"},{"keyword":"Mais ","location":{"column":5,"line":62},"text":"quelqu'un me vole 1 gâteau","type":"Step"},{"keyword":"Alors ","location":{"column":5,"line":63},"text":"j'ai 1 gâteau","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Fonctionnalité","language":"fr","location":{"column":1,"line":2},"name":"i18n support","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/i18n_fr.feature"}
@@ -0,0 +1,11 @@
1
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":4}],"name":"Support des caractères spéciaux","steps":[{"arguments":[],"locations":[{"column":10,"line":5}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":11,"line":6}],"text":"j'ai 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":7}],"text":"je suis heureux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
2
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":9}],"name":"Support du mot-clef \"Etant donné que \"","steps":[{"arguments":[],"locations":[{"column":21,"line":10}],"text":"j'aime les gâteaux"},{"arguments":[],"locations":[{"column":12,"line":11}],"text":"on m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":12}],"text":"je suis heureux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
3
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":14}],"name":"Support du mot-clef \"Etant donné qu'\"","steps":[{"arguments":[],"locations":[{"column":20,"line":15}],"text":"offrir un gâteau rend heureux"},{"arguments":[],"locations":[{"column":12,"line":16}],"text":"on m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":17}],"text":"je suis heureux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
4
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":19}],"name":"Support du mot-clef \"Étant donné que \"","steps":[{"arguments":[],"locations":[{"column":21,"line":20}],"text":"j'aime les gâteaux"},{"arguments":[],"locations":[{"column":12,"line":21}],"text":"on m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":22}],"text":"je suis heureux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
5
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":24}],"name":"Support du mot-clef \"Étant donné qu'\"","steps":[{"arguments":[],"locations":[{"column":20,"line":25}],"text":"offrir un gâteau rend heureux"},{"arguments":[],"locations":[{"column":12,"line":26}],"text":"on m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":27}],"text":"je suis heureux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
6
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":29}],"name":"Support du mot-clef \"Et que \"","steps":[{"arguments":[],"locations":[{"column":10,"line":30}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":13,"line":31}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":12,"line":32}],"text":"quelqu'un m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":33}],"text":"j'ai 3 gâteaux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
7
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":35}],"name":"Support du mot-clef \"Et qu'\"","steps":[{"arguments":[],"locations":[{"column":10,"line":36}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":13,"line":37}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":11,"line":38}],"text":"on m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":39}],"text":"j'ai 3 gâteaux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
8
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":41}],"name":"Support du mot-clef \"Et \"","steps":[{"arguments":[],"locations":[{"column":10,"line":42}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":11,"line":43}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":8,"line":44}],"text":"quelqu'un m'offre 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":45}],"text":"j'ai 3 gâteaux"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
9
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":47}],"name":"Support du mot-clef \"Mais que \"","steps":[{"arguments":[],"locations":[{"column":10,"line":48}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":13,"line":49}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":14,"line":50}],"text":"quelqu'un me vole 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":51}],"text":"j'ai 1 gâteau"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
10
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":53}],"name":"Support du mot-clef \"Mais qu'\"","steps":[{"arguments":[],"locations":[{"column":10,"line":54}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":13,"line":55}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":13,"line":56}],"text":"on me vole 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":57}],"text":"j'ai 1 gâteau"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
11
+ {"pickle":{"language":"fr","locations":[{"column":3,"line":59}],"name":"Support du mot-clef \"Mais \"","steps":[{"arguments":[],"locations":[{"column":10,"line":60}],"text":"un exemple de scénario en français"},{"arguments":[],"locations":[{"column":11,"line":61}],"text":"j'ai 2 gâteaux"},{"arguments":[],"locations":[{"column":10,"line":62}],"text":"quelqu'un me vole 1 gâteau"},{"arguments":[],"locations":[{"column":11,"line":63}],"text":"j'ai 1 gâteau"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_fr.feature"}
@@ -0,0 +1 @@
1
+ {"data":"#language:fr\nFonctionnalité: i18n support\n\n Scénario: Support des caractères spéciaux\n Soit un exemple de scénario en français\n Quand j'ai 1 gâteau\n Alors je suis heureux\n\n Scénario: Support du mot-clef \"Etant donné que \"\n Etant donné que j'aime les gâteaux\n Lorsqu'on m'offre 1 gâteau\n Alors je suis heureux\n\n Scénario: Support du mot-clef \"Etant donné qu'\"\n Etant donné qu'offrir un gâteau rend heureux\n Lorsqu'on m'offre 1 gâteau\n Alors je suis heureux\n\n Scénario: Support du mot-clef \"Étant donné que \"\n Étant donné que j'aime les gâteaux \n Lorsqu'on m'offre 1 gâteau\n Alors je suis heureux\n\n Scénario: Support du mot-clef \"Étant donné qu'\"\n Étant donné qu'offrir un gâteau rend heureux\n Lorsqu'on m'offre 1 gâteau\n Alors je suis heureux\n\n Scénario: Support du mot-clef \"Et que \"\n Soit un exemple de scénario en français\n Lorsque j'ai 2 gâteaux\n Et que quelqu'un m'offre 1 gâteau\n Alors j'ai 3 gâteaux\n\n Scénario: Support du mot-clef \"Et qu'\"\n Soit un exemple de scénario en français\n Lorsque j'ai 2 gâteaux\n Et qu'on m'offre 1 gâteau\n Alors j'ai 3 gâteaux\n\n Scénario: Support du mot-clef \"Et \"\n Soit un exemple de scénario en français\n Quand j'ai 2 gâteaux\n Et quelqu'un m'offre 1 gâteau\n Alors j'ai 3 gâteaux\n\n Scénario: Support du mot-clef \"Mais que \"\n Soit un exemple de scénario en français\n Lorsque j'ai 2 gâteaux\n Mais que quelqu'un me vole 1 gâteau\n Alors j'ai 1 gâteau\n\n Scénario: Support du mot-clef \"Mais qu'\"\n Soit un exemple de scénario en français\n Lorsque j'ai 2 gâteaux\n Mais qu'on me vole 1 gâteau\n Alors j'ai 1 gâteau\n\n Scénario: Support du mot-clef \"Mais \"\n Soit un exemple de scénario en français\n Quand j'ai 2 gâteaux\n Mais quelqu'un me vole 1 gâteau\n Alors j'ai 1 gâteau\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/i18n_fr.feature"}
@@ -0,0 +1,64 @@
1
+ (1:1)Language:/fr/
2
+ (2:1)FeatureLine:Fonctionnalité/i18n support/
3
+ (3:1)Empty://
4
+ (4:3)ScenarioLine:Scénario/Support des caractères spéciaux/
5
+ (5:5)StepLine:Soit /un exemple de scénario en français/
6
+ (6:5)StepLine:Quand /j'ai 1 gâteau/
7
+ (7:5)StepLine:Alors /je suis heureux/
8
+ (8:1)Empty://
9
+ (9:3)ScenarioLine:Scénario/Support du mot-clef "Etant donné que "/
10
+ (10:5)StepLine:Etant donné que /j'aime les gâteaux/
11
+ (11:5)StepLine:Lorsqu'/on m'offre 1 gâteau/
12
+ (12:5)StepLine:Alors /je suis heureux/
13
+ (13:1)Empty://
14
+ (14:3)ScenarioLine:Scénario/Support du mot-clef "Etant donné qu'"/
15
+ (15:5)StepLine:Etant donné qu'/offrir un gâteau rend heureux/
16
+ (16:5)StepLine:Lorsqu'/on m'offre 1 gâteau/
17
+ (17:5)StepLine:Alors /je suis heureux/
18
+ (18:1)Empty://
19
+ (19:3)ScenarioLine:Scénario/Support du mot-clef "Étant donné que "/
20
+ (20:5)StepLine:Étant donné que /j'aime les gâteaux/
21
+ (21:5)StepLine:Lorsqu'/on m'offre 1 gâteau/
22
+ (22:5)StepLine:Alors /je suis heureux/
23
+ (23:1)Empty://
24
+ (24:3)ScenarioLine:Scénario/Support du mot-clef "Étant donné qu'"/
25
+ (25:5)StepLine:Étant donné qu'/offrir un gâteau rend heureux/
26
+ (26:5)StepLine:Lorsqu'/on m'offre 1 gâteau/
27
+ (27:5)StepLine:Alors /je suis heureux/
28
+ (28:1)Empty://
29
+ (29:3)ScenarioLine:Scénario/Support du mot-clef "Et que "/
30
+ (30:5)StepLine:Soit /un exemple de scénario en français/
31
+ (31:5)StepLine:Lorsque /j'ai 2 gâteaux/
32
+ (32:5)StepLine:Et que /quelqu'un m'offre 1 gâteau/
33
+ (33:5)StepLine:Alors /j'ai 3 gâteaux/
34
+ (34:1)Empty://
35
+ (35:3)ScenarioLine:Scénario/Support du mot-clef "Et qu'"/
36
+ (36:5)StepLine:Soit /un exemple de scénario en français/
37
+ (37:5)StepLine:Lorsque /j'ai 2 gâteaux/
38
+ (38:5)StepLine:Et qu'/on m'offre 1 gâteau/
39
+ (39:5)StepLine:Alors /j'ai 3 gâteaux/
40
+ (40:1)Empty://
41
+ (41:3)ScenarioLine:Scénario/Support du mot-clef "Et "/
42
+ (42:5)StepLine:Soit /un exemple de scénario en français/
43
+ (43:5)StepLine:Quand /j'ai 2 gâteaux/
44
+ (44:5)StepLine:Et /quelqu'un m'offre 1 gâteau/
45
+ (45:5)StepLine:Alors /j'ai 3 gâteaux/
46
+ (46:1)Empty://
47
+ (47:3)ScenarioLine:Scénario/Support du mot-clef "Mais que "/
48
+ (48:5)StepLine:Soit /un exemple de scénario en français/
49
+ (49:5)StepLine:Lorsque /j'ai 2 gâteaux/
50
+ (50:5)StepLine:Mais que /quelqu'un me vole 1 gâteau/
51
+ (51:5)StepLine:Alors /j'ai 1 gâteau/
52
+ (52:1)Empty://
53
+ (53:3)ScenarioLine:Scénario/Support du mot-clef "Mais qu'"/
54
+ (54:5)StepLine:Soit /un exemple de scénario en français/
55
+ (55:5)StepLine:Lorsque /j'ai 2 gâteaux/
56
+ (56:5)StepLine:Mais qu'/on me vole 1 gâteau/
57
+ (57:5)StepLine:Alors /j'ai 1 gâteau/
58
+ (58:1)Empty://
59
+ (59:3)ScenarioLine:Scénario/Support du mot-clef "Mais "/
60
+ (60:5)StepLine:Soit /un exemple de scénario en français/
61
+ (61:5)StepLine:Quand /j'ai 2 gâteaux/
62
+ (62:5)StepLine:Mais /quelqu'un me vole 1 gâteau/
63
+ (63:5)StepLine:Alors /j'ai 1 gâteau/
64
+ EOF
@@ -0,0 +1,7 @@
1
+ #language:no
2
+ Egenskap: i18n support
3
+
4
+ Scenario: Parsing many languages
5
+ Gitt Gherkin supports many languages
6
+ Når Norwegian keywords are parsed
7
+ Så they should be recognized
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Scenario","location":{"column":3,"line":4},"name":"Parsing many languages","steps":[{"keyword":"Gitt ","location":{"column":5,"line":5},"text":"Gherkin supports many languages","type":"Step"},{"keyword":"Når ","location":{"column":5,"line":6},"text":"Norwegian keywords are parsed","type":"Step"},{"keyword":"Så ","location":{"column":5,"line":7},"text":"they should be recognized","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Egenskap","language":"no","location":{"column":1,"line":2},"name":"i18n support","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/i18n_no.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"no","locations":[{"column":3,"line":4}],"name":"Parsing many languages","steps":[{"arguments":[],"locations":[{"column":10,"line":5}],"text":"Gherkin supports many languages"},{"arguments":[],"locations":[{"column":9,"line":6}],"text":"Norwegian keywords are parsed"},{"arguments":[],"locations":[{"column":8,"line":7}],"text":"they should be recognized"}],"tags":[]},"type":"pickle","uri":"testdata/good/i18n_no.feature"}
@@ -0,0 +1 @@
1
+ {"data":"#language:no\nEgenskap: i18n support\n\n Scenario: Parsing many languages\n Gitt Gherkin supports many languages\n Når Norwegian keywords are parsed\n Så they should be recognized\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/i18n_no.feature"}
@@ -0,0 +1,8 @@
1
+ (1:1)Language:/no/
2
+ (2:1)FeatureLine:Egenskap/i18n support/
3
+ (3:1)Empty://
4
+ (4:3)ScenarioLine:Scenario/Parsing many languages/
5
+ (5:5)StepLine:Gitt /Gherkin supports many languages/
6
+ (6:5)StepLine:Når /Norwegian keywords are parsed/
7
+ (7:5)StepLine:Så /they should be recognized/
8
+ EOF
@@ -0,0 +1,6 @@
1
+ Feature: Incomplete backgrounds, Part 1
2
+
3
+ Background: no steps
4
+
5
+ Scenario: still pickles up
6
+ * a step
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Background","location":{"column":3,"line":3},"name":"no steps","steps":[],"type":"Background"},{"keyword":"Scenario","location":{"column":3,"line":5},"name":"still pickles up","steps":[{"keyword":"* ","location":{"column":5,"line":6},"text":"a step","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Incomplete backgrounds, Part 1","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_background_1.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":5}],"name":"still pickles up","steps":[{"arguments":[],"locations":[{"column":7,"line":6}],"text":"a step"}],"tags":[]},"type":"pickle","uri":"testdata/good/incomplete_background_1.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Incomplete backgrounds, Part 1\n\n Background: no steps\n\n Scenario: still pickles up\n * a step\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_background_1.feature"}
@@ -0,0 +1,7 @@
1
+ (1:1)FeatureLine:Feature/Incomplete backgrounds, Part 1/
2
+ (2:1)Empty://
3
+ (3:3)BackgroundLine:Background/no steps/
4
+ (4:1)Empty://
5
+ (5:3)ScenarioLine:Scenario/still pickles up/
6
+ (6:5)StepLine:* /a step/
7
+ EOF
@@ -0,0 +1,7 @@
1
+ Feature: Incomplete backgrounds, Part 2
2
+
3
+ Background: just a description
4
+ A short description
5
+
6
+ Scenario: still pickles up
7
+ * a step
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"description":" A short description","keyword":"Background","location":{"column":3,"line":3},"name":"just a description","steps":[],"type":"Background"},{"keyword":"Scenario","location":{"column":3,"line":6},"name":"still pickles up","steps":[{"keyword":"* ","location":{"column":5,"line":7},"text":"a step","type":"Step"}],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Incomplete backgrounds, Part 2","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_background_2.feature"}
@@ -0,0 +1 @@
1
+ {"pickle":{"language":"en","locations":[{"column":3,"line":6}],"name":"still pickles up","steps":[{"arguments":[],"locations":[{"column":7,"line":7}],"text":"a step"}],"tags":[]},"type":"pickle","uri":"testdata/good/incomplete_background_2.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Incomplete backgrounds, Part 2\n\n Background: just a description\n A short description\n\n Scenario: still pickles up\n * a step\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_background_2.feature"}
@@ -0,0 +1,8 @@
1
+ (1:1)FeatureLine:Feature/Incomplete backgrounds, Part 2/
2
+ (2:1)Empty://
3
+ (3:3)BackgroundLine:Background/just a description/
4
+ (4:1)Other:/ A short description/
5
+ (5:1)Other://
6
+ (6:3)ScenarioLine:Scenario/still pickles up/
7
+ (7:5)StepLine:* /a step/
8
+ EOF
@@ -0,0 +1,2 @@
1
+ Feature: Just a description
2
+ A short description
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[],"description":" A short description","keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Just a description","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_feature_1.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Just a description\n A short description\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_feature_1.feature"}
@@ -0,0 +1,3 @@
1
+ (1:1)FeatureLine:Feature/Just a description/
2
+ (2:1)Other:/ A short description/
3
+ EOF
@@ -0,0 +1 @@
1
+ Feature: Empty feature
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Empty feature","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_feature_2.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Empty feature\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_feature_2.feature"}
@@ -0,0 +1,2 @@
1
+ (1:1)FeatureLine:Feature/Empty feature/
2
+ EOF
@@ -0,0 +1 @@
1
+ # Just a comment
@@ -0,0 +1 @@
1
+ {"document":{"comments":[{"location":{"column":1,"line":1},"text":"# Just a comment","type":"Comment"}],"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_feature_3.feature"}
@@ -0,0 +1 @@
1
+ {"data":"# Just a comment","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_feature_3.feature"}
@@ -0,0 +1,2 @@
1
+ (1:1)Comment:/# Just a comment/
2
+ EOF
@@ -0,0 +1,6 @@
1
+ Feature: Incomplete scenarios
2
+
3
+ Background: Adding a background won't make a pickle
4
+ * a step
5
+
6
+ Scenario: no steps
@@ -0,0 +1 @@
1
+ {"document":{"comments":[],"feature":{"children":[{"keyword":"Background","location":{"column":3,"line":3},"name":"Adding a background won't make a pickle","steps":[{"keyword":"* ","location":{"column":5,"line":4},"text":"a step","type":"Step"}],"type":"Background"},{"keyword":"Scenario","location":{"column":3,"line":6},"name":"no steps","steps":[],"tags":[],"type":"Scenario"}],"keyword":"Feature","language":"en","location":{"column":1,"line":1},"name":"Incomplete scenarios","tags":[],"type":"Feature"},"type":"GherkinDocument"},"type":"gherkin-document","uri":"testdata/good/incomplete_scenario.feature"}
@@ -0,0 +1 @@
1
+ {"data":"Feature: Incomplete scenarios\n\n Background: Adding a background won't make a pickle\n * a step\n\n Scenario: no steps\n","media":{"encoding":"utf-8","type":"text/vnd.cucumber.gherkin+plain"},"type":"source","uri":"testdata/good/incomplete_scenario.feature"}
@@ -0,0 +1,7 @@
1
+ (1:1)FeatureLine:Feature/Incomplete scenarios/
2
+ (2:1)Empty://
3
+ (3:3)BackgroundLine:Background/Adding a background won't make a pickle/
4
+ (4:5)StepLine:* /a step/
5
+ (5:1)Empty://
6
+ (6:3)ScenarioLine:Scenario/no steps/
7
+ EOF