aslakhellesoy-cucumber 0.1.99.17 → 0.1.99.18
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.
- data/History.txt +16 -1
- data/Manifest.txt +3 -2
- data/examples/i18n/README.textile +1 -1
- data/examples/tickets/features/{177-1.feature → 177/1.feature} +0 -0
- data/examples/tickets/features/{177-2.feature → 177/2.feature} +0 -0
- data/examples/tickets/features/177/3.feature +18 -0
- data/lib/cucumber/cli/language_help_formatter.rb +4 -3
- data/lib/cucumber/parser/feature.rb +70 -62
- data/lib/cucumber/parser/feature.tt +1 -1
- data/lib/cucumber/version.rb +1 -1
- metadata +4 -3
data/History.txt
CHANGED
@@ -57,9 +57,24 @@ Scenario Outlines, the rich command line, the nice output format and everything
|
|
57
57
|
pure Ruby users have been enjoying for a while.
|
58
58
|
|
59
59
|
== TODO Before 0.2 release
|
60
|
+
* Make sure all features and specs pass on Windows, JRuby and Ruby 1.9
|
60
61
|
* Verify that custom formatters work - write a feature for it
|
61
62
|
* Implement at least a basic HTML formatter
|
62
63
|
* Run a single cucumber feature from rake "rake features FEATURE=/path/to/feature:line"
|
64
|
+
* Wiki page about running subsets
|
65
|
+
** file:line
|
66
|
+
*** scenario (or step within)
|
67
|
+
*** scenario outline
|
68
|
+
*** scenario outline examples
|
69
|
+
*** line in an example table
|
70
|
+
*** background (same as whole file)
|
71
|
+
*** fix bugs in any of those cases (there are some)
|
72
|
+
** --tags
|
73
|
+
*** Link to page about tags
|
74
|
+
* Tags with arguments
|
75
|
+
* cucumber.jar + examples
|
76
|
+
** Remove need for -S cucumber
|
77
|
+
** Full jar and simple jar
|
63
78
|
|
64
79
|
== Bugfixes
|
65
80
|
* -n option does not suppress the line info for a Scenario Outline (#175 Aslak Hellesøy)
|
@@ -94,7 +109,7 @@ pure Ruby users have been enjoying for a while.
|
|
94
109
|
* Run cucumber --language LANG help to see keywords for a given language. (Aslak Hellesøy)
|
95
110
|
* Multiline arguments (tables and """ strings) are printed in the output. (Aslak Hellesøy)
|
96
111
|
* It's no longer necessary to compile the Treetop grammar when adding a new language. Localised parser is generated at runtime. (Aslak Hellesøy)
|
97
|
-
* New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple.
|
112
|
+
* New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple. (Jake Howerton)
|
98
113
|
|
99
114
|
=== Removed features
|
100
115
|
* "GivenScenario" is gone. Instead you can call Steps from Steps, or wait for "Background (#153)"
|
data/Manifest.txt
CHANGED
@@ -138,8 +138,9 @@ examples/test_unit/features/test_unit.feature
|
|
138
138
|
examples/tickets/Rakefile
|
139
139
|
examples/tickets/cucumber.yml
|
140
140
|
examples/tickets/features/172.feature
|
141
|
-
examples/tickets/features/177
|
142
|
-
examples/tickets/features/177
|
141
|
+
examples/tickets/features/177/1.feature
|
142
|
+
examples/tickets/features/177/2.feature
|
143
|
+
examples/tickets/features/177/3.feature
|
143
144
|
examples/tickets/features/180.feature
|
144
145
|
examples/tickets/features/lib/eatting_machine.rb
|
145
146
|
examples/tickets/features/lib/pantry.rb
|
@@ -3,7 +3,7 @@ h1. Internationalisation (i18n) examples
|
|
3
3
|
Under this directory you'll find examples of Cucumber features written in
|
4
4
|
many of the natural languages Cucumber supports.
|
5
5
|
|
6
|
-
For a full list of what languages Cucumber supports - run <pre>cucumber --help</pre>
|
6
|
+
For a full list of what languages Cucumber supports - run <pre>cucumber --language help</pre>
|
7
7
|
|
8
8
|
h2. Running all the examples
|
9
9
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Matt's example with a comment before a step
|
2
|
+
|
3
|
+
Scenario: Upload an image for an artist and create a concert in the process
|
4
|
+
Given I am logged in to my account
|
5
|
+
And there is one Artist named "Pixies"
|
6
|
+
And there is one Venue
|
7
|
+
When I visit the page for the Artist
|
8
|
+
And I follow "add a photo"
|
9
|
+
And I upload an Image
|
10
|
+
# Search on select concert page
|
11
|
+
And I press "Search Pixies concerts"
|
12
|
+
And I follow "Add a new Concert"
|
13
|
+
And I fill in new Concert information
|
14
|
+
And I press "Preview"
|
15
|
+
And I press "Add concert"
|
16
|
+
# No artists appear in this photo
|
17
|
+
And I press "Submit"
|
18
|
+
Then my Concert should exist with 1 Image
|
@@ -4,7 +4,9 @@ module Cucumber
|
|
4
4
|
module Cli
|
5
5
|
class LanguageHelpFormatter < Formatter::Pretty
|
6
6
|
INCOMPLETE = %{
|
7
|
-
|
7
|
+
The Cucumber grammar has evolved since this translation was written.
|
8
|
+
Please help us complete the translation by translating the missing words in
|
9
|
+
|
8
10
|
#{Cucumber::LANGUAGE_FILE}
|
9
11
|
|
10
12
|
Then contribute back to the Cucumber project. Details here:
|
@@ -20,12 +22,11 @@ http://wiki.github.com/aslakhellesoy/cucumber/spoken-languages
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def self.list_keywords(io, lang)
|
23
|
-
Cucumber.load_language(lang)
|
24
25
|
raw = Cucumber::KEYWORD_KEYS.map do |key|
|
25
26
|
[key, Cucumber::LANGUAGES[lang][key]]
|
26
27
|
end
|
27
28
|
table = Ast::Table.new(raw)
|
28
|
-
new(nil, io, {:incomplete => Cucumber.language_incomplete?}, '').visit_multiline_arg(table, :passed)
|
29
|
+
new(nil, io, {:incomplete => Cucumber.language_incomplete?(lang)}, '').visit_multiline_arg(table, :passed)
|
29
30
|
end
|
30
31
|
|
31
32
|
def visit_multiline_arg(table, status)
|
@@ -879,20 +879,24 @@ module Cucumber
|
|
879
879
|
end
|
880
880
|
|
881
881
|
module Step0
|
882
|
+
def comment
|
883
|
+
elements[0]
|
884
|
+
end
|
885
|
+
|
882
886
|
def step_keyword
|
883
|
-
elements[
|
887
|
+
elements[2]
|
884
888
|
end
|
885
889
|
|
886
890
|
def name
|
887
|
-
elements[
|
891
|
+
elements[4]
|
888
892
|
end
|
889
893
|
|
890
894
|
def multi
|
891
|
-
elements[
|
895
|
+
elements[6]
|
892
896
|
end
|
893
897
|
|
894
898
|
def white
|
895
|
-
elements[
|
899
|
+
elements[7]
|
896
900
|
end
|
897
901
|
end
|
898
902
|
|
@@ -915,75 +919,79 @@ module Cucumber
|
|
915
919
|
end
|
916
920
|
|
917
921
|
i0, s0 = index, []
|
918
|
-
|
919
|
-
loop do
|
920
|
-
r2 = _nt_space
|
921
|
-
if r2
|
922
|
-
s1 << r2
|
923
|
-
else
|
924
|
-
break
|
925
|
-
end
|
926
|
-
end
|
927
|
-
r1 = SyntaxNode.new(input, i1...index, s1)
|
922
|
+
r1 = _nt_comment
|
928
923
|
s0 << r1
|
929
924
|
if r1
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
s4 << r5
|
938
|
-
else
|
939
|
-
break
|
940
|
-
end
|
925
|
+
s2, i2 = [], index
|
926
|
+
loop do
|
927
|
+
r3 = _nt_space
|
928
|
+
if r3
|
929
|
+
s2 << r3
|
930
|
+
else
|
931
|
+
break
|
941
932
|
end
|
942
|
-
|
933
|
+
end
|
934
|
+
r2 = SyntaxNode.new(input, i2...index, s2)
|
935
|
+
s0 << r2
|
936
|
+
if r2
|
937
|
+
r4 = _nt_step_keyword
|
943
938
|
s0 << r4
|
944
939
|
if r4
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
loop do
|
951
|
-
r9 = _nt_eol
|
952
|
-
if r9
|
953
|
-
s8 << r9
|
954
|
-
else
|
955
|
-
break
|
956
|
-
end
|
957
|
-
end
|
958
|
-
if s8.empty?
|
959
|
-
self.index = i8
|
960
|
-
r8 = nil
|
961
|
-
else
|
962
|
-
r8 = SyntaxNode.new(input, i8...index, s8)
|
963
|
-
end
|
964
|
-
if r8
|
965
|
-
r7 = r8
|
940
|
+
s5, i5 = [], index
|
941
|
+
loop do
|
942
|
+
r6 = _nt_space
|
943
|
+
if r6
|
944
|
+
s5 << r6
|
966
945
|
else
|
967
|
-
|
968
|
-
if r10
|
969
|
-
r7 = r10
|
970
|
-
else
|
971
|
-
self.index = i7
|
972
|
-
r7 = nil
|
973
|
-
end
|
946
|
+
break
|
974
947
|
end
|
948
|
+
end
|
949
|
+
r5 = SyntaxNode.new(input, i5...index, s5)
|
950
|
+
s0 << r5
|
951
|
+
if r5
|
952
|
+
r7 = _nt_line_to_eol
|
975
953
|
s0 << r7
|
976
954
|
if r7
|
977
|
-
|
978
|
-
|
979
|
-
|
955
|
+
i8 = index
|
956
|
+
s9, i9 = [], index
|
957
|
+
loop do
|
958
|
+
r10 = _nt_eol
|
959
|
+
if r10
|
960
|
+
s9 << r10
|
961
|
+
else
|
962
|
+
break
|
963
|
+
end
|
964
|
+
end
|
965
|
+
if s9.empty?
|
966
|
+
self.index = i9
|
967
|
+
r9 = nil
|
968
|
+
else
|
969
|
+
r9 = SyntaxNode.new(input, i9...index, s9)
|
970
|
+
end
|
971
|
+
if r9
|
972
|
+
r8 = r9
|
980
973
|
else
|
981
|
-
r11 =
|
974
|
+
r11 = _nt_eof
|
975
|
+
if r11
|
976
|
+
r8 = r11
|
977
|
+
else
|
978
|
+
self.index = i8
|
979
|
+
r8 = nil
|
980
|
+
end
|
982
981
|
end
|
983
|
-
s0 <<
|
984
|
-
if
|
985
|
-
r13 =
|
986
|
-
|
982
|
+
s0 << r8
|
983
|
+
if r8
|
984
|
+
r13 = _nt_multiline_arg
|
985
|
+
if r13
|
986
|
+
r12 = r13
|
987
|
+
else
|
988
|
+
r12 = SyntaxNode.new(input, index...index)
|
989
|
+
end
|
990
|
+
s0 << r12
|
991
|
+
if r12
|
992
|
+
r14 = _nt_white
|
993
|
+
s0 << r14
|
994
|
+
end
|
987
995
|
end
|
988
996
|
end
|
989
997
|
end
|
@@ -116,7 +116,7 @@ module Cucumber
|
|
116
116
|
end
|
117
117
|
|
118
118
|
rule step
|
119
|
-
space* step_keyword space* name:line_to_eol (eol+ / eof) multi:multiline_arg? white {
|
119
|
+
comment space* step_keyword space* name:line_to_eol (eol+ / eof) multi:multiline_arg? white {
|
120
120
|
def build
|
121
121
|
if multi.respond_to?(:build)
|
122
122
|
Ast::Step.new(step_keyword.line, step_keyword.text_value, name.text_value, multi.build)
|
data/lib/cucumber/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aslakhellesoy-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.99.
|
4
|
+
version: 0.1.99.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Aslak Helles\xC3\xB8y"
|
@@ -202,8 +202,9 @@ files:
|
|
202
202
|
- examples/tickets/Rakefile
|
203
203
|
- examples/tickets/cucumber.yml
|
204
204
|
- examples/tickets/features/172.feature
|
205
|
-
- examples/tickets/features/177
|
206
|
-
- examples/tickets/features/177
|
205
|
+
- examples/tickets/features/177/1.feature
|
206
|
+
- examples/tickets/features/177/2.feature
|
207
|
+
- examples/tickets/features/177/3.feature
|
207
208
|
- examples/tickets/features/180.feature
|
208
209
|
- examples/tickets/features/lib/eatting_machine.rb
|
209
210
|
- examples/tickets/features/lib/pantry.rb
|