jwilger-cucumber 0.3.11.200906161550
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 +830 -0
- data/License.txt +20 -0
- data/Manifest.txt +410 -0
- data/README.txt +4 -0
- data/Rakefile +9 -0
- data/bin/cucumber +17 -0
- data/config/hoe.rb +76 -0
- data/config/requirements.rb +15 -0
- data/cucumber.yml +2 -0
- data/examples/cs/README.textile +1 -0
- data/examples/cs/Rakefile +12 -0
- 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/dos_line_endings/Rakefile +6 -0
- data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
- data/examples/i18n/README.textile +18 -0
- data/examples/i18n/Rakefile +30 -0
- data/examples/i18n/ar/Rakefile +6 -0
- data/examples/i18n/ar/features/addition.feature +17 -0
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ar/lib/calculator.rb +11 -0
- data/examples/i18n/bg/Rakefile +6 -0
- data/examples/i18n/bg/features/addition.feature +12 -0
- data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
- data/examples/i18n/bg/features/division.feature +17 -0
- data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/bg/features/support/env.rb +6 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/cat/Rakefile +6 -0
- data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
- data/examples/i18n/cat/features/suma.feature +17 -0
- data/examples/i18n/cat/lib/calculadora.rb +16 -0
- data/examples/i18n/da/Rakefile +6 -0
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/da/features/summering.feature +18 -0
- data/examples/i18n/da/lib/kalkulator.rb +11 -0
- data/examples/i18n/de/Rakefile +6 -0
- data/examples/i18n/de/features/addition.feature +17 -0
- data/examples/i18n/de/features/division.feature +10 -0
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/de/lib/calculator.rb +14 -0
- data/examples/i18n/en/Rakefile +6 -0
- data/examples/i18n/en/features/addition.feature +17 -0
- data/examples/i18n/en/features/division.feature +10 -0
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/en/lib/calculator.rb +14 -0
- 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/Rakefile +6 -0
- data/examples/i18n/es/features/adicion.feature +17 -0
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
- data/examples/i18n/es/lib/calculador.rb +14 -0
- data/examples/i18n/et/Rakefile +6 -0
- data/examples/i18n/et/features/jagamine.feature +10 -0
- data/examples/i18n/et/features/liitmine.feature +17 -0
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
- data/examples/i18n/et/lib/kalkulaator.rb +14 -0
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +10 -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/Rakefile +6 -0
- data/examples/i18n/fr/features/addition.feature +18 -0
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +25 -0
- data/examples/i18n/fr/lib/calculatrice.rb +10 -0
- data/examples/i18n/he/Rakefile +6 -0
- data/examples/i18n/he/features/addition.feature +17 -0
- data/examples/i18n/he/features/division.feature +10 -0
- data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/he/lib/calculator.rb +14 -0
- data/examples/i18n/hu/Rakefile +6 -0
- data/examples/i18n/hu/features/addition.feature +17 -0
- data/examples/i18n/hu/features/division.feature +10 -0
- data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
- data/examples/i18n/hu/lib/calculator.rb +14 -0
- data/examples/i18n/id/Rakefile +6 -0
- data/examples/i18n/id/features/addition.feature +17 -0
- data/examples/i18n/id/features/division.feature +10 -0
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/id/lib/calculator.rb +14 -0
- data/examples/i18n/it/Rakefile +6 -0
- data/examples/i18n/it/features/somma.feature +11 -0
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
- data/examples/i18n/it/lib/calcolatrice.rb +11 -0
- data/examples/i18n/ja/Rakefile +6 -0
- data/examples/i18n/ja/features/addition.feature +17 -0
- data/examples/i18n/ja/features/division.feature +10 -0
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ja/lib/calculator.rb +14 -0
- data/examples/i18n/ko/Rakefile +6 -0
- data/examples/i18n/ko/features/addition.feature +17 -0
- data/examples/i18n/ko/features/division.feature +11 -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/Rakefile +6 -0
- data/examples/i18n/lt/features/addition.feature +17 -0
- data/examples/i18n/lt/features/division.feature +10 -0
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lt/lib/calculator.rb +14 -0
- data/examples/i18n/lv/Rakefile +6 -0
- data/examples/i18n/lv/features/addition.feature +17 -0
- data/examples/i18n/lv/features/division.feature +10 -0
- data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lv/lib/calculator.rb +14 -0
- data/examples/i18n/no/Rakefile +6 -0
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
- data/examples/i18n/no/features/summering.feature +19 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/no/lib/kalkulator.rb +11 -0
- data/examples/i18n/pl/Rakefile +6 -0
- data/examples/i18n/pl/features/addition.feature +17 -0
- data/examples/i18n/pl/features/division.feature +10 -0
- data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/pl/features/support/env.rb +6 -0
- data/examples/i18n/pl/lib/calculator.rb +14 -0
- data/examples/i18n/pt/Rakefile +6 -0
- data/examples/i18n/pt/features/adicao.feature +11 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
- data/examples/i18n/pt/features/support/env.rb +6 -0
- data/examples/i18n/pt/lib/calculadora.rb +10 -0
- data/examples/i18n/ro/Rakefile +6 -0
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ro/features/suma.feature +11 -0
- data/examples/i18n/ro/lib/calculator.rb +11 -0
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +11 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/ru/features/division.feature +16 -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 +8 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/Rakefile +6 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/se/features/summering.feature +18 -0
- data/examples/i18n/se/lib/kalkulator.rb +11 -0
- data/examples/i18n/sk/Rakefile +6 -0
- data/examples/i18n/sk/features/addition.feature +17 -0
- data/examples/i18n/sk/features/division.feature +10 -0
- data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sk/lib/calculator.rb +14 -0
- data/examples/i18n/zh-CN/Rakefile +6 -0
- data/examples/i18n/zh-CN/features/addition.feature +18 -0
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
- data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
- data/examples/i18n/zh-TW/Rakefile +6 -0
- data/examples/i18n/zh-TW/features/addition.feature +17 -0
- data/examples/i18n/zh-TW/features/division.feature +11 -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/README.textile +18 -0
- data/examples/java/build.xml +33 -0
- data/examples/java/features/hello.feature +11 -0
- data/examples/java/features/step_definitons/hello_steps.rb +23 -0
- data/examples/java/features/step_definitons/tree_steps.rb +14 -0
- data/examples/java/features/tree.feature +9 -0
- data/examples/java/src/cucumber/demo/Hello.java +16 -0
- data/examples/junit/features/one_passing_one_failing.feature +8 -0
- data/examples/junit/features/pending.feature +5 -0
- data/examples/junit/features/step_definitions/steps.rb +11 -0
- data/examples/pure_java/README.textile +5 -0
- data/examples/selenium/Rakefile +6 -0
- data/examples/selenium/features/search.feature +9 -0
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/Rakefile +6 -0
- data/examples/selenium_webrat/config.ru +0 -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 +45 -0
- data/examples/self_test/README.textile +6 -0
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
- data/examples/self_test/features/background/background_with_name.feature +7 -0
- data/examples/self_test/features/background/failing_background.feature +12 -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/multiline_name.feature +27 -0
- data/examples/self_test/features/outline_sample.feature +15 -0
- data/examples/self_test/features/sample.feature +21 -0
- data/examples/self_test/features/search_sample.feature +32 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +81 -0
- data/examples/self_test/features/support/env.rb +17 -0
- data/examples/self_test/features/tons_of_cukes.feature +52 -0
- data/examples/self_test/features/undefined_multiline_args.feature +12 -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 +28 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
- data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
- data/examples/test_unit/Rakefile +6 -0
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
- data/examples/test_unit/features/test_unit.feature +9 -0
- data/examples/tickets/Rakefile +16 -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/229/tagged_hooks.feature +8 -0
- data/examples/tickets/features/229/tagged_hooks.rb +14 -0
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/246.feature +4 -0
- data/examples/tickets/features/248.feature +11 -0
- data/examples/tickets/features/270/back.feature +14 -0
- data/examples/tickets/features/270/back.steps.rb +14 -0
- data/examples/tickets/features/272/hooks.feature +26 -0
- data/examples/tickets/features/272/hooks_steps.rb +53 -0
- data/examples/tickets/features/279/py_string_indent.feature +25 -0
- data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
- data/examples/tickets/features/279/wrong.feature_ +11 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
- data/examples/tickets/features/306/only_background.feature +4 -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/246_steps.rb +3 -0
- data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +66 -0
- data/examples/tickets/features/tickets.feature +28 -0
- data/examples/watir/README.textile +16 -0
- data/examples/watir/Rakefile +6 -0
- data/examples/watir/features/search.feature +12 -0
- data/examples/watir/features/step_definitons/search_steps.rb +22 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/after_block_exceptions.feature +102 -0
- data/features/after_step_block_exceptions.feature +104 -0
- data/features/background.feature +311 -0
- data/features/bug_371.feature +32 -0
- data/features/cucumber_cli.feature +549 -0
- data/features/cucumber_cli_diff_disabled.feature +53 -0
- data/features/cucumber_cli_outlines.feature +109 -0
- data/features/custom_formatter.feature +11 -0
- data/features/drb_server_integration.feature +115 -0
- data/features/exclude_files.feature +20 -0
- data/features/expand.feature +49 -0
- data/features/html_formatter/a.html +185 -0
- data/features/html_formatter.feature +7 -0
- data/features/junit_formatter.feature +71 -0
- data/features/language_from_header.feature +30 -0
- data/features/multiline_names.feature +43 -0
- data/features/rake_task.feature +150 -0
- data/features/report_called_undefined_steps.feature +35 -0
- data/features/snippet.feature +22 -0
- data/features/step_definitions/cucumber_steps.rb +130 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/steps_formatter.feature +25 -0
- data/features/support/env.rb +120 -0
- data/features/usage.feature +126 -0
- data/features/work_in_progress.feature +151 -0
- data/gem_tasks/deployment.rake +11 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/features.rake +10 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/gemspec.rake +10 -0
- data/gem_tasks/rspec.rake +45 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/yard.rake +8 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +125 -0
- data/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/autotest/discover.rb +9 -0
- data/lib/cucumber/ast/background.rb +62 -0
- data/lib/cucumber/ast/comment.rb +30 -0
- data/lib/cucumber/ast/examples.rb +26 -0
- data/lib/cucumber/ast/feature.rb +58 -0
- data/lib/cucumber/ast/feature_element.rb +57 -0
- data/lib/cucumber/ast/features.rb +30 -0
- data/lib/cucumber/ast/outline_table.rb +143 -0
- data/lib/cucumber/ast/py_string.rb +57 -0
- data/lib/cucumber/ast/scenario.rb +83 -0
- data/lib/cucumber/ast/scenario_outline.rb +93 -0
- data/lib/cucumber/ast/step.rb +112 -0
- data/lib/cucumber/ast/step_collection.rb +75 -0
- data/lib/cucumber/ast/step_invocation.rb +136 -0
- data/lib/cucumber/ast/table.rb +334 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +116 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +427 -0
- data/lib/cucumber/cli/drb_client.rb +20 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +136 -0
- data/lib/cucumber/core_ext/exception.rb +53 -0
- data/lib/cucumber/core_ext/instance_exec.rb +67 -0
- data/lib/cucumber/core_ext/proc.rb +29 -0
- data/lib/cucumber/core_ext/string.rb +48 -0
- data/lib/cucumber/feature_file.rb +47 -0
- data/lib/cucumber/filter.rb +50 -0
- data/lib/cucumber/formatter/ansicolor.rb +110 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +149 -0
- data/lib/cucumber/formatter/cucumber.css +132 -0
- data/lib/cucumber/formatter/cucumber.sass +139 -0
- data/lib/cucumber/formatter/duration.rb +10 -0
- data/lib/cucumber/formatter/html.rb +258 -0
- data/lib/cucumber/formatter/junit.rb +75 -0
- data/lib/cucumber/formatter/pretty.rb +188 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +44 -0
- data/lib/cucumber/formatter/steps.rb +49 -0
- data/lib/cucumber/formatter/tag_cloud.rb +28 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter/usage.rb +85 -0
- data/lib/cucumber/formatters/unicode.rb +7 -0
- data/lib/cucumber/languages.yml +532 -0
- data/lib/cucumber/parser/feature.rb +1787 -0
- data/lib/cucumber/parser/feature.tt +324 -0
- data/lib/cucumber/parser/i18n/language.rb +80 -0
- data/lib/cucumber/parser/i18n.tt +42 -0
- data/lib/cucumber/parser/table.rb +414 -0
- data/lib/cucumber/parser/table.tt +71 -0
- data/lib/cucumber/parser/treetop_ext.rb +52 -0
- data/lib/cucumber/parser.rb +6 -0
- data/lib/cucumber/platform.rb +23 -0
- data/lib/cucumber/rails/rspec.rb +10 -0
- data/lib/cucumber/rails/world.rb +99 -0
- data/lib/cucumber/rake/task.rb +233 -0
- data/lib/cucumber/rspec_neuter.rb +23 -0
- data/lib/cucumber/step_definition.rb +122 -0
- data/lib/cucumber/step_match.rb +61 -0
- data/lib/cucumber/step_mother.rb +362 -0
- data/lib/cucumber/version.rb +10 -0
- data/lib/cucumber/world.rb +53 -0
- data/lib/cucumber.rb +11 -0
- data/rails_generators/cucumber/USAGE +11 -0
- data/rails_generators/cucumber/cucumber_generator.rb +66 -0
- data/rails_generators/cucumber/templates/cucumber +8 -0
- data/rails_generators/cucumber/templates/cucumber.rake +20 -0
- data/rails_generators/cucumber/templates/cucumber_environment.rb +23 -0
- data/rails_generators/cucumber/templates/env.rb +26 -0
- data/rails_generators/cucumber/templates/paths.rb +27 -0
- data/rails_generators/cucumber/templates/spork_env.rb +36 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +147 -0
- data/rails_generators/feature/USAGE +12 -0
- data/rails_generators/feature/feature_generator.rb +40 -0
- data/rails_generators/feature/templates/feature.erb +31 -0
- data/rails_generators/feature/templates/steps.erb +20 -0
- data/spec/cucumber/ast/background_spec.rb +50 -0
- data/spec/cucumber/ast/feature_element_spec.rb +40 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +38 -0
- data/spec/cucumber/ast/py_string_spec.rb +51 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +38 -0
- data/spec/cucumber/ast/step_collection_spec.rb +17 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +186 -0
- data/spec/cucumber/ast/visitor_spec.rb +27 -0
- data/spec/cucumber/broadcaster_spec.rb +15 -0
- data/spec/cucumber/cli/configuration_spec.rb +396 -0
- data/spec/cucumber/cli/drb_client_spec.rb +43 -0
- data/spec/cucumber/cli/main_spec.rb +140 -0
- data/spec/cucumber/core_ext/proc_spec.rb +54 -0
- data/spec/cucumber/core_ext/string_spec.rb +42 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
- data/spec/cucumber/formatter/color_io_spec.rb +27 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/progress_spec.rb +36 -0
- data/spec/cucumber/parser/feature_parser_spec.rb +387 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
- data/spec/cucumber/rails/stubs/test_help.rb +1 -0
- data/spec/cucumber/rails/world_spec.rb +11 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_definition_spec.rb +101 -0
- data/spec/cucumber/step_mother_spec.rb +155 -0
- data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
- data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
- data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
- data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
- data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
- data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
- data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
- data/spec/cucumber/treetop_parser/spaces.feature +12 -0
- data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
- data/spec/cucumber/treetop_parser/with_comments.feature +10 -0
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +47 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +13 -0
- metadata +506 -0
@@ -0,0 +1,155 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
require 'cucumber/step_mother'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
describe StepMother do
|
7
|
+
before do
|
8
|
+
@step_mother = Object.new
|
9
|
+
@step_mother.extend(StepMother)
|
10
|
+
@visitor = mock('Visitor')
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should format step names" do
|
14
|
+
@step_mother.Given(/it (.*) in (.*)/) do |what, month|
|
15
|
+
end
|
16
|
+
@step_mother.Given(/nope something else/) do |what, month|
|
17
|
+
end
|
18
|
+
format = @step_mother.step_match("it snows in april").format_args("[%s]")
|
19
|
+
format.should == "it [snows] in [april]"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should raise Ambiguous error with guess hint when multiple step definitions match" do
|
23
|
+
@step_mother.Given(/Three (.*) mice/) {|disability|}
|
24
|
+
@step_mother.Given(/Three blind (.*)/) {|animal|}
|
25
|
+
|
26
|
+
lambda do
|
27
|
+
@step_mother.step_match("Three blind mice")
|
28
|
+
end.should raise_error(Ambiguous, %{Ambiguous match of "Three blind mice":
|
29
|
+
|
30
|
+
spec/cucumber/step_mother_spec.rb:23:in `/Three (.*) mice/'
|
31
|
+
spec/cucumber/step_mother_spec.rb:24:in `/Three blind (.*)/'
|
32
|
+
|
33
|
+
You can run again with --guess to make Cucumber be more smart about it
|
34
|
+
})
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should not show --guess hint when --guess is used" do
|
38
|
+
@step_mother.options = {:guess => true}
|
39
|
+
@step_mother.Given(/Three (.*) mice/) {|disability|}
|
40
|
+
@step_mother.Given(/Three cute (.*)/) {|animal|}
|
41
|
+
|
42
|
+
lambda do
|
43
|
+
@step_mother.step_match("Three cute mice")
|
44
|
+
end.should raise_error(Ambiguous, %{Ambiguous match of "Three cute mice":
|
45
|
+
|
46
|
+
spec/cucumber/step_mother_spec.rb:39:in `/Three (.*) mice/'
|
47
|
+
spec/cucumber/step_mother_spec.rb:40:in `/Three cute (.*)/'
|
48
|
+
|
49
|
+
})
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should not raise Ambiguous error when multiple step definitions match, but --guess is enabled" do
|
53
|
+
@step_mother.options = {:guess => true}
|
54
|
+
@step_mother.Given(/Three (.*) mice/) {|disability|}
|
55
|
+
@step_mother.Given(/Three (.*)/) {|animal|}
|
56
|
+
|
57
|
+
lambda do
|
58
|
+
@step_mother.step_match("Three blind mice")
|
59
|
+
end.should_not raise_error
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should pick right step definition when --guess is enabled and equal number of capture groups" do
|
63
|
+
@step_mother.options = {:guess => true}
|
64
|
+
right = @step_mother.Given(/Three (.*) mice/) {|disability|}
|
65
|
+
wrong = @step_mother.Given(/Three (.*)/) {|animal|}
|
66
|
+
@step_mother.step_match("Three blind mice").step_definition.should == right
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should pick right step definition when --guess is enabled and unequal number of capture groups" do
|
70
|
+
@step_mother.options = {:guess => true}
|
71
|
+
right = @step_mother.Given(/Three (.*) mice ran (.*)/) {|disability|}
|
72
|
+
wrong = @step_mother.Given(/Three (.*)/) {|animal|}
|
73
|
+
@step_mother.step_match("Three blind mice ran far").step_definition.should == right
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should raise Undefined error when no step definitions match" do
|
77
|
+
lambda do
|
78
|
+
@step_mother.step_match("Three blind mice")
|
79
|
+
end.should raise_error(Undefined)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should raise Redundant error when same regexp is registered twice" do
|
83
|
+
@step_mother.Given(/Three (.*) mice/) {|disability|}
|
84
|
+
lambda do
|
85
|
+
@step_mother.Given(/Three (.*) mice/) {|disability|}
|
86
|
+
end.should raise_error(Redundant)
|
87
|
+
end
|
88
|
+
|
89
|
+
# http://railsforum.com/viewtopic.php?pid=93881
|
90
|
+
it "should not raise Redundant unless it's really redundant" do
|
91
|
+
@step_mother.Given(/^(.*) (.*) user named '(.*)'$/) {|a,b,c|}
|
92
|
+
@step_mother.Given(/^there is no (.*) user named '(.*)'$/) {|a,b|}
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should raise an error if the world is nil" do
|
96
|
+
@step_mother.World do
|
97
|
+
end
|
98
|
+
|
99
|
+
begin
|
100
|
+
@step_mother.before_and_after(nil) {}
|
101
|
+
raise "Should fail"
|
102
|
+
rescue NilWorld => e
|
103
|
+
e.message.should == "World procs should never return nil"
|
104
|
+
e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:96:in `World'"]
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
module ModuleOne
|
109
|
+
end
|
110
|
+
|
111
|
+
module ModuleTwo
|
112
|
+
end
|
113
|
+
|
114
|
+
class ClassOne
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should implicitly extend world with modules" do
|
118
|
+
@step_mother.World(ModuleOne, ModuleTwo)
|
119
|
+
|
120
|
+
w = @step_mother.__send__(:new_world!)
|
121
|
+
class << w
|
122
|
+
included_modules.index(ModuleOne).should_not == nil
|
123
|
+
included_modules.index(ModuleTwo).should_not == nil
|
124
|
+
end
|
125
|
+
w.class.should == Object
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should raise error when we try to register more than one World proc" do
|
129
|
+
@step_mother.World { Hash.new }
|
130
|
+
lambda do
|
131
|
+
@step_mother.World { Array.new }
|
132
|
+
end.should raise_error(MultipleWorld, %{You can only pass a proc to #World once, but it's happening
|
133
|
+
in 2 places:
|
134
|
+
|
135
|
+
spec/cucumber/step_mother_spec.rb:129:in `World'
|
136
|
+
spec/cucumber/step_mother_spec.rb:131:in `World'
|
137
|
+
|
138
|
+
Use Ruby modules instead to extend your worlds. See the Cucumber::StepMother#World RDoc
|
139
|
+
or http://wiki.github.com/aslakhellesoy/cucumber/a-whole-new-world.
|
140
|
+
|
141
|
+
})
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should find before hooks" do
|
145
|
+
fish = @step_mother.Before('@fish'){}
|
146
|
+
meat = @step_mother.Before('@meat'){}
|
147
|
+
|
148
|
+
scenario = mock('Scenario')
|
149
|
+
scenario.should_receive(:accept_hook?).with(fish).and_return(true)
|
150
|
+
scenario.should_receive(:accept_hook?).with(meat).and_return(false)
|
151
|
+
|
152
|
+
@step_mother.hooks_for(:before, scenario).should == [fish]
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: Multiline steps should work
|
2
|
+
|
3
|
+
Scenario: Reading a table
|
4
|
+
Given the following table
|
5
|
+
| where | why |
|
6
|
+
| Oslo | born |
|
7
|
+
| London| working |
|
8
|
+
Then I should be working in London
|
9
|
+
And I should be born in Oslo
|
10
|
+
And I should be able to expect
|
11
|
+
"""
|
12
|
+
A string
|
13
|
+
that "indents"
|
14
|
+
and spans
|
15
|
+
several lines
|
16
|
+
|
17
|
+
"""
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Addition
|
2
|
+
In order to avoid silly mistakes
|
3
|
+
As a math idiot
|
4
|
+
I want to be told the sum of two numbers
|
5
|
+
|
6
|
+
Scenario: Add two numbers
|
7
|
+
Given I have entered 50 into the calculator
|
8
|
+
And I have entered 70 into the calculator
|
9
|
+
When I press add
|
10
|
+
Then the result should be 120 on the screen
|
11
|
+
|
12
|
+
More Examples:
|
13
|
+
| input_1 | input_2 | button | output |
|
14
|
+
| 20 | 30 | add | 50 |
|
15
|
+
| 2 | 5 | add | 7 |
|
16
|
+
| 0 | 40 | add | 40 |
|
17
|
+
|
18
|
+
Scenario: Add three numbers
|
19
|
+
Given I have entered 25 into the calculator
|
20
|
+
And I have entered 12 into the calculator
|
21
|
+
And I have entered 13 into the calculator
|
22
|
+
When I press add
|
23
|
+
Then the result should be 50 on the screen
|
24
|
+
|
25
|
+
More Examples:
|
26
|
+
| input_1 | input_2 | input_3 | button | output |
|
27
|
+
| 1 | 2 | 3 | add | 6 |
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Feature: Valid Outlines
|
2
|
+
|
3
|
+
Scenario Outline: Joe fails to login
|
4
|
+
Given I login as Joe without the '<Privilege>' privilege
|
5
|
+
When I <Request Method> /admin/<Path>
|
6
|
+
Then I should see the text "Sorry Joe, you're not allowed to see <Path>"
|
7
|
+
|
8
|
+
Examples:
|
9
|
+
| Privilege | Request Method | Path |
|
10
|
+
| user | GET | reports |
|
11
|
+
| user | GET | managers |
|
12
|
+
|
13
|
+
Scenario Outline: Look at me ma no examples!
|
14
|
+
Given I login as Joe without the '<Privilege>' privilege
|
15
|
+
When I <Request Method> /admin/<Path>
|
16
|
+
Then I should see the text "Sorry Joe, you're not allowed to see <Path>"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Feature: Search
|
2
|
+
In order to learn cucumber
|
3
|
+
As an engineer
|
4
|
+
I want to run some simple tests
|
5
|
+
|
6
|
+
Scenario: 1) Reverse a String
|
7
|
+
Given a string "abc"
|
8
|
+
When the string is reversed
|
9
|
+
Then the string should be "cba"
|
10
|
+
|
11
|
+
More Examples:
|
12
|
+
|input |output|
|
13
|
+
|a |a |
|
14
|
+
|ab |ba |
|
15
|
+
|
16
|
+
Scenario: 2) Upcase a String
|
17
|
+
Given a string "abc"
|
18
|
+
When the string is upcased
|
19
|
+
Then the string should be "ABC"
|
20
|
+
|
21
|
+
Scenario: 3) Combining 2 Methods
|
22
|
+
Given a string "abc"
|
23
|
+
When the string is upcased
|
24
|
+
And the string is reversed
|
25
|
+
Then the string should be "CBA"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Uhm hai
|
2
|
+
# nai
|
3
|
+
@nice @hallo
|
4
|
+
Feature: With tags
|
5
|
+
|
6
|
+
@one @two
|
7
|
+
Scenario: Complete scenario
|
8
|
+
Given a valid API key
|
9
|
+
|
10
|
+
@three
|
11
|
+
Scenario: Will write at somepoint
|
12
|
+
|
13
|
+
@four @$$
|
14
|
+
Scenario: Another Complete scenario
|
15
|
+
Given an invalid API key
|
16
|
+
|
17
|
+
@six
|
18
|
+
Scenario Outline: Jalla
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module StepMother
|
5
|
+
describe 'Pending' do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@step_mom = Object.new
|
9
|
+
@step_mom.extend(StepMother)
|
10
|
+
@world = @step_mom.__send__(:new_world!)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should raise a Pending if no block is supplied' do
|
14
|
+
lambda {
|
15
|
+
@world.pending "TODO"
|
16
|
+
}.should raise_error(Pending, /TODO/)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should raise a Pending if a supplied block fails as expected' do
|
20
|
+
lambda {
|
21
|
+
@world.pending "TODO" do
|
22
|
+
raise "oops"
|
23
|
+
end
|
24
|
+
}.should raise_error(Pending, /TODO/)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should raise a Pending if a supplied block fails as expected with a mock' do
|
28
|
+
lambda {
|
29
|
+
@world.pending "TODO" do
|
30
|
+
m = mock('thing')
|
31
|
+
m.should_receive(:foo)
|
32
|
+
m.rspec_verify
|
33
|
+
end
|
34
|
+
}.should raise_error(Pending, /TODO/)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should raise a Pending if a supplied block starts working' do
|
38
|
+
lambda {
|
39
|
+
@world.pending "TODO" do
|
40
|
+
# success!
|
41
|
+
end
|
42
|
+
}.should raise_error(Pending, /TODO/)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'rspec'
|
3
|
+
require 'spec'
|
4
|
+
require 'spec/autorun'
|
5
|
+
|
6
|
+
ENV['CUCUMBER_COLORS']=nil
|
7
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
8
|
+
require 'cucumber'
|
9
|
+
$:.unshift(File.dirname(__FILE__))
|
10
|
+
|
11
|
+
::Term::ANSIColor.coloring = true
|
12
|
+
|
13
|
+
alias running lambda
|