cucumber 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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