cucumber 0.1.10 → 0.2.0
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 +223 -5
- data/License.txt +1 -1
- data/Manifest.txt +174 -85
- data/README.txt +2 -39
- data/Rakefile +1 -2
- data/bin/cucumber +2 -2
- data/config/hoe.rb +9 -3
- data/examples/cs/README.textile +1 -22
- data/examples/cs/Rakefile +1 -1
- data/examples/cs/compile.bat +1 -0
- data/examples/cs/features/addition.feature +16 -0
- data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/cs/src/demo/Calculator.cs +20 -0
- data/examples/i18n/README.textile +1 -1
- data/examples/i18n/Rakefile +20 -4
- data/examples/i18n/ar/features/addition.feature +10 -11
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +4 -12
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +4 -2
- data/examples/i18n/de/features/addition.feature +10 -11
- data/examples/i18n/de/features/division.feature +0 -1
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +5 -11
- data/examples/i18n/en/features/addition.feature +10 -11
- data/examples/i18n/en/features/division.feature +0 -1
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/en-lol/Rakefile +6 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +8 -0
- data/examples/i18n/en-lol/lib/basket.rb +12 -0
- data/examples/i18n/en-lol/lib/belly.rb +11 -0
- data/examples/i18n/es/features/adicion.feature +11 -12
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +10 -11
- data/examples/i18n/es/lib/calculador.rb +4 -1
- data/examples/i18n/et/features/jagamine.feature +9 -0
- data/examples/i18n/et/features/liitmine.feature +10 -11
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +7 -9
- data/examples/i18n/et/lib/kalkulaator.rb +5 -1
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +9 -0
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
- data/examples/i18n/fi/features/yhteenlasku.feature +16 -0
- data/examples/i18n/fi/lib/laskin.rb +14 -0
- data/examples/i18n/fr/features/addition.feature +16 -12
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +14 -11
- data/examples/i18n/fr/lib/calculatrice.rb +1 -1
- data/examples/i18n/id/features/addition.feature +10 -11
- data/examples/i18n/id/features/division.feature +0 -1
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +4 -2
- data/examples/i18n/ja/features/addition.feature +10 -11
- data/examples/i18n/ja/features/division.feature +2 -3
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +6 -12
- data/examples/i18n/ko/Rakefile +6 -0
- data/examples/i18n/ko/features/addition.feature +16 -0
- data/examples/i18n/ko/features/division.feature +10 -0
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ko/lib/calculator.rb +14 -0
- data/examples/i18n/lt/features/addition.feature +11 -11
- data/examples/i18n/lt/features/division.feature +0 -1
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +4 -9
- data/examples/i18n/no/features/summering.feature +1 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +4 -2
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +4 -2
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +10 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +16 -0
- data/examples/i18n/ru/features/division.feature +15 -0
- data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/ru/features/support/env.rb +6 -0
- data/examples/i18n/ru/features/support/world.rb +7 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +4 -2
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +5 -3
- data/examples/i18n/zh-TW/Rakefile +6 -0
- data/examples/i18n/zh-TW/features/addition.feature +16 -0
- data/examples/i18n/zh-TW/features/division.feature +10 -0
- data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
- data/examples/java/features/step_definitons/hello_steps.rb +1 -1
- data/examples/java/features/step_definitons/tree_steps.rb +1 -1
- data/examples/jbehave/README.textile +20 -0
- data/examples/jbehave/features/support/env.rb +7 -0
- data/examples/jbehave/features/trading.feature +28 -0
- data/examples/jbehave/pom.xml +53 -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 +70 -0
- data/examples/selenium/features/search.feature +1 -1
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/features/search.feature +9 -0
- data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium_webrat/features/support/env.rb +41 -0
- data/examples/self_test/README.textile +6 -0
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/failing_background.feature +11 -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/failing_expectation.feature +4 -0
- data/examples/self_test/features/lots_of_undefined.feature +8 -0
- data/examples/self_test/features/outline_sample.feature +15 -0
- data/examples/self_test/features/sample.feature +19 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +64 -0
- data/examples/self_test/features/support/env.rb +1 -0
- data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
- data/examples/sinatra/Rakefile +6 -0
- data/examples/sinatra/app.rb +14 -0
- data/examples/sinatra/features/add.feature +11 -0
- data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
- data/examples/sinatra/features/support/env.rb +20 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/tickets/Rakefile +13 -8
- data/examples/tickets/cucumber.yml +2 -1
- 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/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/lib/eatting_machine.rb +18 -0
- data/examples/tickets/features/lib/pantry.rb +20 -0
- data/examples/tickets/features/scenario_outline.feature +95 -0
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +46 -5
- data/examples/tickets/features/tickets.feature +5 -1
- data/examples/watir/README.textile +16 -0
- data/examples/watir/features/step_definitons/search_steps.rb +24 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/background.feature +221 -0
- data/features/cucumber_cli.feature +389 -0
- data/features/cucumber_cli_diff_disabled.feature +45 -0
- data/features/cucumber_cli_outlines.feature +81 -0
- data/features/custom_formatter.feature +11 -0
- data/features/report_called_undefined_steps.feature +34 -0
- data/features/step_definitions/cucumber_steps.rb +30 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/support/env.rb +8 -0
- data/gem_tasks/deployment.rake +0 -23
- data/gem_tasks/features.rake +1 -1
- data/gem_tasks/fix_cr_lf.rake +1 -1
- data/gem_tasks/flog.rake +1 -1
- data/gem_tasks/gemspec.rake +4 -0
- data/gem_tasks/jar.rake +67 -0
- data/gem_tasks/rspec.rake +31 -15
- data/gem_tasks/yard.rake +8 -0
- data/lib/autotest/cucumber_mixin.rb +41 -25
- data/lib/cucumber/ast/background.rb +50 -0
- data/lib/cucumber/ast/comment.rb +26 -0
- data/lib/cucumber/ast/examples.rb +38 -0
- data/lib/cucumber/ast/feature.rb +62 -0
- data/lib/cucumber/ast/feature_element.rb +46 -0
- data/lib/cucumber/ast/features.rb +20 -0
- data/lib/cucumber/ast/outline_table.rb +81 -0
- data/lib/cucumber/ast/py_string.rb +58 -0
- data/lib/cucumber/ast/scenario.rb +64 -0
- data/lib/cucumber/ast/scenario_outline.rb +90 -0
- data/lib/cucumber/ast/step.rb +122 -0
- data/lib/cucumber/ast/step_collection.rb +66 -0
- data/lib/cucumber/ast/step_invocation.rb +110 -0
- data/lib/cucumber/ast/table.rb +318 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +125 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/broadcaster.rb +2 -9
- data/lib/cucumber/cli/configuration.rb +364 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +109 -0
- data/lib/cucumber/core_ext/exception.rb +53 -0
- 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 +26 -0
- data/lib/cucumber/formatter/ansicolor.rb +102 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +109 -0
- data/lib/cucumber/formatter/cucumber.css +55 -0
- data/lib/cucumber/formatter/cucumber.sass +49 -0
- data/lib/cucumber/formatter/html.rb +133 -0
- data/lib/cucumber/formatter/pretty.rb +179 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter.rb +1 -0
- data/lib/cucumber/formatters/unicode.rb +2 -0
- data/lib/cucumber/jbehave.rb +97 -0
- data/lib/cucumber/languages.yml +214 -72
- data/lib/cucumber/parser/basic.rb +0 -0
- data/lib/cucumber/parser/feature.rb +1487 -0
- data/lib/cucumber/parser/feature.tt +193 -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/parser.rb +43 -0
- data/lib/cucumber/platform.rb +13 -8
- data/lib/cucumber/rails/rspec.rb +6 -10
- data/lib/cucumber/rails/world.rb +8 -8
- data/lib/cucumber/rake/task.rb +46 -9
- data/lib/cucumber/step_definition.rb +103 -0
- data/lib/cucumber/step_match.rb +49 -0
- data/lib/cucumber/step_mother.rb +184 -65
- data/lib/cucumber/version.rb +4 -3
- data/lib/cucumber/world.rb +53 -0
- data/lib/cucumber.rb +45 -21
- data/rails_generators/cucumber/cucumber_generator.rb +23 -3
- data/rails_generators/cucumber/templates/cucumber +2 -1
- data/rails_generators/cucumber/templates/cucumber.rake +13 -5
- data/rails_generators/cucumber/templates/env.rb +11 -2
- data/rails_generators/cucumber/templates/paths.rb +19 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +60 -40
- data/rails_generators/feature/feature_generator.rb +26 -2
- data/rails_generators/feature/templates/feature.erb +15 -12
- data/rails_generators/feature/templates/steps.erb +14 -16
- data/spec/cucumber/ast/background_spec.rb +49 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +37 -0
- data/spec/cucumber/ast/py_string_spec.rb +47 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +65 -0
- data/spec/cucumber/ast/step_collection_spec.rb +8 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +149 -0
- data/spec/cucumber/ast/tags_spec.rb +19 -0
- data/spec/cucumber/broadcaster_spec.rb +6 -18
- data/spec/cucumber/cli/configuration_spec.rb +275 -0
- data/spec/cucumber/cli/main_spec.rb +203 -0
- data/spec/cucumber/core_ext/proc_spec.rb +27 -35
- data/spec/cucumber/core_ext/string_spec.rb +8 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
- data/spec/cucumber/formatter/color_io_spec.rb +26 -0
- 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 +22 -16
- data/spec/cucumber/parser/feature_parser_spec.rb +282 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/rails/stubs/mini_rails.rb +4 -3
- data/spec/cucumber/step_definition_spec.rb +81 -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/empty_scenario_outline.feature +3 -0
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
- data/spec/cucumber/treetop_parser/multiple_tables.feature +6 -8
- data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
- 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 +47 -0
- data/spec/spec_helper.rb +4 -3
- metadata +192 -95
- data/TODO.txt +0 -26
- data/examples/calculator_ruby_features/features/addition.rb +0 -23
- data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
- data/examples/cs/features/hello.feature +0 -11
- data/examples/cs/features/step_definitons/hello_steps.rb +0 -25
- data/examples/cs/features/step_definitons/tree_steps.rb +0 -14
- data/examples/cs/features/tree.feature +0 -9
- data/examples/cs/src/Hello.cs +0 -18
- data/examples/i18n/ja/README.txt +0 -5
- data/examples/selenium/features/step_definitons/stories_steps.rb +0 -41
- data/examples/watir/features/step_definitons/stories_steps.rb +0 -51
- data/features/see_features.feature +0 -8
- data/features/steps/features_steps.rb +0 -9
- data/gem_tasks/treetop.rake +0 -41
- data/lib/cucumber/cli.rb +0 -279
- data/lib/cucumber/executor.rb +0 -190
- data/lib/cucumber/formatters/ansicolor.rb +0 -109
- 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 -128
- data/lib/cucumber/formatters/jquery.js +0 -32
- data/lib/cucumber/formatters/pretty_formatter.rb +0 -234
- data/lib/cucumber/formatters/profile_formatter.rb +0 -92
- data/lib/cucumber/formatters/progress_formatter.rb +0 -58
- data/lib/cucumber/formatters.rb +0 -1
- data/lib/cucumber/model/table.rb +0 -28
- data/lib/cucumber/model.rb +0 -1
- data/lib/cucumber/step_methods.rb +0 -49
- data/lib/cucumber/tree/feature.rb +0 -63
- data/lib/cucumber/tree/features.rb +0 -21
- data/lib/cucumber/tree/given_scenario.rb +0 -13
- data/lib/cucumber/tree/scenario.rb +0 -174
- data/lib/cucumber/tree/step.rb +0 -134
- data/lib/cucumber/tree/table.rb +0 -26
- data/lib/cucumber/tree/top_down_visitor.rb +0 -23
- data/lib/cucumber/tree.rb +0 -18
- data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -206
- data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_da.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_de.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_en.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_es.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_et.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_id.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_it.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_no.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_parser.rb +0 -34
- data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_se.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1591
- data/script/console +0 -10
- data/script/console.cmd +0 -1
- data/script/destroy +0 -14
- data/script/destroy.cmd +0 -1
- data/script/generate +0 -14
- data/script/generate.cmd +0 -1
- data/script/txt2html +0 -74
- data/script/txt2html.cmd +0 -1
- data/setup.rb +0 -1585
- data/spec/cucumber/cli_spec.rb +0 -274
- data/spec/cucumber/executor_spec.rb +0 -298
- data/spec/cucumber/formatters/ansicolor_spec.rb +0 -35
- 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 -74
- data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -204
- data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -65
- data/spec/cucumber/model/table_spec.rb +0 -20
- data/spec/cucumber/tree/feature_spec.rb +0 -43
- data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
- data/spec/cucumber/tree/scenario_spec.rb +0 -76
- data/spec/cucumber/tree/step_spec.rb +0 -50
- data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -98
- /data/examples/{calculator_ruby_features → selenium_webrat}/Rakefile +0 -0
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Formatters
|
|
5
|
-
describe PrettyFormatter do
|
|
6
|
-
|
|
7
|
-
def mock_step(stubs={})
|
|
8
|
-
stub('step', {
|
|
9
|
-
:keyword => 'Given',
|
|
10
|
-
:format => 'formatted yes',
|
|
11
|
-
:name => 'example',
|
|
12
|
-
:error => nil,
|
|
13
|
-
:padding_length => 2,
|
|
14
|
-
:file => 'test',
|
|
15
|
-
:line => 1,
|
|
16
|
-
:row? => false}.merge(stubs))
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def mock_scenario(stubs={})
|
|
20
|
-
stub('scenario', {
|
|
21
|
-
:name => 'test',
|
|
22
|
-
:row? => false,
|
|
23
|
-
:pending? => false,
|
|
24
|
-
:file => 'file',
|
|
25
|
-
:line => 1,
|
|
26
|
-
:padding_length => 2}.merge(stubs))
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def mock_feature(stubs={})
|
|
30
|
-
stub("feature", stubs)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def mock_error(stubs={})
|
|
34
|
-
stub('error', {
|
|
35
|
-
:message => 'failed',
|
|
36
|
-
:backtrace => 'example backtrace'}.merge(stubs))
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def mock_proc
|
|
40
|
-
stub(Proc, :to_comment_line => '# steps/example_steps.rb:11')
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
it "should print step file and line when passed" do
|
|
44
|
-
io = StringIO.new
|
|
45
|
-
formatter = PrettyFormatter.new io, StepMother.new
|
|
46
|
-
step = stub('step',
|
|
47
|
-
:error => nil, :row? => false, :keyword => 'Given', :format => 'formatted yes'
|
|
48
|
-
)
|
|
49
|
-
formatter.step_passed(step, nil, nil)
|
|
50
|
-
io.string.should == " Given formatted yes\n"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
describe "scenario without any steps" do
|
|
54
|
-
before :each do
|
|
55
|
-
@io = StringIO.new
|
|
56
|
-
@formatter = PrettyFormatter.new(@io, StepMother.new)
|
|
57
|
-
@scenario = mock_scenario(:name => "title", :pending? => true)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
it "should display as pending when executing" do
|
|
61
|
-
@formatter.should_receive(:pending).with(" Scenario: title")
|
|
62
|
-
@formatter.scenario_executing(@scenario)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
it "should display as pending in the dump" do
|
|
66
|
-
@formatter.scenario_executing(@scenario)
|
|
67
|
-
@formatter.dump
|
|
68
|
-
@io.string.should include("1 scenarios pending")
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it "should put a line between last row scenario and new scenario" do
|
|
73
|
-
io = StringIO.new
|
|
74
|
-
formatter = PrettyFormatter.new io, mock('step_mother'), :source => true
|
|
75
|
-
scenario = mock_scenario(:row? => true)
|
|
76
|
-
|
|
77
|
-
formatter.scenario_executing(scenario)
|
|
78
|
-
formatter.scenario_executed(scenario)
|
|
79
|
-
formatter.scenario_executing(mock_scenario(:name => 'spacey', :row? => false))
|
|
80
|
-
|
|
81
|
-
io.string.should =~ /\n\n Scenario: spacey/
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
{'should' => true, 'should not' => false}.each do |should_or_should_not, show_snippet|
|
|
85
|
-
describe "snippets option #{show_snippet}" do
|
|
86
|
-
|
|
87
|
-
it "#{should_or_should_not} show snippet for pending step" do
|
|
88
|
-
@io = StringIO.new
|
|
89
|
-
step_mother = mock('step_mother', :has_step_definition? => false)
|
|
90
|
-
@formatter = PrettyFormatter.new @io, step_mother, :snippets => show_snippet
|
|
91
|
-
|
|
92
|
-
@formatter.step_pending(mock_step(:actual_keyword => 'Given', :name => 'pending step snippet'), nil, nil)
|
|
93
|
-
@formatter.dump
|
|
94
|
-
|
|
95
|
-
@io.string.send(should_or_should_not.gsub(' ','_').to_sym, include("Given /^pending step snippet$/ do"))
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
it "should escape snippets which have special regular expression characters" do
|
|
102
|
-
@io = StringIO.new
|
|
103
|
-
step_mother = mock('step_mother', :has_step_definition? => false)
|
|
104
|
-
@formatter = PrettyFormatter.new @io, step_mother, :snippets => true
|
|
105
|
-
|
|
106
|
-
@formatter.step_pending(mock_step(:actual_keyword => 'Given', :name => "$1 millon /'s"), nil, nil)
|
|
107
|
-
@formatter.dump
|
|
108
|
-
|
|
109
|
-
@io.string.should include("Given /^\\$1 millon \\/'s$/ do")
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
it "should not show the snippet for a step which already has a step definition" do
|
|
113
|
-
@io = StringIO.new
|
|
114
|
-
step_mother = mock('step_mother', :has_step_definition? => true)
|
|
115
|
-
@formatter = PrettyFormatter.new @io, step_mother, :snippets => true
|
|
116
|
-
|
|
117
|
-
@formatter.step_pending(mock_step(:actual_keyword => 'Given', :name => 'pending step snippet'), nil, nil)
|
|
118
|
-
@formatter.dump
|
|
119
|
-
|
|
120
|
-
@io.string.should_not include("Given /^pending step snippet$/ do")
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
describe "show source option true" do
|
|
124
|
-
|
|
125
|
-
before(:each) do
|
|
126
|
-
@io = StringIO.new
|
|
127
|
-
step_mother = mock('step_mother')
|
|
128
|
-
@formatter = PrettyFormatter.new @io, step_mother, :source => true
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
%w{passed failed skipped}.each do |result|
|
|
132
|
-
it "should display step source for #{result} step" do
|
|
133
|
-
@formatter.send("step_#{result}".to_sym, mock_step(:regexp_args_proc => [nil, nil, mock_proc], :error => StandardError.new, :padding_length => 2), nil, nil)
|
|
134
|
-
|
|
135
|
-
@io.string.should include("Given formatted yes # steps/example_steps.rb:11")
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
it "should display feature file and line for pending step" do
|
|
140
|
-
@formatter.step_pending(mock_step(:name => 'test', :file => 'features/example.feature', :line => 5, :padding_length => 2), nil, nil)
|
|
141
|
-
|
|
142
|
-
@io.string.should include("Given test # features/example.feature:5")
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
it "should display file and line for scenario" do
|
|
146
|
-
@formatter.scenario_executing(mock_scenario(:name => "title", :file => 'features/example.feature', :line => 2 , :padding_length => 2, :pending? => false))
|
|
147
|
-
|
|
148
|
-
@io.string.should include("Scenario: title # features/example.feature:2")
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
it "should display file for feature" do
|
|
152
|
-
@formatter.feature_executing(mock_feature(:file => 'features/example.feature', :padding_length => 2))
|
|
153
|
-
@formatter.header_executing("Feature: test\n In order to ...\n As a ...\n I want to ...\n")
|
|
154
|
-
|
|
155
|
-
@io.string.should include("Feature: test # features/example.feature\n")
|
|
156
|
-
@io.string.should include("In order to ...\n")
|
|
157
|
-
@io.string.should include("As a ...\n")
|
|
158
|
-
@io.string.should include("I want to ...\n")
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
it "should align step comments" do
|
|
162
|
-
step_1 = mock_step(:regexp_args_proc => [nil, nil, mock_proc], :format => "1", :padding_length => 10)
|
|
163
|
-
step_4 = mock_step(:regexp_args_proc => [nil, nil, mock_proc], :format => "4444", :padding_length => 7)
|
|
164
|
-
step_9 = mock_step(:regexp_args_proc => [nil, nil, mock_proc], :format => "999999999", :padding_length => 2)
|
|
165
|
-
|
|
166
|
-
@formatter.step_passed(step_1, nil, nil)
|
|
167
|
-
@formatter.step_passed(step_4, nil, nil)
|
|
168
|
-
@formatter.step_passed(step_9, nil, nil)
|
|
169
|
-
|
|
170
|
-
@io.string.should include("Given 1 # steps/example_steps.rb:11")
|
|
171
|
-
@io.string.should include("Given 4444 # steps/example_steps.rb:11")
|
|
172
|
-
@io.string.should include("Given 999999999 # steps/example_steps.rb:11")
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
it "should align step comments with respect to their scenario's comment" do
|
|
176
|
-
step = mock_step(:regexp_args_proc => [nil, nil, mock_proc], :error => StandardError.new, :padding_length => 6)
|
|
177
|
-
|
|
178
|
-
@formatter.scenario_executing(mock_scenario(:name => "very long title", :file => 'features/example.feature', :line => 5, :steps => [step], :padding_length => 2, :pending? => false))
|
|
179
|
-
@formatter.step_passed(step, nil, nil)
|
|
180
|
-
|
|
181
|
-
@io.string.should include("Scenario: very long title # features/example.feature:5")
|
|
182
|
-
@io.string.should include(" Given formatted yes # steps/example_steps.rb:11")
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
it "should reset the column count correctly" do
|
|
188
|
-
io = StringIO.new
|
|
189
|
-
formatter = PrettyFormatter.new io, mock('step_mother'), :source => true
|
|
190
|
-
|
|
191
|
-
large_scenario = mock_scenario(:row? => false, :table_column_widths => [3,3,5,4,4], :table_header => %w(one two three four five))
|
|
192
|
-
formatter.scenario_executing(large_scenario)
|
|
193
|
-
formatter.scenario_executed(large_scenario)
|
|
194
|
-
|
|
195
|
-
small_scenario = mock_scenario(:row? => false, :table_column_widths => [3,3], :table_header => %w(one two))
|
|
196
|
-
formatter.scenario_executing(small_scenario)
|
|
197
|
-
lambda {
|
|
198
|
-
formatter.scenario_executed(small_scenario)
|
|
199
|
-
}.should_not raise_error(TypeError)
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
end
|
|
203
|
-
end
|
|
204
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Formatters
|
|
5
|
-
describe ProgressFormatter do
|
|
6
|
-
it "should print . when passed" do
|
|
7
|
-
io = StringIO.new
|
|
8
|
-
formatter = ProgressFormatter.new io
|
|
9
|
-
step = stub('step',
|
|
10
|
-
:error => nil
|
|
11
|
-
)
|
|
12
|
-
formatter.step_passed(step,nil,nil)
|
|
13
|
-
io.string.should =~ /^\.$/
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should print F when failed" do
|
|
17
|
-
io = StringIO.new
|
|
18
|
-
formatter = ProgressFormatter.new io
|
|
19
|
-
step = stub('step',
|
|
20
|
-
:error => StandardError.new
|
|
21
|
-
)
|
|
22
|
-
formatter.step_failed(step,nil,nil)
|
|
23
|
-
io.string.should =~ /^\F$/
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "should print P when pending" do
|
|
27
|
-
io = StringIO.new
|
|
28
|
-
formatter = ProgressFormatter.new io
|
|
29
|
-
step = stub('step',
|
|
30
|
-
:error => Pending.new,
|
|
31
|
-
:scenario => mock('scenario')
|
|
32
|
-
)
|
|
33
|
-
formatter.step_pending(step,nil,nil)
|
|
34
|
-
io.string.should =~ /^\P$/
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should print _ when skipped" do
|
|
38
|
-
io = StringIO.new
|
|
39
|
-
formatter = ProgressFormatter.new io
|
|
40
|
-
formatter.step_skipped(nil,nil,nil)
|
|
41
|
-
io.string.should =~ /^_$/
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
describe "scenario without any steps" do
|
|
45
|
-
before :each do
|
|
46
|
-
@io = StringIO.new
|
|
47
|
-
@formatter = ProgressFormatter.new(@io)
|
|
48
|
-
@feature = stub("feature", :header => "Feature Header")
|
|
49
|
-
@scenario = stub("scenario", :feature => @feature, :name => "Scenario Title", :row? => false, :pending? => true)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "should print a P when executing" do
|
|
53
|
-
@formatter.should_receive(:pending).with("P")
|
|
54
|
-
@formatter.scenario_executing(@scenario)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should display as pending in the dump" do
|
|
58
|
-
@formatter.scenario_executing(@scenario)
|
|
59
|
-
@formatter.dump
|
|
60
|
-
@io.string.should include("Feature Header (Scenario Title)")
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Model
|
|
5
|
-
describe Table do
|
|
6
|
-
it "should convert into hash-array" do
|
|
7
|
-
raw = [
|
|
8
|
-
%w{name gender},
|
|
9
|
-
%w{aslak male},
|
|
10
|
-
%w{patty female},
|
|
11
|
-
]
|
|
12
|
-
ha = Table.new(raw).hashes
|
|
13
|
-
ha.should == [
|
|
14
|
-
{'name' => 'aslak', 'gender' => 'male'},
|
|
15
|
-
{'name' => 'patty', 'gender' => 'female'}
|
|
16
|
-
]
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Tree
|
|
5
|
-
describe Feature do
|
|
6
|
-
|
|
7
|
-
it "should have padding_length 2 when alone" do
|
|
8
|
-
feature = Feature.new('header')
|
|
9
|
-
feature.padding_length.should == 2
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe "creating a Scenario" do
|
|
13
|
-
|
|
14
|
-
it "should create a new scenario for a feature" do
|
|
15
|
-
feature = Feature.new('header')
|
|
16
|
-
|
|
17
|
-
Scenario.should_receive(:new).with(feature, 'test scenario', "19")
|
|
18
|
-
|
|
19
|
-
feature.Scenario('test scenario') {}
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
describe "creating a Table" do
|
|
25
|
-
|
|
26
|
-
it "should set the table header of the template scenario" do
|
|
27
|
-
feature = Feature.new('header')
|
|
28
|
-
mock_scenario = mock("scenario", :update_table_column_widths => nil)
|
|
29
|
-
Scenario.stub!(:new).and_return(mock_scenario)
|
|
30
|
-
feature.add_scenario('scenario', 5)
|
|
31
|
-
|
|
32
|
-
mock_scenario.should_receive(:table_header=).with(["input_1", "input_2"])
|
|
33
|
-
|
|
34
|
-
feature.Table do |t|
|
|
35
|
-
t | "input_1" | "input_2" | t
|
|
36
|
-
t | 1 | 2 | t
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Tree
|
|
5
|
-
describe RowScenario do
|
|
6
|
-
|
|
7
|
-
def mock_scenario(stubs = {})
|
|
8
|
-
mock('scenario', {:update_table_column_widths => nil, :steps => []}.merge(stubs))
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
describe "pending?" do
|
|
12
|
-
before :each do
|
|
13
|
-
@scenario = Scenario.new(nil, '', 1)
|
|
14
|
-
@row_scenario = RowScenario.new(mock('feature'), @scenario, [], 1)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "should return true if the template scenario has no steps" do
|
|
18
|
-
@row_scenario.should be_pending
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should return false if the template scenario has no steps" do
|
|
22
|
-
@scenario.create_step('Given', 'a long step', 1)
|
|
23
|
-
@row_scenario.should_not be_pending
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
describe "generating row steps" do
|
|
28
|
-
|
|
29
|
-
it "should cache unbound steps" do
|
|
30
|
-
row_scenario = RowScenario.new(mock('feature'), mock_scenario, [], 1)
|
|
31
|
-
|
|
32
|
-
row_scenario.steps.should equal(row_scenario.steps)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
it "should cache bound steps" do
|
|
36
|
-
mock_step = mock('step', :arity => 1)
|
|
37
|
-
row_scenario = RowScenario.new(mock('feature'), mock_scenario(:steps => [mock_step]), [], 1)
|
|
38
|
-
|
|
39
|
-
row_scenario.steps.should equal(row_scenario.steps)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should regenerate row steps when scenario template steps have been matched" do
|
|
43
|
-
mock_step = mock('step', :arity => 0)
|
|
44
|
-
row_scenario = RowScenario.new(mock('feature'), mock_scenario(:steps => [mock_step]), [], 1)
|
|
45
|
-
unbound_steps = row_scenario.steps
|
|
46
|
-
mock_step.stub!(:arity => 1)
|
|
47
|
-
|
|
48
|
-
unbound_steps.should_not equal(row_scenario.steps)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,76 +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
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,50 +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
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
@@ -1,98 +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 multiple tables" do
|
|
71
|
-
p = FeatureParser.new
|
|
72
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/multiple_tables.feature')
|
|
73
|
-
f.should have(6).scenarios
|
|
74
|
-
f.scenarios[0].should have(5).steps
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it "should allow empty features" do
|
|
78
|
-
p = FeatureParser.new
|
|
79
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/empty_feature.feature')
|
|
80
|
-
f.should have(0).scenarios
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it "should parse features with dos line endings" do
|
|
84
|
-
p = FeatureParser.new
|
|
85
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/test_dos.feature')
|
|
86
|
-
f.should have(5).scenarios
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
it "should parse multiline steps" do
|
|
90
|
-
p = FeatureParser.new
|
|
91
|
-
f = p.parse_feature(File.dirname(__FILE__) + '/multiline_steps.feature')
|
|
92
|
-
f.should have(1).scenarios
|
|
93
|
-
step = f.scenarios[0].steps[3]
|
|
94
|
-
step.extra_args[0].should == "A string\n that \"indents\"\nand spans\nseveral lines\n"
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
File without changes
|