mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-22 18:20:12 +01:00
Added Rspec and Webrat plugins and started porting Selenium on Rails tests to Rspec Plain Text Stories driving Webrat driving Selenium.
This commit is contained in:
parent
0600756bbf
commit
0f7d6f7a1d
602 changed files with 47788 additions and 29 deletions
66
vendor/plugins/rspec/lib/spec/expectations/differs/default.rb
vendored
Normal file
66
vendor/plugins/rspec/lib/spec/expectations/differs/default.rb
vendored
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
begin
|
||||
require 'rubygems'
|
||||
require 'diff/lcs' #necessary due to loading bug on some machines - not sure why - DaC
|
||||
require 'diff/lcs/hunk'
|
||||
rescue LoadError ; raise "You must gem install diff-lcs to use diffing" ; end
|
||||
|
||||
require 'pp'
|
||||
|
||||
module Spec
|
||||
module Expectations
|
||||
module Differs
|
||||
|
||||
# TODO add some rdoc
|
||||
class Default
|
||||
def initialize(options)
|
||||
@options = options
|
||||
end
|
||||
|
||||
# This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
|
||||
def diff_as_string(data_new, data_old)
|
||||
data_old = data_old.split(/\n/).map! { |e| e.chomp }
|
||||
data_new = data_new.split(/\n/).map! { |e| e.chomp }
|
||||
output = ""
|
||||
diffs = Diff::LCS.diff(data_old, data_new)
|
||||
return output if diffs.empty?
|
||||
oldhunk = hunk = nil
|
||||
file_length_difference = 0
|
||||
diffs.each do |piece|
|
||||
begin
|
||||
hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, context_lines,
|
||||
file_length_difference)
|
||||
file_length_difference = hunk.file_length_difference
|
||||
next unless oldhunk
|
||||
# Hunks may overlap, which is why we need to be careful when our
|
||||
# diff includes lines of context. Otherwise, we might print
|
||||
# redundant lines.
|
||||
if (context_lines > 0) and hunk.overlaps?(oldhunk)
|
||||
hunk.unshift(oldhunk)
|
||||
else
|
||||
output << oldhunk.diff(format)
|
||||
end
|
||||
ensure
|
||||
oldhunk = hunk
|
||||
output << "\n"
|
||||
end
|
||||
end
|
||||
#Handle the last remaining hunk
|
||||
output << oldhunk.diff(format) << "\n"
|
||||
end
|
||||
|
||||
def diff_as_object(target,expected)
|
||||
diff_as_string(PP.pp(target,""), PP.pp(expected,""))
|
||||
end
|
||||
|
||||
protected
|
||||
def format
|
||||
@options.diff_format
|
||||
end
|
||||
|
||||
def context_lines
|
||||
@options.context_lines
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
12
vendor/plugins/rspec/lib/spec/expectations/errors.rb
vendored
Normal file
12
vendor/plugins/rspec/lib/spec/expectations/errors.rb
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
module Spec
|
||||
module Expectations
|
||||
# If Test::Unit is loaed, we'll use its error as baseclass, so that Test::Unit
|
||||
# will report unmet RSpec expectations as failures rather than errors.
|
||||
superclass = ['Test::Unit::AssertionFailedError', '::StandardError'].map do |c|
|
||||
eval(c) rescue nil
|
||||
end.compact.first
|
||||
|
||||
class ExpectationNotMetError < superclass
|
||||
end
|
||||
end
|
||||
end
|
||||
2
vendor/plugins/rspec/lib/spec/expectations/extensions.rb
vendored
Normal file
2
vendor/plugins/rspec/lib/spec/expectations/extensions.rb
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
require 'spec/expectations/extensions/object'
|
||||
require 'spec/expectations/extensions/string_and_symbol'
|
||||
63
vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb
vendored
Normal file
63
vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
module Spec
|
||||
module Expectations
|
||||
# rspec adds #should and #should_not to every Object (and,
|
||||
# implicitly, every Class).
|
||||
module ObjectExpectations
|
||||
# :call-seq:
|
||||
# should(matcher)
|
||||
# should == expected
|
||||
# should === expected
|
||||
# should =~ expected
|
||||
#
|
||||
# receiver.should(matcher)
|
||||
# => Passes if matcher.matches?(receiver)
|
||||
#
|
||||
# receiver.should == expected #any value
|
||||
# => Passes if (receiver == expected)
|
||||
#
|
||||
# receiver.should === expected #any value
|
||||
# => Passes if (receiver === expected)
|
||||
#
|
||||
# receiver.should =~ regexp
|
||||
# => Passes if (receiver =~ regexp)
|
||||
#
|
||||
# See Spec::Matchers for more information about matchers
|
||||
#
|
||||
# == Warning
|
||||
#
|
||||
# NOTE that this does NOT support receiver.should != expected.
|
||||
# Instead, use receiver.should_not == expected
|
||||
def should(matcher=:use_operator_matcher, &block)
|
||||
ExpectationMatcherHandler.handle_matcher(self, matcher, &block)
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# should_not(matcher)
|
||||
# should_not == expected
|
||||
# should_not === expected
|
||||
# should_not =~ expected
|
||||
#
|
||||
# receiver.should_not(matcher)
|
||||
# => Passes unless matcher.matches?(receiver)
|
||||
#
|
||||
# receiver.should_not == expected
|
||||
# => Passes unless (receiver == expected)
|
||||
#
|
||||
# receiver.should_not === expected
|
||||
# => Passes unless (receiver === expected)
|
||||
#
|
||||
# receiver.should_not =~ regexp
|
||||
# => Passes unless (receiver =~ regexp)
|
||||
#
|
||||
# See Spec::Matchers for more information about matchers
|
||||
def should_not(matcher=:use_operator_matcher, &block)
|
||||
NegativeExpectationMatcherHandler.handle_matcher(self, matcher, &block)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class Object
|
||||
include Spec::Expectations::ObjectExpectations
|
||||
end
|
||||
17
vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb
vendored
Normal file
17
vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
module Spec
|
||||
module Expectations
|
||||
module StringHelpers
|
||||
def starts_with?(prefix)
|
||||
to_s[0..(prefix.to_s.length - 1)] == prefix.to_s
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class String
|
||||
include Spec::Expectations::StringHelpers
|
||||
end
|
||||
|
||||
class Symbol
|
||||
include Spec::Expectations::StringHelpers
|
||||
end
|
||||
60
vendor/plugins/rspec/lib/spec/expectations/handler.rb
vendored
Normal file
60
vendor/plugins/rspec/lib/spec/expectations/handler.rb
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
module Spec
|
||||
module Expectations
|
||||
class InvalidMatcherError < ArgumentError; end
|
||||
|
||||
module MatcherHandlerHelper
|
||||
def describe_matcher(matcher)
|
||||
matcher.respond_to?(:description) ? matcher.description : "[#{matcher.class.name} does not provide a description]"
|
||||
end
|
||||
end
|
||||
|
||||
class ExpectationMatcherHandler
|
||||
class << self
|
||||
include MatcherHandlerHelper
|
||||
def handle_matcher(actual, matcher, &block)
|
||||
if :use_operator_matcher == matcher
|
||||
return Spec::Matchers::PositiveOperatorMatcher.new(actual)
|
||||
end
|
||||
|
||||
unless matcher.respond_to?(:matches?)
|
||||
raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
|
||||
end
|
||||
|
||||
match = matcher.matches?(actual, &block)
|
||||
::Spec::Matchers.generated_description = "should #{describe_matcher(matcher)}"
|
||||
Spec::Expectations.fail_with(matcher.failure_message) unless match
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class NegativeExpectationMatcherHandler
|
||||
class << self
|
||||
include MatcherHandlerHelper
|
||||
def handle_matcher(actual, matcher, &block)
|
||||
if :use_operator_matcher == matcher
|
||||
return Spec::Matchers::NegativeOperatorMatcher.new(actual)
|
||||
end
|
||||
|
||||
unless matcher.respond_to?(:matches?)
|
||||
raise InvalidMatcherError, "Expected a matcher, got #{matcher.inspect}."
|
||||
end
|
||||
|
||||
unless matcher.respond_to?(:negative_failure_message)
|
||||
Spec::Expectations.fail_with(
|
||||
<<-EOF
|
||||
Matcher does not support should_not.
|
||||
See Spec::Matchers for more information
|
||||
about matchers.
|
||||
EOF
|
||||
)
|
||||
end
|
||||
match = matcher.matches?(actual, &block)
|
||||
::Spec::Matchers.generated_description = "should not #{describe_matcher(matcher)}"
|
||||
Spec::Expectations.fail_with(matcher.negative_failure_message) if match
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue