cucumber 0.7.0 → 0.7.1

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.
@@ -1,3 +1,11 @@
1
+ == 0.7.1 (2010-05-03)
2
+
3
+ === Bugfixes
4
+ * Add backwards compatibility fix (with deprecation warning) for legacy 0.6.4 formatters. (Aslak Hellesøy)
5
+
6
+ === Changed Features
7
+ * Ruby and Javascript snippets will use "([^"]*)" instead of "([^\"]*)"$/ (Aslak Hellesøy)
8
+
1
9
  == 0.7.0 (2010-05-02)
2
10
 
3
11
  This release is an important milestone for Cucumber. A new parser (the gherkin gem) parses feature
@@ -1,5 +1,5 @@
1
1
  ---
2
- :patch: 0
2
+ :patch: 1
3
3
  :build:
4
4
  :major: 0
5
5
  :minor: 7
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cucumber}
8
- s.version = "0.7.0"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aslak Helles\303\270y"]
12
- s.date = %q{2010-05-02}
12
+ s.date = %q{2010-05-03}
13
13
  s.default_executable = %q{cucumber}
14
14
  s.description = %q{Behaviour Driven Development with elegance and joy}
15
15
  s.email = %q{cukes@googlegroups.com}
@@ -541,7 +541,7 @@ Gem::Specification.new do |s|
541
541
 
542
542
  (::) U P G R A D I N G (::)
543
543
 
544
- Thank you for installing cucumber-0.7.0.
544
+ Thank you for installing cucumber-0.7.1.
545
545
  Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
546
546
  for important information about this release. Happy cuking!
547
547
 
@@ -6,6 +6,6 @@ When /^I check my mailbox$/ do
6
6
  @answer = ask("What's in your mailbox? ", 3)
7
7
  end
8
8
 
9
- Then /^I should have an email containing "([^\"]*)"$/ do |content|
9
+ Then /^I should have an email containing "([^"]*)"$/ do |content|
10
10
  @answer.should =~ Regexp.new(content)
11
11
  end
@@ -4,7 +4,7 @@ Given /^I am on the Kvasir search page$/ do
4
4
  visit('http://www.kvasir.no/')
5
5
  end
6
6
 
7
- When /^I search for "([^\"]*)"$/ do |query|
7
+ When /^I search for "([^"]*)"$/ do |query|
8
8
  fill_in('q', :with => query)
9
9
  click_button('sokeKnapp')
10
10
  end
@@ -45,3 +45,48 @@ Feature: Custom Formatter
45
45
  $ JUST PRINT ME
46
46
 
47
47
  """
48
+
49
+ Scenario: Legacy pre-0.7.0 formatter
50
+ Given a standard Cucumber project directory structure
51
+ And a file named "features/f.feature" with:
52
+ """
53
+ Feature: We like old cukes
54
+ Scenario: just print me
55
+ Given this step works
56
+ """
57
+ And a file named "features/step_definitions/steps.rb" with:
58
+ """
59
+ Given /^this step works$/ do
60
+ end
61
+ """
62
+ And a file named "features/support/legacy/formator.rb" with:
63
+ """
64
+ module Legacy
65
+ class Formator
66
+ def initialize(step_mother, io, options)
67
+ @io = io
68
+ end
69
+
70
+ def feature_name(name)
71
+ @io.puts name
72
+ end
73
+
74
+ def scenario_name(keyword, name, file_colon_line, source_indent)
75
+ @io.puts "#{keyword} #{name}"
76
+ end
77
+ end
78
+ end
79
+ """
80
+ When I run cucumber features/f.feature --format Legacy::Formator
81
+ Then STDERR should be
82
+ """
83
+ Legacy::Formator is using a deprecated formatter API. The signature has changed to :feature_name(keyword, name) # no trailing : in keyword
84
+ Legacy::Formator is using a deprecated formatter API. The :scenario_name method does not receive trailing : in keyword
85
+
86
+ """
87
+ Then it should pass with
88
+ """
89
+ Feature: We like old cukes
90
+ Scenario: just print me
91
+
92
+ """
@@ -16,6 +16,7 @@ Feature: Listener Debugger
16
16
 
17
17
  """
18
18
  When I run cucumber -f debug features/sample.feature
19
+ Then STDERR should be empty
19
20
  Then it should pass with
20
21
  """
21
22
  before_features
@@ -21,11 +21,11 @@ Given /^the (.*) directory is empty$/ do |directory|
21
21
  end
22
22
  end
23
23
 
24
- Given /^a file named "([^\"]*)"$/ do |file_name|
24
+ Given /^a file named "([^"]*)"$/ do |file_name|
25
25
  create_file(file_name, '')
26
26
  end
27
27
 
28
- Given /^a file named "([^\"]*)" with:$/ do |file_name, file_content|
28
+ Given /^a file named "([^"]*)" with:$/ do |file_name, file_content|
29
29
  create_file(file_name, file_content)
30
30
  end
31
31
 
@@ -45,7 +45,7 @@ Given /^I am not running (?:.*) in the background$/ do
45
45
  # no-op
46
46
  end
47
47
 
48
- Given /^I have environment variable (\w+) set to "([^\"]*)"$/ do |variable, value|
48
+ Given /^I have environment variable (\w+) set to "([^"]*)"$/ do |variable, value|
49
49
  set_env_var(variable, value)
50
50
  end
51
51
 
@@ -84,22 +84,22 @@ Then /^the output should be$/ do |text|
84
84
  last_stdout.should == text
85
85
  end
86
86
 
87
- Then /^"([^\"]*)" should contain$/ do |file, text|
87
+ Then /^"([^"]*)" should contain$/ do |file, text|
88
88
  strip_duration(IO.read(file)).should == text
89
89
  end
90
90
 
91
- Then /^"([^\"]*)" with junit duration "([^\"]*)" should contain$/ do |actual_file, duration_replacement, text|
91
+ Then /^"([^"]*)" with junit duration "([^"]*)" should contain$/ do |actual_file, duration_replacement, text|
92
92
  actual = IO.read(actual_file)
93
93
  actual = replace_junit_duration(actual, duration_replacement)
94
94
  actual = strip_ruby186_extra_trace(actual)
95
95
  actual.should == text
96
96
  end
97
97
 
98
- Then /^"([^\"]*)" should match "([^\"]*)"$/ do |file, text|
98
+ Then /^"([^"]*)" should match "([^"]*)"$/ do |file, text|
99
99
  File.open(file, Cucumber.file_mode('r')).read.should =~ Regexp.new(text)
100
100
  end
101
101
 
102
- Then /^"([^\"]*)" should have the same contents as "([^\"]*)"$/ do |actual_file, expected_file|
102
+ Then /^"([^"]*)" should have the same contents as "([^"]*)"$/ do |actual_file, expected_file|
103
103
  actual = IO.read(actual_file)
104
104
  actual = replace_duration(actual, '0m30.005s')
105
105
  # Comment out to replace expected file. Use with care!
@@ -123,16 +123,16 @@ Then /^STDERR should be empty$/ do
123
123
  last_stderr.should == ""
124
124
  end
125
125
 
126
- Then /^"([^\"]*)" should exist$/ do |file|
126
+ Then /^"([^"]*)" should exist$/ do |file|
127
127
  File.exists?(file).should be_true
128
128
  FileUtils.rm(file)
129
129
  end
130
130
 
131
- Then /^"([^\"]*)" should not be required$/ do |file_name|
131
+ Then /^"([^"]*)" should not be required$/ do |file_name|
132
132
  last_stdout.should_not include("* #{file_name}")
133
133
  end
134
134
 
135
- Then /^"([^\"]*)" should be required$/ do |file_name|
135
+ Then /^"([^"]*)" should be required$/ do |file_name|
136
136
  last_stdout.should include("* #{file_name}")
137
137
  end
138
138
 
@@ -171,7 +171,23 @@ module Cucumber
171
171
  def send_to_all(message, *args)
172
172
  @listeners.each do |listener|
173
173
  if listener.respond_to?(message)
174
- listener.__send__(message, *args)
174
+ if listener.respond_to?(:feature_name) &&
175
+ (listener.method(:feature_name) rescue false) &&
176
+ listener.method(:feature_name).arity == 1
177
+ # Legacy
178
+ case message.to_sym
179
+ when :feature_name
180
+ warn("#{listener.class} is using a deprecated formatter API. The signature has changed to :feature_name(keyword, name) # no trailing : in keyword")
181
+ listener.feature_name("#{args[0]}: #{args[1]}")
182
+ when :scenario_name, :examples_name
183
+ warn("#{listener.class} is using a deprecated formatter API. The :scenario_name method does not receive trailing : in keyword")
184
+ listener.__send__(message, "#{args[0]}:", args[1], args[2], args[3])
185
+ else
186
+ listener.__send__(message, *args)
187
+ end
188
+ else
189
+ listener.__send__(message, *args)
190
+ end
175
191
  end
176
192
  end
177
193
  end
@@ -1,7 +1,7 @@
1
1
  module Cucumber
2
2
  module JsSupport
3
3
  module JsSnippets
4
- PARAM_PATTERN = /"([^\"]*)"/
4
+ PARAM_PATTERN = /"([^"]*)"/
5
5
  ESCAPED_PARAM_PATTERN = '"([^\\"]*)"'
6
6
 
7
7
  def snippet_text(step_keyword, step_name, multiline_arg_class)
@@ -131,7 +131,7 @@ module Cucumber
131
131
 
132
132
  private
133
133
 
134
- PARAM_PATTERN = /"([^\"]*)"/
134
+ PARAM_PATTERN = /"([^"]*)"/
135
135
  ESCAPED_PARAM_PATTERN = '"([^\\"]*)"'
136
136
 
137
137
  def create_world
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 0
9
- version: 0.7.0
8
+ - 1
9
+ version: 0.7.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Aslak Helles\xC3\xB8y"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-02 00:00:00 +02:00
17
+ date: 2010-05-03 00:00:00 +02:00
18
18
  default_executable: cucumber
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -720,7 +720,7 @@ post_install_message: |+
720
720
 
721
721
  (::) U P G R A D I N G (::)
722
722
 
723
- Thank you for installing cucumber-0.7.0.
723
+ Thank you for installing cucumber-0.7.1.
724
724
  Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
725
725
  for important information about this release. Happy cuking!
726
726