Next step in upgrading Tracks to Rails 2.2. Some highlights:

* Ran rake rails:update
* Added old actionwebservice framework
* Updated RSpec and RSpec-Rails
* Removed asset_packager plugin (not compatible, Scott no longer maintaining), and replaced with bundle_fu. See the bundle_fu README for more info.
* Hacks to UJS and ARTS plugins, which are no longer supported. Probably should move off both UJS and RJS.
* Hack to flashobject_helper plugin (upgrade to Rails 2.2-compatible version if/when it comes out.)
* Hack to skinny-spec plugin, for Rails 2.2 compatibility. Should check for official release.
* Hacks to resource_feeder plugin, for Rails 2.2 compatibility. Should check for official release (not likely) or move off it.
* Addressed some deprecation warnings. More to come.
* My mobile mime type hackery is no longer necessary with new Rails features. Yay!
* Updated environment.rb.tmpl with changes

TODO:
* Restore view specs marked pending
* Fix failing integration tests.
* Try selenium tests.
* Investigate OpenID support.
* Address deprecation warnings.
* Consider moving parts of environment.rb to initializers
* Address annoying config.gem warning about highline gem
This commit is contained in:
Luke Melia 2008-11-29 12:00:06 -05:00
parent 6d11ebd1b0
commit 35ae5fc431
394 changed files with 15184 additions and 9936 deletions

View file

@ -16,6 +16,7 @@ module Spec # :nodoc:
def matches?(response_or_text, &block)
if ActionController::TestResponse === response_or_text and
response_or_text.headers.key?('Content-Type') and
!response_or_text.headers['Content-Type'].blank? and
response_or_text.headers['Content-Type'].to_sym == :xml
@args.unshift(HTML::Document.new(response_or_text.body, false, true).root)
elsif String === response_or_text

View file

@ -0,0 +1,11 @@
module Spec
module Matchers
class Change
def evaluate_value_proc_with_ensured_evaluation_of_proxy
value = evaluate_value_proc_without_ensured_evaluation_of_proxy
ActiveRecord::Associations::AssociationProxy === value ? value.dup : value
end
alias_method_chain :evaluate_value_proc, :ensured_evaluation_of_proxy
end
end
end

View file

@ -10,10 +10,18 @@ module Spec
end
def matches?(response)
@actual = response.rendered_file
full_path(@actual) == full_path(@expected)
if response.respond_to?(:rendered_file)
@actual = response.rendered_file
else
@actual = response.rendered_template.to_s
end
return false if @actual.blank?
given_controller_path, given_file = path_and_file(@actual)
expected_controller_path, expected_file = path_and_file(@expected)
given_controller_path == expected_controller_path && given_file.match(expected_file)
end
def failure_message
"expected #{@expected.inspect}, got #{@actual.inspect}"
end
@ -27,9 +35,21 @@ module Spec
end
private
def full_path(path)
return nil if path.nil?
path.include?('/') ? path : "#{@controller.class.to_s.underscore.gsub('_controller','')}/#{path}"
def path_and_file(path)
parts = path.split('/')
file = parts.pop
controller = parts.empty? ? current_controller_path : parts.join('/')
return controller, file
end
def controller_path_from(path)
parts = path.split('/')
parts.pop
parts.join('/')
end
def current_controller_path
@controller.class.to_s.underscore.gsub(/_controller$/,'')
end
end