kosmas58-cucumber 0.1.16.6 → 0.1.99.21
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 +126 -2
- data/License.txt +1 -1
- data/Manifest.txt +0 -270
- data/Rakefile +1 -1
- data/bin/cucumber +2 -2
- data/config/hoe.rb +7 -2
- data/examples/cs/features/step_definitons/calculator_steps.rb +1 -1
- data/examples/i18n/README.textile +1 -1
- data/examples/i18n/Rakefile +3 -3
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -6
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +1 -1
- data/examples/i18n/de/features/addition.feature +6 -6
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/i18n/en/features/addition.feature +6 -6
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/i18n/es/features/adicion.feature +11 -12
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +7 -10
- data/examples/i18n/es/lib/calculador.rb +4 -1
- data/examples/i18n/et/features/liitmine.feature +7 -6
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +1 -1
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +1 -1
- data/examples/i18n/fi/features/yhteenlasku.feature +2 -2
- data/examples/i18n/fr/features/addition.feature +2 -2
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +1 -1
- data/examples/i18n/id/features/addition.feature +6 -6
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +1 -1
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +2 -3
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
- data/examples/i18n/lt/features/addition.feature +7 -6
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +7 -7
- data/examples/i18n/no/features/summering.feature +1 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +1 -1
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +1 -1
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +1 -1
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/java/src/cucumber/demo/Hello.java +16 -0
- data/examples/jbehave/README.textile +17 -0
- data/examples/jbehave/features/support/env.rb +7 -0
- data/examples/jbehave/features/trading.feature +24 -0
- data/examples/jbehave/pom.xml +48 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +65 -0
- data/examples/self_test/README.textile +4 -1
- data/examples/{calculator_ruby_features → self_test}/Rakefile +3 -3
- data/examples/self_test/features/background/failing_background.feature +10 -0
- data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
- data/examples/self_test/features/background/multiline_args_background.feature +32 -0
- data/examples/self_test/features/background/passing_background.feature +10 -0
- data/examples/self_test/features/background/pending_background.feature +10 -0
- data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
- data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
- data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
- data/examples/self_test/features/lots_of_undefined.feature +8 -0
- data/examples/self_test/features/outline_sample.feature +11 -5
- data/examples/self_test/features/sample.feature +8 -3
- data/examples/self_test/features/step_definitions/sample_steps.rb +53 -4
- data/examples/self_test/features/support/env.rb +1 -0
- data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
- data/examples/tickets/features/172.feature +28 -0
- data/examples/tickets/features/177/1.feature +29 -0
- data/examples/tickets/features/177/2.feature +21 -0
- data/examples/tickets/features/177/3.feature +18 -0
- data/examples/tickets/features/180.feature +7 -0
- data/examples/tickets/features/scenario_outline.feature +6 -1
- data/examples/tickets/features/step_definitons/tickets_steps.rb +27 -3
- data/examples/tickets/features/tickets.feature +4 -0
- data/features/background.feature +223 -0
- data/features/cucumber_cli.feature +218 -98
- data/features/cucumber_cli_outlines.feature +54 -37
- data/features/custom_formatter.feature +11 -0
- data/features/report_called_undefined_steps.feature +32 -0
- data/features/step_definitions/cucumber_steps.rb +7 -3
- data/features/step_definitions/extra_steps.rb +1 -1
- data/features/support/env.rb +2 -1
- data/gem_tasks/flog.rake +1 -1
- data/gem_tasks/gemspec.rake +2 -2
- data/gem_tasks/jar.rake +67 -0
- data/lib/autotest/cucumber_mixin.rb +17 -23
- data/lib/cucumber.rb +63 -11
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/ast/background.rb +88 -0
- data/lib/cucumber/ast/comment.rb +26 -0
- data/lib/cucumber/ast/examples.rb +26 -0
- data/lib/cucumber/ast/feature.rb +66 -0
- data/lib/cucumber/ast/features.rb +39 -0
- data/lib/cucumber/ast/filter.rb +22 -0
- data/lib/cucumber/ast/outline_table.rb +49 -0
- data/lib/cucumber/ast/py_string.rb +52 -0
- data/lib/cucumber/ast/scenario.rb +103 -0
- data/lib/cucumber/ast/scenario_outline.rb +92 -0
- data/lib/cucumber/ast/step.rb +161 -0
- data/lib/cucumber/ast/steps.rb +13 -0
- data/lib/cucumber/ast/table.rb +218 -0
- data/lib/cucumber/ast/tags.rb +40 -0
- data/lib/cucumber/ast/visitor.rb +109 -0
- data/lib/cucumber/broadcaster.rb +1 -6
- data/lib/cucumber/cli/configuration.rb +339 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +100 -0
- data/lib/cucumber/core_ext/exception.rb +41 -8
- data/lib/cucumber/core_ext/instance_exec.rb +54 -0
- data/lib/cucumber/core_ext/proc.rb +29 -65
- data/lib/cucumber/core_ext/string.rb +19 -0
- data/lib/cucumber/formatter.rb +1 -0
- data/lib/cucumber/{formatters → formatter}/ansicolor.rb +14 -16
- data/lib/cucumber/formatter/color_io.rb +17 -0
- data/lib/cucumber/formatter/console.rb +119 -0
- data/lib/cucumber/formatter/cucumber.css +55 -0
- data/lib/cucumber/formatter/cucumber.sass +49 -0
- data/lib/cucumber/formatter/html.rb +121 -0
- data/lib/cucumber/formatter/pretty.rb +167 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +68 -0
- data/lib/cucumber/formatter/rerun.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatters/unicode.rb +2 -35
- data/lib/cucumber/jbehave.rb +102 -0
- data/lib/cucumber/languages.yml +128 -75
- data/lib/cucumber/parser.rb +43 -0
- data/lib/cucumber/parser/basic.rb +0 -0
- data/lib/cucumber/parser/feature.rb +1490 -0
- data/lib/cucumber/parser/feature.tt +188 -0
- data/lib/cucumber/parser/i18n.tt +31 -0
- data/lib/cucumber/parser/table.rb +402 -0
- data/lib/cucumber/parser/table.tt +59 -0
- data/lib/cucumber/parser/treetop_ext.rb +75 -0
- data/lib/cucumber/platform.rb +3 -17
- data/lib/cucumber/rails/rspec.rb +5 -2
- data/lib/cucumber/step_definition.rb +87 -0
- data/lib/cucumber/step_mother.rb +151 -66
- data/lib/cucumber/version.rb +2 -2
- data/rails_generators/cucumber/USAGE +3 -2
- data/rails_generators/cucumber/cucumber_generator.rb +33 -23
- data/rails_generators/cucumber/templates/cucumber +2 -1
- data/rails_generators/cucumber/templates/cucumber.rake +6 -1
- data/rails_generators/cucumber/templates/env.rb +1 -1
- data/rails_generators/feature/USAGE +3 -0
- data/rails_generators/feature/feature_generator.rb +30 -6
- data/spec/cucumber/ast/background_spec.rb +58 -0
- data/spec/cucumber/ast/feature_factory.rb +54 -0
- data/spec/cucumber/ast/feature_spec.rb +60 -0
- data/spec/cucumber/ast/py_string_spec.rb +40 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +64 -0
- data/spec/cucumber/ast/scenario_spec.rb +82 -0
- data/spec/cucumber/ast/step_spec.rb +45 -0
- data/spec/cucumber/ast/table_spec.rb +81 -0
- data/spec/cucumber/ast/tags_spec.rb +23 -0
- data/spec/cucumber/broadcaster_spec.rb +4 -17
- data/spec/cucumber/cli/configuration_spec.rb +239 -0
- data/spec/cucumber/cli/main_spec.rb +164 -0
- data/spec/cucumber/core_ext/proc_spec.rb +27 -35
- data/spec/cucumber/core_ext/string_spec.rb +8 -0
- data/spec/cucumber/{formatters → formatter}/ansicolor_spec.rb +2 -2
- data/spec/cucumber/formatter/html/cucumber.css +37 -0
- data/spec/cucumber/formatter/html/cucumber.js +13 -0
- data/spec/cucumber/formatter/html/index.html +45 -0
- data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
- data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
- data/spec/cucumber/formatters/profile_formatter_spec.rb +17 -16
- data/spec/cucumber/parser/feature_parser_spec.rb +281 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/step_definition_spec.rb +62 -0
- data/spec/cucumber/step_mother_spec.rb +50 -51
- data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
- data/spec/cucumber/treetop_parser/scenario_outline.feature +1 -1
- data/spec/cucumber/treetop_parser/spaces.feature +3 -1
- data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +13 -12
- data/spec/spec_helper.rb +1 -1
- metadata +107 -79
- data/examples/calculator_ruby_features/features/addition.rb +0 -39
- data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
- data/gem_tasks/treetop.rake +0 -41
- data/lib/cucumber/cli.rb +0 -355
- data/lib/cucumber/executor.rb +0 -205
- data/lib/cucumber/formatters.rb +0 -1
- data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
- data/lib/cucumber/formatters/cucumber.css +0 -132
- data/lib/cucumber/formatters/cucumber.js +0 -11
- data/lib/cucumber/formatters/html_formatter.rb +0 -152
- data/lib/cucumber/formatters/jquery.js +0 -32
- data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
- data/lib/cucumber/formatters/profile_formatter.rb +0 -92
- data/lib/cucumber/formatters/progress_formatter.rb +0 -61
- data/lib/cucumber/model.rb +0 -1
- data/lib/cucumber/model/table.rb +0 -32
- data/lib/cucumber/step_methods.rb +0 -49
- data/lib/cucumber/tree.rb +0 -16
- data/lib/cucumber/tree/feature.rb +0 -105
- data/lib/cucumber/tree/features.rb +0 -21
- data/lib/cucumber/tree/given_scenario.rb +0 -13
- data/lib/cucumber/tree/scenario.rb +0 -240
- data/lib/cucumber/tree/step.rb +0 -173
- data/lib/cucumber/tree/table.rb +0 -26
- data/lib/cucumber/tree/top_down_visitor.rb +0 -23
- data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -254
- data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_da.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_de.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en-lol.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_es.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_et.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_fi.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_id.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_it.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ko.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_no.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_parser.rb +0 -36
- data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_se.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1951
- data/lib/cucumber/world.rb +0 -1
- data/lib/cucumber/world/pending.rb +0 -22
- data/setup.rb +0 -1585
- data/spec/cucumber/cli_spec.rb +0 -521
- data/spec/cucumber/executor_spec.rb +0 -382
- data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
- data/spec/cucumber/formatters/features.html +0 -269
- data/spec/cucumber/formatters/html_formatter_spec.rb +0 -110
- data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -410
- data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -81
- data/spec/cucumber/model/table_spec.rb +0 -32
- data/spec/cucumber/tree/feature_spec.rb +0 -122
- data/spec/cucumber/tree/row_scenario_outline_spec.rb +0 -73
- data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
- data/spec/cucumber/tree/row_step_outline_spec.rb +0 -38
- data/spec/cucumber/tree/scenario_outline_spec.rb +0 -50
- data/spec/cucumber/tree/scenario_spec.rb +0 -134
- data/spec/cucumber/tree/step_outline_spec.rb +0 -17
- data/spec/cucumber/tree/step_spec.rb +0 -59
- data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -120
@@ -1,134 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Cucumber
|
4
|
-
module Tree
|
5
|
-
describe Scenario do
|
6
|
-
xit "should reuse steps in GivenScenario" do
|
7
|
-
given_scenario = GivenScenario.new(scenario_2, "First", 99)
|
8
|
-
|
9
|
-
scenario_2.create_step(given_scenario)
|
10
|
-
scenario_2.create_step(step_a)
|
11
|
-
scenario_2.steps.should == [step_1, step_2, step_a]
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should have padding_length 2 when alone" do
|
15
|
-
scenario = Scenario.new(nil, 'test', 1)
|
16
|
-
scenario.padding_length.should == 2
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should include indent when padding to step" do
|
20
|
-
scenario = Scenario.new(nil, '', 1)
|
21
|
-
scenario.create_step('Given', 'a long step', 1)
|
22
|
-
|
23
|
-
#Scenario: *********
|
24
|
-
# Given a long step
|
25
|
-
scenario.padding_length.should == 9 + Scenario::INDENT
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should ignore step padding if scenario is longer than all steps" do
|
29
|
-
scenario = Scenario.new(nil, 'Very long scenario and then some', 1)
|
30
|
-
scenario.create_step('Given', 'test', 1)
|
31
|
-
|
32
|
-
scenario.padding_length.should == 2
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "utf-8 strings" do
|
36
|
-
describe "when calculating padding" do
|
37
|
-
|
38
|
-
it "should take into consideration utf-8 scenario names" do
|
39
|
-
scenario = Scenario.new(nil, 'こんばんは', 1)
|
40
|
-
scenario.create_step('Given', 'a long step', 1)
|
41
|
-
|
42
|
-
#Scenario: こんばんは****
|
43
|
-
# Given a long step
|
44
|
-
scenario.padding_length.should == 4 + Scenario::INDENT
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should take into consideration a utf-8 keyword for 'scenario'" do
|
48
|
-
Cucumber.language.stub!(:[]).with('scenario').and_return("シナリオ")
|
49
|
-
scenario = Scenario.new(nil, '', 1)
|
50
|
-
scenario.create_step('Given', 'step', 1)
|
51
|
-
|
52
|
-
#シナリオ: ******
|
53
|
-
# Given step
|
54
|
-
scenario.padding_length.should == 6 + Scenario::INDENT
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "pending?" do
|
61
|
-
before :each do
|
62
|
-
@scenario = Scenario.new(nil, '', 1)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should return true if there aren't any steps" do
|
66
|
-
@scenario.should be_pending
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should return false if there are steps" do
|
70
|
-
@scenario.create_step('Given', 'a long step', 1)
|
71
|
-
@scenario.should_not be_pending
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
describe "at_line?" do
|
76
|
-
|
77
|
-
describe "when there is a next scenario" do
|
78
|
-
|
79
|
-
before :each do
|
80
|
-
feature = Feature.new(nil)
|
81
|
-
@scenario = feature.add_scenario('', 5)
|
82
|
-
feature.add_scenario('', 10)
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should return false if the line is lesser than the scenario's line" do
|
86
|
-
@scenario.should_not be_at_line(4)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should return true if the line is equal to the scenario's line" do
|
90
|
-
@scenario.should be_at_line(5)
|
91
|
-
end
|
92
|
-
|
93
|
-
it "should return false if the line is equal to the next scenario's line" do
|
94
|
-
@scenario.should_not be_at_line(10)
|
95
|
-
end
|
96
|
-
|
97
|
-
it "should return false if the line is greater than the next scenario's line" do
|
98
|
-
@scenario.should_not be_at_line(11)
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should return true if the line is lesser then the next scenario's line" do
|
102
|
-
@scenario.should be_at_line(9)
|
103
|
-
end
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "when there is no next scenario" do
|
108
|
-
|
109
|
-
before :each do
|
110
|
-
feature = Feature.new(nil)
|
111
|
-
feature.stub!(:lines => 20)
|
112
|
-
@scenario = feature.add_scenario('', 12)
|
113
|
-
end
|
114
|
-
|
115
|
-
it "should return false if the line is lesser than the scenario's line" do
|
116
|
-
@scenario.should_not be_at_line(11)
|
117
|
-
end
|
118
|
-
|
119
|
-
it "should return true if the line is within the scenario's line and the lines of the feature" do
|
120
|
-
@scenario.should be_at_line(12)
|
121
|
-
@scenario.should be_at_line(20)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "should return false if the line is greater than the lines of the feature" do
|
125
|
-
@scenario.should_not be_at_line(21)
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|
131
|
-
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Cucumber
|
4
|
-
module Tree
|
5
|
-
describe StepOutline do
|
6
|
-
|
7
|
-
it "should be a outline" do
|
8
|
-
step_outline = StepOutline.new(mock("scenario"), 'Given', 'outline', 1)
|
9
|
-
|
10
|
-
step_outline.should be_a_outline
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Cucumber
|
4
|
-
module Tree
|
5
|
-
describe Step do
|
6
|
-
it "should have padding_length 2 when alone" do
|
7
|
-
scenario = Scenario.new(nil, nil, 1)
|
8
|
-
step = scenario.create_step('Given', '666666', 98)
|
9
|
-
step.padding_length.should == 2
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should have padding_length 5 when 3 shorter" do
|
13
|
-
scenario = Scenario.new(nil, nil, 1)
|
14
|
-
long = scenario.create_step('Given', '999999999', 80)
|
15
|
-
step = scenario.create_step('Given', '666666', 98)
|
16
|
-
step.padding_length.should == 5
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should remove indent from padding_length if padding to scenario" do
|
20
|
-
scenario = Scenario.new(nil, '9', 1)
|
21
|
-
step = scenario.create_step('Given', '9', 80)
|
22
|
-
|
23
|
-
#Scenario: 9 #
|
24
|
-
# Given 9****
|
25
|
-
step.padding_length.should == 4
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should default step arity to 0" do
|
29
|
-
scenario = Scenario.new(nil, '9', 1)
|
30
|
-
step = scenario.create_step('Given', '9', 80)
|
31
|
-
|
32
|
-
step.arity.should == 0
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "utf-8 strings" do
|
36
|
-
|
37
|
-
it "should have padding_length 6 when 4 shorter" do
|
38
|
-
scenario = Scenario.new(nil, nil, 1)
|
39
|
-
long = scenario.create_step('Given', '999999999', 2)
|
40
|
-
step = scenario.create_step('Given', "こんばんは", 3)
|
41
|
-
|
42
|
-
step.padding_length.should == 6
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should indicate if a forced pending exception occured" do
|
48
|
-
scenario = Scenario.new(nil, '9', 1)
|
49
|
-
step = scenario.create_step('Given', '666666', 98)
|
50
|
-
|
51
|
-
step.instance_variable_set("@error", ForcedPending.new)
|
52
|
-
|
53
|
-
step.should be_forced_to_pending
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
@@ -1,120 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
module Cucumber
|
4
|
-
module TreetopParser
|
5
|
-
describe FeatureParser do
|
6
|
-
it "should parse features with weird spaces" do
|
7
|
-
p = FeatureParser.new
|
8
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/spaces.feature')
|
9
|
-
f.header.should == "Some title"
|
10
|
-
f.should have(2).scenarios
|
11
|
-
|
12
|
-
first = f.scenarios[0]
|
13
|
-
first.name.should == "first"
|
14
|
-
first.should have(1).steps
|
15
|
-
first.steps[0].name.should == "a"
|
16
|
-
|
17
|
-
second = f.scenarios[1]
|
18
|
-
second.name.should == "second"
|
19
|
-
second.should have(1).steps
|
20
|
-
second.steps[0].name.should == "b"
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should parse GivenScenario" do
|
24
|
-
p = FeatureParser.new
|
25
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/given_scenario.feature')
|
26
|
-
|
27
|
-
f.header.should == "Some title"
|
28
|
-
f.should have(2).scenarios
|
29
|
-
|
30
|
-
first = f.scenarios[0]
|
31
|
-
first.should have(2).steps
|
32
|
-
|
33
|
-
second = f.scenarios[1]
|
34
|
-
second.should have(3).steps
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should allow spaces between FIT values" do
|
38
|
-
p = FeatureParser.new
|
39
|
-
Cucumber::Tree::RowScenario.should_receive(:new).with(anything, anything, ['I can have spaces'], anything)
|
40
|
-
|
41
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/fit_scenario.feature')
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should allow comments in feature files" do
|
45
|
-
p = FeatureParser.new
|
46
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
|
47
|
-
f.scenarios[0].should have(2).steps
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should skip comments in feature header" do
|
51
|
-
p = FeatureParser.new
|
52
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
|
53
|
-
f.header.should == "Some header"
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should skip comments in scenario header" do
|
57
|
-
p = FeatureParser.new
|
58
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/with_comments.feature')
|
59
|
-
f.scenarios[0].name.should == "Some scenario"
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should allow empty scenarios" do
|
63
|
-
p = FeatureParser.new
|
64
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/empty_scenario.feature')
|
65
|
-
f.scenarios[0].should have(1).steps
|
66
|
-
f.scenarios[1].should have(0).steps
|
67
|
-
f.scenarios[2].should have(1).steps
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should allow empty scenario outlines" do
|
71
|
-
p = FeatureParser.new
|
72
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/empty_scenario_outline.feature')
|
73
|
-
|
74
|
-
f.scenarios[0].should have(0).steps
|
75
|
-
end
|
76
|
-
|
77
|
-
it "should allow multiple tables" do
|
78
|
-
p = FeatureParser.new
|
79
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/multiple_tables.feature')
|
80
|
-
f.should have(6).scenarios
|
81
|
-
f.scenarios[0].should have(4).steps
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should allow empty features" do
|
85
|
-
p = FeatureParser.new
|
86
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/empty_feature.feature')
|
87
|
-
f.should have(0).scenarios
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should parse features with dos line endings" do
|
91
|
-
p = FeatureParser.new
|
92
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/test_dos.feature')
|
93
|
-
f.should have(5).scenarios
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should parse multiline steps" do
|
97
|
-
p = FeatureParser.new
|
98
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/multiline_steps.feature')
|
99
|
-
f.should have(1).scenarios
|
100
|
-
step = f.scenarios[0].steps[3]
|
101
|
-
step.extra_args[0].should == "A string\n that \"indents\"\nand spans\nseveral lines\n"
|
102
|
-
end
|
103
|
-
|
104
|
-
it "should parse scenario outlines" do
|
105
|
-
p = FeatureParser.new
|
106
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/scenario_outline.feature')
|
107
|
-
|
108
|
-
f.should have(4).scenarios
|
109
|
-
end
|
110
|
-
|
111
|
-
it "should not allow a scenario outline with an example table but no steps" do
|
112
|
-
p = FeatureParser.new
|
113
|
-
lambda{
|
114
|
-
p.parse_feature(File.dirname(__FILE__) + '/invalid_scenario_outlines.feature')
|
115
|
-
}.should raise_error(Feature::SyntaxError)
|
116
|
-
end
|
117
|
-
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|