kosmas58-cucumber 0.3.102 → 0.3.103

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.
Files changed (39) hide show
  1. data/History.txt +8 -2
  2. data/Manifest.txt +6 -1
  3. data/examples/java/README.textile +3 -3
  4. data/examples/self_test/features/sample.feature +1 -1
  5. data/examples/self_test/features/search_sample.feature +1 -1
  6. data/features/custom_formatter.feature +4 -4
  7. data/lib/cucumber/ast.rb +1 -0
  8. data/lib/cucumber/ast/table.rb +4 -4
  9. data/lib/cucumber/ast/visitor.rb +2 -106
  10. data/lib/cucumber/cli/configuration.rb +28 -28
  11. data/lib/cucumber/cli/language_help_formatter.rb +5 -7
  12. data/lib/cucumber/cli/main.rb +3 -3
  13. data/lib/cucumber/formatter/html.rb +203 -113
  14. data/lib/cucumber/formatter/junit.rb +29 -23
  15. data/lib/cucumber/formatter/pdf.rb +74 -69
  16. data/lib/cucumber/formatter/pretty.rb +93 -78
  17. data/lib/cucumber/formatter/profile.rb +2 -2
  18. data/lib/cucumber/formatter/progress.rb +16 -10
  19. data/lib/cucumber/formatter/rerun.rb +4 -5
  20. data/lib/cucumber/formatter/steps.rb +2 -3
  21. data/lib/cucumber/formatter/tag_cloud.rb +7 -6
  22. data/lib/cucumber/formatter/usage.rb +4 -7
  23. data/lib/cucumber/language_support/step_definition_methods.rb +2 -2
  24. data/lib/cucumber/rb_support/rb_language.rb +5 -0
  25. data/lib/cucumber/rb_support/rb_step_definition.rb +3 -3
  26. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
  27. data/lib/cucumber/step_argument.rb +9 -0
  28. data/lib/cucumber/step_match.rb +12 -14
  29. data/lib/cucumber/version.rb +1 -1
  30. data/spec/cucumber/ast/background_spec.rb +1 -2
  31. data/spec/cucumber/ast/scenario_outline_spec.rb +3 -2
  32. data/spec/cucumber/ast/scenario_spec.rb +1 -1
  33. data/spec/cucumber/formatter/html_spec.rb +221 -2
  34. data/spec/cucumber/formatter/progress_spec.rb +9 -4
  35. data/spec/cucumber/parser/feature_parser_spec.rb +31 -27
  36. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
  37. data/spec/cucumber/step_match_spec.rb +40 -0
  38. metadata +6 -3
  39. data/lib/cucumber/rb_support/rb_group.rb +0 -32
@@ -8,13 +8,18 @@ module Cucumber
8
8
  before(:each) do
9
9
  Term::ANSIColor.coloring = false
10
10
  @out = StringIO.new
11
- @progress = Progress.new(mock("step mother"), @out, {})
11
+ progress = Progress.new(mock("step mother"), @out, {})
12
+ @visitor = Ast::TreeWalker.new(nil, [progress])
12
13
  end
13
14
 
14
15
  describe "visiting a table cell value without a status" do
15
16
  it "should take the status from the last run step" do
16
- @progress.visit_step_result('', '', nil, :failed, nil, 10, nil)
17
- @progress.visit_table_cell_value('value', nil)
17
+ @visitor.visit_step_result('', '', nil, :failed, nil, 10, nil)
18
+ outline_table = mock()
19
+ outline_table.should_receive(:accept) do |visitor|
20
+ visitor.visit_table_cell_value('value', nil)
21
+ end
22
+ @visitor.visit_outline_table(outline_table)
18
23
 
19
24
  @out.string.should == "FF"
20
25
  end
@@ -22,7 +27,7 @@ module Cucumber
22
27
 
23
28
  describe "visiting a table cell which is a table header" do
24
29
  it "should not output anything" do
25
- @progress.visit_table_cell_value('value', :skipped_param)
30
+ @visitor.visit_table_cell_value('value', :skipped_param)
26
31
 
27
32
  @out.string.should == ""
28
33
  end
@@ -361,34 +361,38 @@ Given I am a step
361
361
 
362
362
  describe "Filtering" do
363
363
  it "should filter outline tables" do
364
- ff = FeatureFile.new(
365
- File.dirname(__FILE__) + '/../../../examples/self_test/features/outline_sample.feature:12')
366
- f = ff.parse(@step_mother, {:lang => 'en'})
367
- f.to_sexp.should ==
364
+ path = '/self_test/features/outline_sample.feature'
365
+ f = parse_example_file("#{path}:12")
366
+ actual_sexp = f.to_sexp
367
+
368
+ # check path is equivalent, if not same
369
+ File.expand_path(actual_sexp[1]).should == File.expand_path(File.dirname(__FILE__) + "/../../../examples#{path}")
370
+ actual_sexp[1] = 'made/up/path.feature'
371
+ actual_sexp.should ==
368
372
  [:feature,
369
- "./spec/cucumber/parser/../../../examples/self_test/features/outline_sample.feature",
370
- "Feature: Outline Sample",
371
- [:scenario_outline,
372
- "Scenario Outline:",
373
- "Test state",
374
- [:step, 6, "Given", "<state> without a table"],
375
- [:step, 7, "Given", "<other_state> without a table"],
376
- [:examples,
377
- "Examples:",
378
- "Rainbow colours",
379
- [:table,
380
- [:row, 9, [:cell, "state"], [:cell, "other_state"]],
381
- # [:row, 10, [:cell, "missing"], [:cell, "passing"]],
382
- # [:row, 11, [:cell, "passing"], [:cell, "passing"]],
383
- [:row, 12, [:cell, "failing"], [:cell, "passing"]]]]
384
- # ,
385
- # [:examples,
386
- # "Examples:",
387
- # "Only passing",
388
- # [:table,
389
- # [:row, 14, [:cell, "state"], [:cell, "other_state"]],
390
- # [:row, 15, [:cell, "passing"], [:cell, "passing"]]]]]
391
- ]]
373
+ 'made/up/path.feature',
374
+ "Feature: Outline Sample",
375
+ [:scenario_outline,
376
+ "Scenario Outline:",
377
+ "Test state",
378
+ [:step, 6, "Given", "<state> without a table"],
379
+ [:step, 7, "Given", "<other_state> without a table"],
380
+ [:examples,
381
+ "Examples:",
382
+ "Rainbow colours",
383
+ [:table,
384
+ [:row, 9,
385
+ [:cell, "state"],
386
+ [:cell, "other_state"]
387
+ ],
388
+ [:row, 12,
389
+ [:cell, "failing"],
390
+ [:cell, "passing"]
391
+ ]
392
+ ]
393
+ ]
394
+ ]
395
+ ]
392
396
  end
393
397
  end
394
398
  end
@@ -0,0 +1,18 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+ require 'cucumber/rb_support/regexp_argument_matcher'
3
+
4
+ module Cucumber
5
+ module RbSupport
6
+ describe RegexpArgumentMatcher do
7
+ it "should create 2 arguments" do
8
+ arguments = RegexpArgumentMatcher.arguments_from(/I (\w+) (\w+)/, "I like fish")
9
+ arguments.map{|argument| [argument.val, argument.pos]}.should == [["like", 2], ["fish", 7]]
10
+ end
11
+
12
+ it "should create 2 arguments when first group is optional" do
13
+ arguments = RegexpArgumentMatcher.arguments_from(/should( not)? be flashed '([^']*?)'$/, "I should be flashed 'Login failed.'")
14
+ arguments.map{|argument| [argument.val, argument.pos]}.should == [[nil, nil], ["Login failed.", 21]]
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require 'cucumber/rb_support/rb_step_definition'
3
+ require 'cucumber/rb_support/rb_language'
4
+
5
+ module Cucumber
6
+ describe StepMatch do
7
+ before do
8
+ @rb_language = RbSupport::RbLanguage.new(nil)
9
+ end
10
+
11
+ def stepdef(regexp)
12
+ RbSupport::RbStepDefinition.new(@rb_language, regexp, lambda{})
13
+ end
14
+
15
+ it "should format groups with format string" do
16
+ m = stepdef(/I (\w+) (\d+) (\w+) this (\w+)/).step_match("I ate 1 egg this morning", nil)
17
+ m.format_args("<span>%s</span>").should == "I <span>ate</span> <span>1</span> <span>egg</span> this <span>morning</span>"
18
+ end
19
+
20
+ it "should format groups with format string when there are dupes" do
21
+ m = stepdef(/I (\w+) (\d+) (\w+) this (\w+)/).step_match("I bob 1 bo this bobs", nil)
22
+ m.format_args("<span>%s</span>").should == "I <span>bob</span> <span>1</span> <span>bo</span> this <span>bobs</span>"
23
+ end
24
+
25
+ it "should format groups with block" do
26
+ m = stepdef(/I (\w+) (\d+) (\w+) this (\w+)/).step_match("I ate 1 egg this morning", nil)
27
+ m.format_args(&lambda{|m| "<span>#{m}</span>"}).should == "I <span>ate</span> <span>1</span> <span>egg</span> this <span>morning</span>"
28
+ end
29
+
30
+ it "should format groups with proc object" do
31
+ m = stepdef(/I (\w+) (\d+) (\w+) this (\w+)/).step_match("I ate 1 egg this morning", nil)
32
+ m.format_args(lambda{|m| "<span>#{m}</span>"}).should == "I <span>ate</span> <span>1</span> <span>egg</span> this <span>morning</span>"
33
+ end
34
+
35
+ it "should format groups even when first group is optional and not matched" do
36
+ m = stepdef(/should( not)? be flashed '([^']*?)'$/).step_match("I should be flashed 'Login failed.'", nil)
37
+ m.format_args("<span>%s</span>").should == "I should be flashed '<span>Login failed.</span>'"
38
+ end
39
+ end
40
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kosmas58-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.102
4
+ version: 0.3.103
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Aslak Helles\xC3\xB8y"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-22 00:00:00 -07:00
12
+ date: 2009-09-24 00:00:00 -07:00
13
13
  default_executable: cucumber
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -463,13 +463,14 @@ files:
463
463
  - lib/cucumber/rails/world.rb
464
464
  - lib/cucumber/rake/task.rb
465
465
  - lib/cucumber/rb_support/rb_dsl.rb
466
- - lib/cucumber/rb_support/rb_group.rb
467
466
  - lib/cucumber/rb_support/rb_hook.rb
468
467
  - lib/cucumber/rb_support/rb_language.rb
469
468
  - lib/cucumber/rb_support/rb_step_definition.rb
470
469
  - lib/cucumber/rb_support/rb_transform.rb
471
470
  - lib/cucumber/rb_support/rb_world.rb
471
+ - lib/cucumber/rb_support/regexp_argument_matcher.rb
472
472
  - lib/cucumber/rspec_neuter.rb
473
+ - lib/cucumber/step_argument.rb
473
474
  - lib/cucumber/step_match.rb
474
475
  - lib/cucumber/step_mother.rb
475
476
  - lib/cucumber/version.rb
@@ -515,7 +516,9 @@ files:
515
516
  - spec/cucumber/parser/feature_parser_spec.rb
516
517
  - spec/cucumber/parser/table_parser_spec.rb
517
518
  - spec/cucumber/rb_support/rb_step_definition_spec.rb
519
+ - spec/cucumber/rb_support/regexp_argument_matcher_spec.rb
518
520
  - spec/cucumber/sell_cucumbers.feature
521
+ - spec/cucumber/step_match_spec.rb
519
522
  - spec/cucumber/step_mother_spec.rb
520
523
  - spec/cucumber/treetop_parser/empty_feature.feature
521
524
  - spec/cucumber/treetop_parser/empty_scenario.feature
@@ -1,32 +0,0 @@
1
- module Cucumber
2
- module RbSupport
3
- # A Group encapsulates data from a regexp match.
4
- # A Group instance has to attributes:
5
- #
6
- # * The value of the group
7
- # * The start index from the matched string where the group value starts
8
- #
9
- # See rb_group_spec.rb for examples
10
- #
11
- class RbGroup
12
- attr_reader :val, :start
13
-
14
- def self.groups_from(regexp, step_name)
15
- match = regexp.match(step_name)
16
- if match
17
- n = 0
18
- match.captures.map do |val|
19
- n += 1
20
- new(val, match.offset(n)[0])
21
- end
22
- else
23
- nil
24
- end
25
- end
26
-
27
- def initialize(val, start)
28
- @val, @start = val, start
29
- end
30
- end
31
- end
32
- end