aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/plugins/rspec-rails/lib
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/plugins/rspec-rails/lib')
-rw-r--r--vendor/plugins/rspec-rails/lib/autotest/discover.rb5
-rw-r--r--vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb76
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails.rb26
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example.rb48
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb39
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb278
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb29
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb106
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb153
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/integration_example_group.rb16
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/model_example_group.rb14
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb80
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/routing_example_group.rb13
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/routing_helpers.rb66
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb199
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb11
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb42
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_case.rb16
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb21
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb33
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb45
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_support/test_case.rb7
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb23
-rwxr-xr-xvendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb44
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb14
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb33
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb46
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb180
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb13
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/have_text.rb57
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb54
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb126
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb129
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/matchers/route_to.rb149
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb135
-rw-r--r--vendor/plugins/rspec-rails/lib/spec/rails/version.rb16
36 files changed, 0 insertions, 2342 deletions
diff --git a/vendor/plugins/rspec-rails/lib/autotest/discover.rb b/vendor/plugins/rspec-rails/lib/autotest/discover.rb
deleted file mode 100644
index d3a6fbaaf..000000000
--- a/vendor/plugins/rspec-rails/lib/autotest/discover.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-Autotest.add_discovery do
- style = []
- style << "rails" if File.exist? 'config/environment.rb'
- style
-end \ No newline at end of file
diff --git a/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb b/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb
deleted file mode 100644
index 2aa4f5f71..000000000
--- a/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-# (c) Copyright 2006 Nick Sieger <nicksieger@gmail.com>
-#
-# Permission is hereby granted, free of charge, to any person
-# obtaining a copy of this software and associated documentation files
-# (the "Software"), to deal in the Software without restriction,
-# including without limitation the rights to use, copy, modify, merge,
-# publish, distribute, sublicense, and/or sell copies of the Software,
-# and to permit persons to whom the Software is furnished to do so,
-# subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-$:.push(*Dir["vendor/rails/*/lib"])
-
-require 'active_support'
-require 'autotest/rspec'
-
-Autotest.add_hook :initialize do |at|
- %w{config/ coverage/ db/ doc/ log/ public/ script/ tmp/ vendor/rails vendor/plugins previous_failures.txt}.each do |exception|
- at.add_exception(exception)
- end
-
- at.clear_mappings
-
- at.add_mapping(%r%^(test|spec)/fixtures/(.*).yml$%) { |_, m|
- ["spec/models/#{m[2].singularize}_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[2]}/.*_spec\.rb$%)
- }
- at.add_mapping(%r%^spec/(models|controllers|routing|views|helpers|lib)/.*rb$%) { |filename, _|
- filename
- }
- at.add_mapping(%r%^app/models/(.*)\.rb$%) { |_, m|
- ["spec/models/#{m[1]}_spec.rb"]
- }
- at.add_mapping(%r%^app/views/(.*)$%) { |_, m|
- at.files_matching %r%^spec/views/#{m[1]}_spec.rb$%
- }
- at.add_mapping(%r%^app/controllers/(.*)\.rb$%) { |_, m|
- if m[1] == "application"
- at.files_matching %r%^spec/controllers/.*_spec\.rb$%
- else
- ["spec/controllers/#{m[1]}_spec.rb"]
- end
- }
- at.add_mapping(%r%^app/helpers/(.*)_helper\.rb$%) { |_, m|
- if m[1] == "application" then
- at.files_matching(%r%^spec/(views|helpers)/.*_spec\.rb$%)
- else
- ["spec/helpers/#{m[1]}_helper_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[1]}/.*_spec\.rb$%)
- end
- }
- at.add_mapping(%r%^config/routes\.rb$%) {
- at.files_matching %r%^spec/(controllers|routing|views|helpers)/.*_spec\.rb$%
- }
- at.add_mapping(%r%^config/database\.yml$%) { |_, m|
- at.files_matching %r%^spec/models/.*_spec\.rb$%
- }
- at.add_mapping(%r%^(spec/(spec_helper|shared/.*)|config/(boot|environment(s/test)?))\.rb$%) {
- at.files_matching %r%^spec/(models|controllers|routing|views|helpers)/.*_spec\.rb$%
- }
- at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
- ["spec/lib/#{m[1]}_spec.rb"]
- }
-end
-
-class Autotest::RailsRspec < Autotest::Rspec
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails.rb b/vendor/plugins/rspec-rails/lib/spec/rails.rb
deleted file mode 100644
index 2a20d70b5..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-begin
- require_dependency 'application_controller'
-rescue MissingSourceFile
- require_dependency 'application'
-end
-require 'rack/utils'
-
-require 'action_controller/test_process'
-require 'action_controller/integration'
-require 'active_support/test_case'
-require 'active_record/fixtures' if defined?(ActiveRecord::Base)
-
-require 'spec/test/unit'
-
-require 'spec/rails/matchers'
-require 'spec/rails/mocks'
-require 'spec/rails/example'
-require 'spec/rails/extensions'
-require 'spec/rails/interop/testcase'
-
-Spec::Example::ExampleGroupFactory.default(ActiveSupport::TestCase)
-
-if ActionView::Base.respond_to?(:cache_template_extensions)
- ActionView::Base.cache_template_extensions = false
-end
-
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example.rb
deleted file mode 100644
index cca44efe5..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-dir = File.dirname(__FILE__)
-
-require 'spec/rails/example/routing_helpers'
-require 'spec/rails/example/assigns_hash_proxy'
-require "spec/rails/example/render_observer"
-require "spec/rails/example/model_example_group"
-require "spec/rails/example/functional_example_group"
-require "spec/rails/example/controller_example_group"
-require "spec/rails/example/helper_example_group"
-require "spec/rails/example/view_example_group"
-require "spec/rails/example/routing_example_group"
-require "spec/rails/example/integration_example_group"
-require "spec/rails/example/cookies_proxy"
-
-module Spec
- module Rails
- # Spec::Rails::Example extends Spec::Example (RSpec's core Example module) to provide
- # Rails-specific contexts for describing Rails Models, Views, Controllers and Helpers.
- #
- # == Model Examples
- #
- # These are the equivalent of unit tests in Rails' built in testing. Ironically (for the traditional TDD'er) these are the only specs that we feel should actually interact with the database.
- #
- # See Spec::Rails::Example::ModelExampleGroup
- #
- # == Controller Examples
- #
- # These align somewhat with functional tests in rails, except that they do not actually render views (though you can force rendering of views if you prefer). Instead of setting expectations about what goes on a page, you set expectations about what templates get rendered.
- #
- # See Spec::Rails::Example::ControllerExampleGroup
- #
- # == View Examples
- #
- # This is the other half of Rails functional testing. View specs allow you to set up assigns and render
- # a template. By assigning mock model data, you can specify view behaviour with no dependency on a database
- # or your real models.
- #
- # See Spec::Rails::Example::ViewExampleGroup
- #
- # == Helper Examples
- #
- # These let you specify directly methods that live in your helpers.
- #
- # See Spec::Rails::Example::HelperExampleGroup
- module Example
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb
deleted file mode 100644
index f80743a15..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-module Spec
- module Rails
- module Example
- class AssignsHashProxy #:nodoc:
- def initialize(example_group, &block)
- @target = block.call
- @example_group = example_group
- end
-
- def [](key)
- return false if false == assigns[key] || false == assigns[key.to_s]
- assigns[key] || assigns[key.to_s] || @target.instance_variable_get("@#{key}")
- end
-
- def []=(key, val)
- @target.instance_variable_set("@#{key}", val)
- end
-
- def delete(key)
- assigns.delete(key.to_s)
- @target.instance_variable_set("@#{key}", nil)
- end
-
- def each(&block)
- assigns.each &block
- end
-
- def has_key?(key)
- assigns.key?(key.to_s)
- end
-
- protected
- def assigns
- @example_group.orig_assigns
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb
deleted file mode 100644
index e7add25ea..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb
+++ /dev/null
@@ -1,278 +0,0 @@
-module Spec
- module Rails
- module Example
- # Controller Examples live in $RAILS_ROOT/spec/controllers/.
- #
- # Controller Examples use Spec::Rails::Example::ControllerExampleGroup,
- # which supports running specs for Controllers in two modes, which
- # represent the tension between the more granular testing common in TDD
- # and the more high level testing built into rails. BDD sits somewhere
- # in between: we want to a balance between specs that are close enough
- # to the code to enable quick fault isolation and far enough away from
- # the code to enable refactoring with minimal changes to the existing
- # specs.
- #
- # == Isolation mode (default)
- #
- # No dependencies on views because none are ever rendered. The benefit
- # of this mode is that can spec the controller completely independent of
- # the view, allowing that responsibility to be handled later, or by
- # somebody else. Combined w/ separate view specs, this also provides
- # better fault isolation.
- #
- # == Integration mode
- #
- # To run in this mode, include the +integrate_views+ declaration
- # in your controller context:
- #
- # describe ThingController do
- # integrate_views
- # ...
- #
- # In this mode, controller specs are run in the same way that rails
- # functional tests run - one set of tests for both the controllers and
- # the views. The benefit of this approach is that you get wider coverage
- # from each spec. Experienced rails developers may find this an easier
- # approach to begin with, however we encourage you to explore using the
- # isolation mode and revel in its benefits.
- #
- # == Expecting Errors
- #
- # Rspec on Rails will raise errors that occur in controller actions and
- # are not rescued or handeled with rescue_from.
- #
- class ControllerExampleGroup < FunctionalExampleGroup
- class << self
-
- # Use integrate_views to instruct RSpec to render views in
- # your controller examples in Integration mode.
- #
- # describe ThingController do
- # integrate_views
- # ...
- #
- # See Spec::Rails::Example::ControllerExampleGroup for more
- # information about Integration and Isolation modes.
- def integrate_views(integrate_views = true)
- @integrate_views = integrate_views
- end
-
- def integrate_views? # :nodoc:
- @integrate_views
- end
-
- def inherited(klass) # :nodoc:
- klass.integrate_views(integrate_views?)
- klass.subject { controller }
- super
- end
-
- def set_description(*args) # :nodoc:
- super
- if described_class && described_class.ancestors.include?(ActionController::Base)
- controller_klass = if superclass.controller_class.ancestors.include?(ActionController::Base)
- superclass.controller_class
- else
- described_class
- end
- tests controller_klass
- end
- end
-
- # When you don't pass a controller to describe, like this:
- #
- # describe ThingsController do
- #
- # ... then you must provide a controller_name within the context of
- # your controller specs:
- #
- # describe "ThingController" do
- # controller_name :thing
- # ...
- def controller_name(name)
- tests "#{name}_controller".camelize.constantize
- end
- end
-
- before(:each) do
- # Some Rails apps explicitly disable ActionMailer in environment.rb
- if defined?(ActionMailer)
- @deliveries = []
- ActionMailer::Base.deliveries = @deliveries
- end
-
- unless @controller.class.ancestors.include?(ActionController::Base)
- Spec::Expectations.fail_with <<-MESSAGE
-Controller specs need to know what controller is being specified. You can
-indicate this by passing the controller to describe():
-
- describe MyController do
-
-or by declaring the controller's name
-
- describe "a MyController" do
- controller_name :my #invokes the MyController
-end
-MESSAGE
- end
- @controller.extend ControllerInstanceMethods
- @controller.integrate_views! if integrate_views?
- @controller.session = session
- end
-
- attr_reader :response, :request, :controller
-
- def integrate_views?
- @integrate_views || self.class.integrate_views?
- end
-
- # Bypasses any error rescues defined with rescue_from. Useful
- # in cases in which you want to specify errors coming out of
- # actions that might be caught by a rescue_from clause that is
- # specified separately.
- #
- # Note that this will override the effect of rescue_action_in_public
- def bypass_rescue
- if ::Rails::VERSION::STRING >= '2.2'
- def controller.rescue_action(exception)
- raise exception
- end
- else
- def controller.rescue_action_with_handler(exception)
- raise exception
- end
- end
- end
-
- protected
-
- def _assigns_hash_proxy
- @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template}
- end
-
- private
-
- module TemplateIsolationExtensions
- def file_exists?(ignore); true; end
-
- def render_file(*args)
- @first_render ||= args[0] unless args[0] =~ /^layouts/
- end
-
- # Rails 2.2
- def _pick_template(*args)
- @_first_render ||= args[0] unless args[0] =~ /^layouts/
- PickedTemplate.new
- end
-
- def __action_exists?(params)
- controller.respond_to? params[:action]
- end
-
- def render(*args)
- if ::Rails::VERSION::STRING >= "2.1"
- return super unless __action_exists?(params)
- end
- if file = args.last[:file].instance_eval{@template_path}
- record_render :file => file
- elsif args.last[:inline]
- super
- elsif @_rendered
- record_render(args[0])
- else
- super
- end
- end
-
- private
-
- def record_render(opts)
- (@_rendered[:template] ||= opts[:file]) if opts[:file]
- (@_rendered[:partials][opts[:partial]] += 1) if opts[:partial]
- end
-
- # Returned by _pick_template when running controller examples in isolation mode.
- class PickedTemplate
- # Do nothing when running controller examples in isolation mode.
- def render_template(*ignore_args); end
- # Do nothing when running controller examples in isolation mode.
- def render_partial(*ignore_args); end
- end
- end
-
- module ControllerInstanceMethods # :nodoc:
- include Spec::Rails::Example::RenderObserver
-
- # === render(options = nil, extra_options={}, &block)
- #
- # This gets added to the controller's singleton meta class,
- # allowing Controller Examples to run in two modes, freely switching
- # from example group to example group.
- def render(options=nil, extra_options={}, &block)
- unless block_given?
- unless integrate_views?
- @template.extend TemplateIsolationExtensions
- end
- end
-
- if matching_message_expectation_exists(options)
- render_proxy.render(options, &block)
- @performed_render = true
- else
- if matching_stub_exists(options)
- @performed_render = true
- else
- if ::Rails::VERSION::STRING > '2.1'
- super(options, extra_options, &block)
- else
- super(options, &block)
- end
- end
- end
- end
-
- # Rails 2.3
- def default_template(action_name = self.action_name)
- if integrate_views?
- super
- else
- begin
- super
- rescue ActionView::MissingTemplate
- "#{self.class.name.sub(/Controller$/,'').underscore}/#{action_name}"
- end
- end
- end
-
- def response(&block)
- # NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
- @update = block
- super
- end
-
- def integrate_views!
- @integrate_views = true
- end
-
- private
-
- def integrate_views?
- @integrate_views
- end
-
- def matching_message_expectation_exists(options)
- render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options)
- end
-
- def matching_stub_exists(options)
- render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options)
- end
-
- end
-
- Spec::Example::ExampleGroupFactory.register(:controller, self)
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb
deleted file mode 100644
index ffd57fb2f..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-require 'action_controller/cookies'
-
-module Spec
- module Rails
- module Example
- class CookiesProxy
- def initialize(example)
- @example = example
- end
-
- def[]=(name, value)
- if ::Rails::VERSION::STRING >= '2.3'
- @example.request.cookies[name.to_s] = value
- else
- @example.request.cookies[name.to_s] = CGI::Cookie.new(name.to_s, value)
- end
- end
-
- def [](name)
- @example.response.cookies[name.to_s]
- end
-
- def delete(name)
- @example.response.cookies.delete(name.to_s)
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb
deleted file mode 100644
index 9d8962712..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb
+++ /dev/null
@@ -1,106 +0,0 @@
-require 'action_controller/test_case'
-
-module Spec
- module Rails
- module Example
- class FunctionalExampleGroup < ActionController::TestCase
- def setup
- # no-op to override AC::TC's setup w/ conflicts with the before(:each) below
- end
-
- attr_reader :request, :response
-
- # The params hash accessed within a view or helper. Use this before
- # rendering a view or calling a helper to provide data used by the
- # view or helper.
- #
- # == Examples
- # # in a view spec
- # params[:name] = "David"
- # render
- # response.should have_tag("div.name","David")
- #
- # # in a helper spec
- # params[:first_name] = "David"
- # params[:last_name] = "Chelimsky"
- # helper.full_name.should == "David Chelimsky"
- def params
- request.parameters
- end
-
- # Provides access to the flash hash. Use this after rendering a
- # view, calling a helper or calling a controller action.
- #
- # == Examples
- # post :create
- # flash[:notice].should == "Success!"
- def flash
- @controller.__send__ :flash
- end
-
- # Provides acces to the session hash. Use this before or after
- # rendering a view, calling a helper or calling a controller action.
- def session
- request.session
- end
-
- # Overrides the <tt>cookies()</tt> method in
- # ActionController::TestResponseBehaviour, returning a proxy that
- # accesses the requests cookies when setting a cookie and the
- # responses cookies when reading one. This allows you to set and read
- # cookies in examples using the same API with which you set and read
- # them in controllers.
- #
- # == Examples (Rails 2.0 > 2.2)
- #
- # cookies[:user_id] = {:value => '1234', :expires => 1.minute.ago}
- # get :index
- # response.should be_redirect
- #
- # == Examples (Rails 2.3)
- #
- # Rails 2.3 changes the way cookies are made available to functional
- # tests (and therefore rspec controller specs), only making single
- # values available with no access to other aspects of the cookie. This
- # is backwards-incompatible, so you have to change your examples to
- # look like this:
- #
- # cookies[:foo] = 'bar'
- # get :index
- # cookies[:foo].should == 'bar'
- def cookies
- @cookies ||= Spec::Rails::Example::CookiesProxy.new(self)
- end
-
- alias_method :orig_assigns, :assigns
-
- # :call-seq:
- # assigns()
- #
- # Hash of instance variables to values that are made available to
- # views. == Examples
- #
- # #in thing_controller.rb
- # def new
- # @thing = Thing.new
- # end
- #
- # #in thing_controller_spec
- # get 'new'
- # assigns[:registration].should == Thing.new
- #--
- # NOTE - Even though docs only use assigns[:key] format, this supports
- # assigns(:key) for backwards compatibility.
- #++
- def assigns(key = nil)
- if key.nil?
- _assigns_hash_proxy
- else
- _assigns_hash_proxy[key]
- end
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb
deleted file mode 100644
index 2a86aa0d2..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb
+++ /dev/null
@@ -1,153 +0,0 @@
-module Spec
- module Rails
- module Example
- class HelperExampleGroupController < ApplicationController #:nodoc:
- attr_accessor :request, :url
- end
-
- # Helper Specs live in $RAILS_ROOT/spec/helpers/.
- #
- # Helper Specs use Spec::Rails::Example::HelperExampleGroup, which allows you to
- # include your Helper directly in the context and write specs directly
- # against its methods.
- #
- # HelperExampleGroup also includes the standard lot of ActionView::Helpers in case your
- # helpers rely on any of those.
- #
- # == Example
- #
- # module ThingHelper
- # def number_of_things
- # Thing.count
- # end
- # end
- #
- # describe "ThingHelper example_group" do
- # include ThingHelper
- # it "should tell you the number of things" do
- # Thing.should_receive(:count).and_return(37)
- # number_of_things.should == 37
- # end
- # end
- class HelperExampleGroup < FunctionalExampleGroup
- tests HelperExampleGroupController
- attr_accessor :output_buffer
-
- class HelperObject < ActionView::Base
- def initialize(*args)
- @template = self
- super
- end
- def protect_against_forgery?
- false
- end
-
- attr_writer :session, :request, :flash, :params, :controller
-
- private
- attr_reader :session, :request, :flash, :params, :controller
- end
-
- class << self
- # The helper name....
- def helper_name(name=nil)
- @helper_being_described = "#{name}_helper".camelize.constantize
- send :include, @helper_being_described
- end
-
- def helper
- @helper_object ||= returning HelperObject.new do |helper_object|
- if @helper_being_described.nil?
- if described_type.class == Module
- helper_object.extend described_type
- end
- else
- helper_object.extend @helper_being_described
- end
- end
- end
- end
-
- # Returns an instance of ActionView::Base with the helper being spec'd
- # included.
- #
- # == Example
- #
- # describe PersonHelper do
- # it "should write a link to person with the name" do
- # assigns[:person] = mock_model(Person, :full_name => "Full Name", :id => 37, :new_record? => false)
- # helper.link_to_person.should == %{<a href="/people/37">Full Name</a>}
- # end
- # end
- #
- # module PersonHelper
- # def link_to_person
- # link_to person.full_name, url_for(person)
- # end
- # end
- #
- def helper
- self.class.helper
- end
-
- def orig_assigns
- helper.assigns
- end
-
- # Reverse the load order so that custom helpers which are defined last
- # are also loaded last.
- ActionView::Base.included_modules.reverse.each do |mod|
- include mod if mod.parents.include?(ActionView::Helpers)
- end
-
- before(:each) do
- @controller.request = @request
- @controller.url = ActionController::UrlRewriter.new @request, {} # url_for
-
- @flash = ActionController::Flash::FlashHash.new
- session['flash'] = @flash
-
- @output_buffer = ""
- @template = helper
- ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
-
- helper.session = session
- helper.request = @request
- helper.flash = flash
- helper.params = params
- helper.controller = @controller
- end
-
- def flash
- @flash
- end
-
- def eval_erb(text)
- erb_args = [text]
- if helper.respond_to?(:output_buffer)
- erb_args += [nil, nil, '@output_buffer']
- end
-
- helper.instance_eval do
- ERB.new(*erb_args).result(binding)
- end
- end
-
- # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance.
- # When that is done, remove this method
- def protect_against_forgery?
- false
- end
-
- Spec::Example::ExampleGroupFactory.register(:helper, self)
-
- protected
-
- def _assigns_hash_proxy
- @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {helper}
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/integration_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/integration_example_group.rb
deleted file mode 100644
index 7143f05f6..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/integration_example_group.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-class ActionController::IntegrationTest
- alias_method :orig_initialize, :initialize
- def initialize(*args)
- super
- end
-end
-
-module Spec
- module Rails
- module Example
- class IntegrationExampleGroup < ActionController::IntegrationTest
- Spec::Example::ExampleGroupFactory.register(:integration, self)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/model_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/model_example_group.rb
deleted file mode 100644
index 465ed0a3f..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/model_example_group.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module Spec
- module Rails
- module Example
- # Model examples live in $RAILS_ROOT/spec/models/.
- #
- # Model examples use Spec::Rails::Example::ModelExampleGroup, which
- # provides support for fixtures and some custom expectations via extensions
- # to ActiveRecord::Base.
- class ModelExampleGroup < ActiveSupport::TestCase
- Spec::Example::ExampleGroupFactory.register(:model, self)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb
deleted file mode 100644
index b70b3490e..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb
+++ /dev/null
@@ -1,80 +0,0 @@
-require 'spec/mocks/framework'
-
-module Spec
- module Rails
- module Example
- # Extends the #should_receive, #should_not_receive and #stub! methods in rspec's
- # mocking framework to handle #render calls to controller in controller examples
- # and template and view examples
- module RenderObserver
-
- def verify_rendered # :nodoc:
- render_proxy.rspec_verify
- end
-
- def unregister_verify_after_each #:nodoc:
- proc = verify_rendered_proc
- Spec::Example::ExampleGroup.remove_after(:each, &proc)
- end
-
- def should_receive(*args)
- if args[0] == :render
- register_verify_after_each
- render_proxy.should_receive(:render, :expected_from => caller(1)[0])
- else
- super
- end
- end
-
- def should_not_receive(*args)
- if args[0] == :render
- register_verify_after_each
- render_proxy.should_not_receive(:render)
- else
- super
- end
- end
-
- def stub(*args)
- if args[0] == :render
- register_verify_after_each
- render_proxy.stub(args.first, :expected_from => caller(1)[0])
- else
- super
- end
- end
-
- # FIXME - for some reason, neither alias nor alias_method are working
- # as expected in the else branch, so this is a duplicate of stub()
- # above. Could delegate, but then we'd run into craziness handling
- # :expected_from. This will have to do for the moment.
- def stub!(*args)
- if args[0] == :render
- register_verify_after_each
- render_proxy.stub!(args.first, :expected_from => caller(1)[0])
- else
- super
- end
- end
-
- def verify_rendered_proc #:nodoc:
- template = self
- @verify_rendered_proc ||= Proc.new do
- template.verify_rendered
- template.unregister_verify_after_each
- end
- end
-
- def register_verify_after_each #:nodoc:
- proc = verify_rendered_proc
- Spec::Example::ExampleGroup.after(:each, &proc)
- end
-
- def render_proxy #:nodoc:
- @render_proxy ||= Spec::Mocks::Mock.new("render_proxy")
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_example_group.rb
deleted file mode 100644
index 635c1d361..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_example_group.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-module Spec
- module Rails
- module Example
-
- class RoutingExampleGroup < ActionController::TestCase
- tests Class.new(ActionController::Base)
-
- Spec::Example::ExampleGroupFactory.register(:routing, self)
- end
-
- end
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_helpers.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_helpers.rb
deleted file mode 100644
index 351f49540..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_helpers.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-require 'rack/utils'
-
-module Spec
- module Rails
- module Example
- module RoutingHelpers
-
- class RouteFor
- def initialize(example, options)
- @example, @options = example, options
- end
-
- def ==(expected)
- if Hash === expected
- path, querystring = expected[:path].split('?')
- path_string = path
- path = expected.merge(:path => path)
- else
- path, querystring = expected.split('?')
- path_string = path
- path = { :path => path, :method => :get }
- end
- params = querystring.blank? ? {} : Rack::Utils.parse_query(querystring).symbolize_keys!
- begin
- @example.assert_routing(path, @options, {}, params)
- true
- rescue ActionController::RoutingError, ::Test::Unit::AssertionFailedError => e
- raise e.class, "#{e}\nIf you're expecting this failure, we suggest {:#{path[:method]}=>\"#{path[:path]}\"}.should_not be_routable"
- end
- end
- end
- # Uses ActionController::Routing::Routes to generate
- # the correct route for a given set of options.
- # == Examples
- # route_for(:controller => 'registrations', :action => 'edit', :id => '1')
- # => '/registrations/1/edit'
- # route_for(:controller => 'registrations', :action => 'create')
- # => {:path => "/registrations", :method => :post}
- def route_for(options)
- RouteFor.new(self, options)
- end
-
- # Uses ActionController::Routing::Routes to parse
- # an incoming path so the parameters it generates can be checked
- #
- # Note that this method is obsoleted by the route_to matcher.
- # == Example
- # params_from(:get, '/registrations/1/edit')
- # => :controller => 'registrations', :action => 'edit', :id => '1'
- def params_from(method, path)
- ensure_that_routes_are_loaded
- path, querystring = path.split('?')
- params = ActionController::Routing::Routes.recognize_path(path, :method => method)
- querystring.blank? ? params : params.merge(Rack::Utils.parse_query(querystring).symbolize_keys!)
- end
-
- private
-
- def ensure_that_routes_are_loaded
- ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb b/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb
deleted file mode 100644
index 5bfd60d65..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb
+++ /dev/null
@@ -1,199 +0,0 @@
-module Spec
- module Rails
- module Example
- class ViewExampleGroupController < ApplicationController #:nodoc:
- include Spec::Rails::Example::RenderObserver
- attr_reader :template
-
- def add_helper_for(template_path)
- add_helper(template_path.split('/')[0])
- end
-
- def add_helper(name)
- begin
- helper_module = "#{name}_helper".camelize.constantize
- rescue
- return
- end
- (class << template; self; end).class_eval do
- include helper_module
- end
- end
-
- def forget_variables_added_to_assigns
- end
- end
-
- # View Examples live in $RAILS_ROOT/spec/views/.
- #
- # View Specs use Spec::Rails::Example::ViewExampleGroup,
- # which provides access to views without invoking any of your controllers.
- # See Spec::Rails::Expectations::Matchers for information about specific
- # expectations that you can set on views.
- #
- # == Example
- #
- # describe "login/login" do
- # before do
- # render 'login/login'
- # end
- #
- # it "should display login form" do
- # response.should have_tag("form[action=/login]") do
- # with_tag("input[type=text][name=email]")
- # with_tag("input[type=password][name=password]")
- # with_tag("input[type=submit][value=Login]")
- # end
- # end
- # end
- class ViewExampleGroup < FunctionalExampleGroup
- if ActionView::Base.respond_to?(:load_helpers) # Rails 2.0.x
- ActionView::Helpers.constants.each do |name|
- const = ActionView::Helpers.const_get(name)
- include const if name.include?("Helper") && Module === const
- end
- elsif ActionView::Base.respond_to?(:helper_modules) # Rails 2.1.x
- ActionView::Base.helper_modules.each do |helper_module|
- include helper_module
- end
- else # Rails 2.2.x
- include ActionView::Helpers
- end
-
- tests ViewExampleGroupController
- class << self
- def inherited(klass) # :nodoc:
- klass.subject { template }
- super
- end
- end
-
- before {ensure_that_flash_and_session_work_properly}
- after {ensure_that_base_view_path_is_not_set_across_example_groups}
-
- def ensure_that_flash_and_session_work_properly #:nodoc:
- @controller.class.__send__ :public, :flash
- @controller.__send__ :initialize_template_class, @response
- @controller.__send__ :assign_shortcuts, @request, @response
- @controller.__send__ :initialize_current_url
- @session = @controller.session
- end
-
- def ensure_that_base_view_path_is_not_set_across_example_groups #:nodoc:
- ActionView::Base.base_view_path = nil
- end
-
- def set_base_view_path(options) #:nodoc:
- ActionView::Base.base_view_path = base_view_path(options)
- end
-
- def base_view_path(options) #:nodoc:
- "/#{derived_controller_name(options)}/"
- end
-
- def derived_controller_name(options) #:nodoc:
- parts = subject_of_render(options).split('/').reject { |part| part.empty? }
- "#{parts[0..-2].join('/')}"
- end
-
- def derived_action_name(options) #:nodoc:
- parts = subject_of_render(options).split('/').reject { |part| part.empty? }
- "#{parts.last}".split('.').first
- end
-
- def subject_of_render(options) #:nodoc:
- [:template, :partial, :file].each do |render_type|
- if options.has_key?(render_type)
- return options[render_type]
- end
- end
- return ""
- end
-
- def add_helpers(options) #:nodoc:
- @controller.add_helper("application")
- @controller.add_helper(derived_controller_name(options))
- @controller.add_helper(options[:helper]) if options[:helper]
- options[:helpers].each { |helper| @controller.add_helper(helper) } if options[:helpers]
- end
-
- # Renders a template for a View Spec, which then provides access to the result
- # through the +response+. Also supports render with :inline, which you can
- # use to spec custom form builders, helpers, etc, in the context of a view.
- #
- # == Examples
- #
- # render('/people/list')
- # render('/people/list', :helper => MyHelper)
- # render('/people/list', :helpers => [MyHelper, MyOtherHelper])
- # render(:partial => '/people/_address')
- # render(:inline => "<% custom_helper 'argument', 'another argument' %>")
- #
- # See Spec::Rails::Example::ViewExampleGroup for more information.
- def render(*args)
- options = Hash === args.last ? args.pop : {}
-
- if args.empty?
- unless [:partial, :inline, :file, :template, :xml, :json, :update].any? {|k| options.has_key? k}
- args << self.class.description_parts.first
- end
- end
-
- options[:template] = args.first.to_s.sub(/^\//,'') unless args.empty?
-
- set_base_view_path(options)
- add_helpers(options)
-
- assigns[:action_name] = @action_name
-
- @request.path_parameters = @request.path_parameters.merge(
- :controller => derived_controller_name(options),
- :action => derived_action_name(options)
- ).merge(options[:path_parameters] || {})
-
- defaults = { :layout => false }
- options = defaults.merge options
-
- @controller.__send__(:params).reverse_merge! @request.parameters
-
- @controller.class.instance_eval %{
- def controller_path
- "#{derived_controller_name(options)}"
- end
-
- def controller_name
- "#{derived_controller_name(options).split('/').last}"
- end
- }
-
- @controller.__send__ :forget_variables_added_to_assigns
- @controller.__send__ :render, options
- @controller.__send__ :process_cleanup
- end
-
- # This provides the template. Use this to set mock
- # expectations for dealing with partials
- #
- # == Example
- #
- # describe "/person/new" do
- # it "should use the form partial" do
- # template.should_receive(:render).with(:partial => 'form')
- # render "/person/new"
- # end
- # end
- def template
- @controller.template
- end
-
- Spec::Example::ExampleGroupFactory.register(:view, self)
-
- protected
- def _assigns_hash_proxy
- @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template}
- end
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb
deleted file mode 100644
index 989dfd5da..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require 'spec'
-
-require 'spec/rails/extensions/spec/runner/configuration'
-require 'spec/rails/extensions/spec/matchers/have'
-
-require 'spec/rails/extensions/active_support/test_case'
-require 'spec/rails/extensions/active_record/base'
-require 'spec/rails/extensions/action_controller/rescue'
-require 'spec/rails/extensions/action_controller/test_case'
-require 'spec/rails/extensions/action_controller/test_response'
-require 'spec/rails/extensions/action_view/base'
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb
deleted file mode 100644
index 9d1ec6ae6..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-module ActionController
- module Rescue
- def use_rails_error_handling!
- Kernel.warn <<-WARNING
-DEPRECATION NOTICE: controller.use_rails_error_handling! is
-deprecated and will be removed from a future version of
-rspec-rails.
-
-Use rescue_action_in_public!, which is defined directly in
-rails' testing framework, instead.
-WARNING
- if ::Rails::VERSION::STRING =~ /^2\.0/
- @use_rails_error_handling = true
- else
- # anything but 0.0.0.0 - borrowed from rails own rescue_action_in_public!
- request.remote_addr = '208.77.188.166'
- end
- end
-
- def use_rails_error_handling?
- @use_rails_error_handling ||= false
- end
-
- protected
-
- if ::Rails::VERSION::STRING =~ /^2\.0/
- def rescue_action_in_public?
- request.respond_to?(:rescue_action_in_public?) and request.rescue_action_in_public?
- end
-
- def rescue_action_with_handler_with_fast_errors(exception)
- if (use_rails_error_handling? || rescue_action_in_public?) & !handler_for_rescue(exception)
- rescue_action_in_public(exception)
- else
- rescue_action_with_handler_without_fast_errors(exception)
- end
- end
- alias_method_chain :rescue_action_with_handler, :fast_errors
- end
-
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_case.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_case.rb
deleted file mode 100644
index c0433403c..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_case.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-module ActionController
- class TestCase
- include ::Spec::Rails::Example::RoutingHelpers
-
- if ::Rails::VERSION::STRING =~ /2\.0/
- # Introduced in Rails 2.1, but we need it for 2.0
- def rescue_action_in_public!
- # See rescue.rb in this same directory
- def request.rescue_action_in_public?
- true
- end
- end
-
- end
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb
deleted file mode 100644
index 5ea4a814b..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-module ActionController #:nodoc:
- class TestResponse #:nodoc:
- attr_writer :controller_path
-
- def capture(name)
- template.instance_variable_get "@content_for_#{name.to_s}"
- end
-
- if ::Rails::VERSION::STRING < "2.3"
- def [](name)
- Kernel.warn <<-WARNING
-DEPRECATION NOTICE: [](name) as an alias for capture(name) (TestResponse
-extension in rspec-rails) is deprecated and will not be defined by rspec-rails
-when working with rails >= 2.3.0. It will also be removed entirely from
-a future version of rspec-rails.
-WARNING
- capture(name)
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb
deleted file mode 100644
index 54d13886d..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-module ActionView #:nodoc:
- class Base #:nodoc:
- include Spec::Rails::Example::RenderObserver
- cattr_accessor :base_view_path
-
- def render_partial_with_base_view_path_handling(partial_path, local_assigns = nil, deprecated_local_assigns = nil) #:nodoc:
- if partial_path.is_a?(String)
- unless partial_path.include?("/")
- unless self.class.base_view_path.nil?
- partial_path = "#{self.class.base_view_path}/#{partial_path}"
- end
- end
- end
- begin
- render_partial_without_base_view_path_handling(partial_path, local_assigns, deprecated_local_assigns)
- rescue ArgumentError # edge rails > 2.1 changed render_partial to accept only one arg
- render_partial_without_base_view_path_handling(partial_path)
- end
- end
- alias_method_chain :render_partial, :base_view_path_handling
-
- def render_with_mock_proxy(options = {}, old_local_assigns = {}, &block)
- if render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options)
- render_proxy.render(options)
- else
- unless render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options)
- render_without_mock_proxy(options, old_local_assigns, &block)
- end
- end
- end
- alias_method_chain :render, :mock_proxy
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb
deleted file mode 100644
index 10611e315..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-if defined?(ActiveRecord::Base)
- module Spec
- module Rails
- module Extensions
- module ActiveRecord
- module ClassMethods
- # :call-seq:
- # ModelClass.should have(:no).records
- # ModelClass.should have(1).record
- # ModelClass.should have(n).records
- #
- # Extension to enhance <tt>should have</tt> on AR Model classes
- def records
- find(:all)
- end
- alias :record :records
- end
-
- module InstanceMethods
- # :call-seq:
- # model.should have(:no).errors_on(:attribute)
- # model.should have(1).error_on(:attribute)
- # model.should have(n).errors_on(:attribute)
- #
- # Extension to enhance <tt>should have</tt> on AR Model instances.
- # Calls model.valid? in order to prepare the object's errors
- # object.
- def errors_on(attribute)
- self.valid?
- [self.errors.on(attribute)].flatten.compact
- end
- alias :error_on :errors_on
- end
- end
- end
- end
- end
-
- module ActiveRecord #:nodoc:
- class Base
- extend Spec::Rails::Extensions::ActiveRecord::ClassMethods
- include Spec::Rails::Extensions::ActiveRecord::InstanceMethods
- end
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_support/test_case.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_support/test_case.rb
deleted file mode 100644
index b01953fb2..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_support/test_case.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-module ActiveSupport
- class TestCase
- include ::Spec::Rails::Matchers
- include ::Spec::Rails::Mocks
- end
-end
-
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb
deleted file mode 100644
index 53924c49a..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'spec/matchers/have'
-
-module Spec #:nodoc:
- module Matchers #:nodoc:
- class Have #:nodoc:
-
- def failure_message_for_should_with_errors_on_extensions
- return "expected #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}, got #{@actual}" if @collection_name == :errors_on
- return "expected #{relativities[@relativity]}#{@expected} error on :#{@args[0]}, got #{@actual}" if @collection_name == :error_on
- return failure_message_for_should_without_errors_on_extensions
- end
- alias_method_chain :failure_message_for_should, :errors_on_extensions
-
- def description_with_errors_on_extensions
- return "have #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}" if @collection_name == :errors_on
- return "have #{relativities[@relativity]}#{@expected} error on :#{@args[0]}" if @collection_name == :error_on
- return description_without_errors_on_extensions
- end
- alias_method_chain :description, :errors_on_extensions
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb b/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb
deleted file mode 100755
index 56650e8e4..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-require 'spec/runner/configuration'
-require 'test_help'
-
-if defined?(ActiveRecord::Base)
- module Spec
- module Runner
- class Configuration
-
- def initialize
- super
- self.fixture_path = RAILS_ROOT + '/spec/fixtures'
- end
-
- def use_transactional_fixtures
- ActiveSupport::TestCase.use_transactional_fixtures
- end
- def use_transactional_fixtures=(value)
- ActiveSupport::TestCase.use_transactional_fixtures = value
- end
-
- def use_instantiated_fixtures
- ActiveSupport::TestCase.use_instantiated_fixtures
- end
- def use_instantiated_fixtures=(value)
- ActiveSupport::TestCase.use_instantiated_fixtures = value
- end
-
- def fixture_path
- ActiveSupport::TestCase.fixture_path
- end
- def fixture_path=(path)
- ActiveSupport::TestCase.fixture_path = path
- end
-
- def global_fixtures
- ActiveSupport::TestCase.fixture_table_names
- end
- def global_fixtures=(fixtures)
- ActiveSupport::TestCase.fixtures(*fixtures)
- end
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb b/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb
deleted file mode 100644
index 53cb9920c..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module Test
- module Unit
- class TestCase
- # Edge rails (r8664) introduces class-wide setup & teardown callbacks for Test::Unit::TestCase.
- # Make sure these still get run when running TestCases under rspec:
- prepend_before(:each) do
- run_callbacks :setup if respond_to?(:run_callbacks)
- end
- append_after(:each) do
- run_callbacks :teardown if respond_to?(:run_callbacks)
- end
- end
- end
-end \ No newline at end of file
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb
deleted file mode 100644
index 4ecf0a914..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-dir = File.dirname(__FILE__)
-require 'spec/rails/matchers/ar_be_valid'
-require 'spec/rails/matchers/assert_select'
-require 'spec/rails/matchers/change'
-require 'spec/rails/matchers/have_text'
-require 'spec/rails/matchers/include_text'
-require 'spec/rails/matchers/redirect_to'
-require 'spec/rails/matchers/route_to'
-require 'spec/rails/matchers/render_template'
-
-module Spec
- module Rails
- # Spec::Rails::Expectations::Matchers provides several expectation matchers
- # intended to work with Rails components like models and responses. For example:
- #
- # response.should redirect_to("some/url") #redirect_to(url) is the matcher.
- #
- # In addition to those you see below, the arbitrary predicate feature of RSpec
- # makes the following available as well:
- #
- # response.should be_success #passes if response.success?
- # response.should be_redirect #passes if response.redirect?
- #
- # Note that many of these matchers are part of a wrapper of <tt>assert_select</tt>, so
- # the documentation comes straight from that with some slight modifications.
- # <tt>assert_select</tt> is a Test::Unit extension originally contributed to the
- # Rails community as a plugin by Assaf Arkin and eventually shipped as part of Rails.
- #
- # For more info on <tt>assert_select</tt>, see the relevant Rails documentation.
- module Matchers
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb
deleted file mode 100644
index 0f1ed0d70..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-if defined?(ActiveRecord::Base)
- module Spec
- module Rails
- module Matchers
-
- class ArBeValid #:nodoc:
-
- def initialize
- @matcher = Spec::Matchers::Be.new :be_valid
- @matcher.__send__ :handling_predicate!
- end
-
- def matches?(actual)
- @actual = actual
- @matcher.matches? @actual
- end
-
- def failure_message_for_should
- if @actual.respond_to?(:errors) &&
- ActiveRecord::Errors === @actual.errors
- "Expected #{@actual.inspect} to be valid, but it was not\nErrors: " + @actual.errors.full_messages.join(", ")
- else
- @matcher.failure_message_for_should
- end
- end
-
- def failure_message_for_should_not
- @matcher.failure_message_for_should_not
- end
-
- def description
- "be valid"
- end
- end
-
- # :call-seq:
- # response.should be_valid
- # response.should_not be_valid
- def be_valid
- ArBeValid.new
- end
-
- end
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb
deleted file mode 100644
index db9387e50..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb
+++ /dev/null
@@ -1,180 +0,0 @@
-# This is a wrapper of assert_select for rspec.
-
-module Spec # :nodoc:
- module Rails
- module Matchers
-
- class AssertSelect #:nodoc:
- attr_reader :options
-
- def initialize(selector_assertion, spec_scope, *args, &block)
- @args, @options = args_and_options(args)
- @spec_scope = spec_scope
- @selector_assertion = selector_assertion
- @block = block
- end
-
- def matches?(response_or_text, &block)
- @block = block if block
-
- if doc = doc_from(response_or_text)
- @args.unshift(doc)
- end
-
- begin
- @spec_scope.__send__(@selector_assertion, *@args, &@block)
- true
- rescue ::Test::Unit::AssertionFailedError => @error
- false
- end
- end
-
- def failure_message_for_should; @error.message; end
- def failure_message_for_should_not; "should not #{description}, but did"; end
-
- def description
- {
- :assert_select => "have tag#{format_args(*@args)}",
- :assert_select_email => "send email#{format_args(*@args)}",
- }[@selector_assertion]
- end
-
- private
-
- module TestResponseOrString
- def test_response?
- ActionController::TestResponse === self and
- !self.headers['Content-Type'].blank? and
- self.headers['Content-Type'].to_sym == :xml
- end
-
- def string?
- String === self
- end
- end
-
- def doc_from(response_or_text)
- response_or_text.extend TestResponseOrString
- if response_or_text.test_response?
- HTML::Document.new(response_or_text.body, @options[:strict], @options[:xml]).root
- elsif response_or_text.string?
- HTML::Document.new(response_or_text, @options[:strict], @options[:xml]).root
- end
- end
-
- def format_args(*args)
- args.empty? ? "" : "(#{arg_list(*args)})"
- end
-
- def arg_list(*args)
- args.map do |arg|
- arg.respond_to?(:description) ? arg.description : arg.inspect
- end.join(", ")
- end
-
- def args_and_options(args)
- opts = {:xml => false, :strict => false}
- if args.last.is_a?(::Hash)
- opts[:strict] = args.last.delete(:strict) unless args.last[:strict].nil?
- opts[:xml] = args.last.delete(:xml) unless args.last[:xml].nil?
- args.pop if args.last.empty?
- end
- return [args, opts]
- end
-
- end
-
- # :call-seq:
- # response.should have_tag(*args, &block)
- # string.should have_tag(*args, &block)
- #
- # wrapper for assert_select with additional support for using
- # css selectors to set expectation on Strings. Use this in
- # helper specs, for example, to set expectations on the results
- # of helper methods. Also allow specification of how the
- # response is parsed using the options :xml and :strict options.
- # By default, these options are set to false.
- #
- # == Examples
- #
- # # in a controller spec
- # response.should have_tag("div", "some text")
- #
- # # to force xml and/or strict parsing of the response
- # response.should have_tag("div", "some text", :xml => true)
- # response.should have_tag("div", "some text", :strict => true)
- # response.should have_tag("div", "some text", :xml => true, :strict => false)
- #
- # # in a helper spec (person_address_tag is a method in the helper)
- # person_address_tag.should have_tag("input#person_address")
- #
- # see documentation for assert_select at http://api.rubyonrails.org/
- def have_tag(*args, &block)
- @__current_scope_for_assert_select = AssertSelect.new(:assert_select, self, *args, &block)
- end
-
- # wrapper for a nested assert_select
- #
- # response.should have_tag("div#form") do
- # with_tag("input#person_name[name=?]", "person[name]")
- # end
- #
- # see documentation for assert_select at http://api.rubyonrails.org/
- def with_tag(*args, &block)
- args = prepare_args(args, @__current_scope_for_assert_select)
- @__current_scope_for_assert_select.should have_tag(*args, &block)
- end
-
- # wrapper for a nested assert_select with false
- #
- # response.should have_tag("div#1") do
- # without_tag("span", "some text that shouldn't be there")
- # end
- #
- # see documentation for assert_select at http://api.rubyonrails.org/
- def without_tag(*args, &block)
- args = prepare_args(args, @__current_scope_for_assert_select)
- @__current_scope_for_assert_select.should_not have_tag(*args, &block)
- end
-
- # :call-seq:
- # response.should have_rjs(*args, &block)
- #
- # wrapper for assert_select_rjs
- #
- # see documentation for assert_select_rjs at http://api.rubyonrails.org/
- def have_rjs(*args, &block)
- AssertSelect.new(:assert_select_rjs, self, *args, &block)
- end
-
- # :call-seq:
- # response.should send_email(*args, &block)
- #
- # wrapper for assert_select_email
- #
- # see documentation for assert_select_email at http://api.rubyonrails.org/
- def send_email(*args, &block)
- AssertSelect.new(:assert_select_email, self, *args, &block)
- end
-
- # wrapper for assert_select_encoded
- #
- # see documentation for assert_select_encoded at http://api.rubyonrails.org/
- def with_encoded(*args, &block)
- should AssertSelect.new(:assert_select_encoded, self, *args, &block)
- end
-
- private
-
- def prepare_args(args, current_scope = nil)
- return args if current_scope.nil?
- defaults = current_scope.options || {:strict => false, :xml => false}
- args << {} unless args.last.is_a?(::Hash)
- args.last[:strict] = defaults[:strict] if args.last[:strict].nil?
- args.last[:xml] = defaults[:xml] if args.last[:xml].nil?
- args
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb
deleted file mode 100644
index 3542f58fd..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-if defined?(ActiveRecord::Base)
- 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
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/have_text.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/have_text.rb
deleted file mode 100644
index e3dfc6fe0..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/have_text.rb
+++ /dev/null
@@ -1,57 +0,0 @@
-module Spec
- module Rails
- module Matchers
-
- class HaveText #:nodoc:
-
- def initialize(expected)
- @expected = expected
- end
-
- def matches?(response_or_text)
- @actual = response_or_text.respond_to?(:body) ? response_or_text.body : response_or_text
- return actual =~ expected if Regexp === expected
- return actual == expected unless Regexp === expected
- end
-
- def failure_message_for_should
- "expected #{expected.inspect}, got #{actual.inspect}"
- end
-
- def failure_message_for_should_not
- "expected not to have text #{expected.inspect}"
- end
-
- def description
- "have text #{expected.inspect}"
- end
-
- private
- attr_reader :expected
- attr_reader :actual
-
- end
-
- # :call-seq:
- # response.should have_text(expected)
- # response.should_not have_text(expected)
- #
- # Accepts a String or a Regexp, matching a String using ==
- # and a Regexp using =~.
- #
- # If response_or_text has a #body, then that is used as to match against
- # else it uses response_or_text
- #
- # Use this instead of <tt>response.should have_tag()</tt>
- # when you want to match the whole string or whole body
- #
- # == Examples
- #
- # response.should have_text("This is the expected text")
- def have_text(text)
- HaveText.new(text)
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb
deleted file mode 100644
index a05d804aa..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb
+++ /dev/null
@@ -1,54 +0,0 @@
-module Spec
- module Rails
- module Matchers
-
- class IncludeText #:nodoc:
-
- def initialize(expected)
- @expected = expected
- end
-
- def matches?(response_or_text)
- @actual = response_or_text.respond_to?(:body) ? response_or_text.body : response_or_text
- return actual.include?(expected)
- end
-
- def failure_message_for_should
- "expected to find #{expected.inspect} in #{actual.inspect}"
- end
-
- def failure_message_for_should_not
- "expected not to include text #{expected.inspect}"
- end
-
- def description
- "include text #{expected.inspect}"
- end
-
- private
- attr_reader :expected
- attr_reader :actual
-
- end
-
-
- # :call-seq:
- # response.should include_text(expected)
- # response.should_not include_text(expected)
- #
- # Accepts a String, matching using include?
- #
- # Use this instead of <tt>response.should have_text()</tt>
- # when you either don't know or don't care where on the page
- # this text appears.
- #
- # == Examples
- #
- # response.should include_text("This text will be in the actual string")
- def include_text(text)
- IncludeText.new(text)
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb
deleted file mode 100644
index e2ec6763a..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb
+++ /dev/null
@@ -1,126 +0,0 @@
-module Spec
- module Rails
- module Matchers
-
- class RedirectTo #:nodoc:
-
- include ActionController::StatusCodes
-
- def initialize(request, expected)
- @expected = expected
- @request = request
- end
-
- def matches?(response_or_controller)
- response = response_or_controller.respond_to?(:response) ?
- response_or_controller.response :
- response_or_controller
-
- @redirected = response.redirect?
- @actual = response.redirect_url
- return false unless @redirected
-
- if @expected_status
- @actual_status = interpret_status(response.code.to_i)
- @status_matched = @expected_status == @actual_status
- else
- @status_matched = true
- end
-
- if @expected.instance_of? Hash
- return false unless @actual =~ %r{^\w+://#{@request.host}}
- return false unless actual_redirect_to_valid_route
- return actual_hash == expected_hash && @status_matched
- else
- return @actual == expected_url && @status_matched
- end
- end
-
- def actual_hash
- hash_from_url @actual
- end
-
- def expected_hash
- hash_from_url expected_url
- end
-
- def actual_redirect_to_valid_route
- actual_hash
- end
-
- def hash_from_url(url)
- query_hash(url).merge(path_hash(url)).with_indifferent_access
- end
-
- def path_hash(url)
- path = url.sub(%r{^\w+://#{@request.host}(?::\d+)?}, "").split("?", 2)[0]
- ActionController::Routing::Routes.recognize_path path, { :method => :get }
- end
-
- def query_hash(url)
- query = url.split("?", 2)[1] || ""
- Rack::Utils.parse_query(query)
- end
-
- def with(options)
- @expected_status = interpret_status(options[:status])
- self
- end
-
- def expected_url
- case @expected
- when Hash
- return ActionController::UrlRewriter.new(@request, {}).rewrite(@expected)
- when :back
- return @request.env['HTTP_REFERER']
- when %r{^\w+://.*}
- return @expected
- else
- return "http://#{@request.host}" + (@expected.split('')[0] == '/' ? '' : '/') + @expected
- end
- end
-
- def failure_message_for_should
- if @redirected
- if @status_matched
- return %Q{expected redirect to #{@expected.inspect}, got redirect to #{@actual.inspect}}
- else
- return %Q{expected redirect to #{@expected.inspect} with status #{@expected_status}, got #{@actual_status}}
- end
- else
- return %Q{expected redirect to #{@expected.inspect}, got no redirect}
- end
- end
-
- def failure_message_for_should_not
- return %Q{expected not to be redirected to #{@expected.inspect}, but was} if @redirected
- end
-
- def description
- "redirect to #{@expected.inspect}"
- end
- end
-
- # :call-seq:
- # response.should redirect_to(url)
- # response.should redirect_to(:action => action_name)
- # response.should redirect_to(:controller => controller_name, :action => action_name)
- # response.should_not redirect_to(url)
- # response.should_not redirect_to(:action => action_name)
- # response.should_not redirect_to(:controller => controller_name, :action => action_name)
- #
- # Passes if the response is a redirect to the url, action or controller/action.
- # Useful in controller specs (integration or isolation mode).
- #
- # == Examples
- #
- # response.should redirect_to("path/to/action")
- # response.should redirect_to("http://test.host/path/to/action")
- # response.should redirect_to(:action => 'list')
- def redirect_to(opts)
- RedirectTo.new(request, opts)
- end
- end
-
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb
deleted file mode 100644
index b2c1887e1..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb
+++ /dev/null
@@ -1,129 +0,0 @@
-module Spec
- module Rails
- module Matchers
-
- class RenderTemplate #:nodoc:
-
- def initialize(expected, controller)
- @controller = controller
- @expected = expected
- end
-
- def matches?(response_or_controller)
- response = response_or_controller.respond_to?(:response) ?
- response_or_controller.response :
- response_or_controller
-
- if response.respond_to?(:redirect?) && response.redirect?
- @redirect_url = response.redirect_url
- elsif response.respond_to?(:rendered_file)
- @actual = response.rendered_file
- elsif response.respond_to?(:rendered)
- case template = response.rendered[:template]
- when nil
- unless response.rendered[:partials].empty?
- @actual = path_and_file(response.rendered[:partials].keys.first).join("/_")
- end
- when ActionView::Template
- @actual = template.path
- when String
- @actual = template
- end
- 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 && match_files(given_file, expected_file)
- end
-
- def match_files(actual, expected)
- actual_parts = actual.split('.')
- expected_parts = expected.split('.')
- expected_parts.each_with_index do |expected_part, index|
- return false unless expected_part == actual_parts[index]
- end
- true
- end
-
- def failure_message_for_should
- if @redirect_url
- "expected #{@expected.inspect}, got redirected to #{@redirect_url.inspect}"
- else
- "expected #{@expected.inspect}, got #{@actual.inspect}"
- end
- end
-
- def failure_message_for_should_not
- "expected not to render #{@expected.inspect}, but did"
- end
-
- def description
- "render template #{@expected.inspect}"
- end
-
- private
- 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
-
- # :call-seq:
- # response.should render_template(template)
- # response.should_not render_template(template)
- #
- # For use in controller code examples (integration or isolation mode).
- #
- # Passes if the specified template (view file) is rendered by the
- # response. This file can be any view file, including a partial. However
- # if it is a partial it must be rendered directly i.e. you can't detect
- # that a partial has been rendered as part of a view using
- # render_template. For that you should use a message expectation
- # (mock) instead:
- #
- # controller.should_receive(:render).with(:partial => 'path/to/partial')
- #
- # <code>template</code> can include the controller path. It can also
- # include an optional extension, which you only need to use when there
- # is ambiguity.
- #
- # Note that partials must be spelled with the preceding underscore.
- #
- # == Examples
- #
- # response.should render_template('list')
- # response.should render_template('same_controller/list')
- # response.should render_template('other_controller/list')
- #
- # # with extensions
- # response.should render_template('list.rjs')
- # response.should render_template('list.haml')
- # response.should render_template('same_controller/list.rjs')
- # response.should render_template('other_controller/list.rjs')
- #
- # # partials
- # response.should render_template('_a_partial')
- # response.should render_template('same_controller/_a_partial')
- # response.should render_template('other_controller/_a_partial')
- def render_template(path)
- RenderTemplate.new(path.to_s, @controller)
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/route_to.rb b/vendor/plugins/rspec-rails/lib/spec/rails/matchers/route_to.rb
deleted file mode 100644
index eae35f0b7..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/matchers/route_to.rb
+++ /dev/null
@@ -1,149 +0,0 @@
-require 'rack/utils'
-
-module Spec
- module Rails
- module Matchers
- USAGE = ArgumentError.new( 'usage: { :method => "path" }.should route_to( :controller => "controller", :action => "action", [ args ] )' )
-
- class PathDecomposer
- def self.decompose_path(path)
- method, path = if Hash === path
- raise USAGE if path.keys.size > 1
- path.entries.first
- else
- [:get, path]
- end
- path, querystring = path.split('?')
- return method, path, querystring
- end
- end
-
- class RouteTo #:nodoc:
- def initialize(expected, example)
- @route, @example = expected,example
- end
-
- def matches?(path)
- begin
- @actual = path
- method, path, querystring = PathDecomposer.decompose_path(path)
- params = querystring.blank? ? {} : Rack::Utils.parse_query(querystring).symbolize_keys!
- @example.assert_routing({ :method => method, :path => path }, @route, {}, params)
- true
- rescue ActionController::RoutingError, ::Test::Unit::AssertionFailedError, ActionController::MethodNotAllowed => e
- raise e.class, "#{e}\nIf you're expecting this failure, we suggest { :#{method} => \"#{path}\" }.should_not be_routable"
- rescue Exception => e
- raise e.class, "#{e}\n#{e.backtrace.join( "\n" )}"
- end
- end
-
- def does_not_match(path)
- raise ArgumentError, "Don't test a negative route like this."
- end
-
- def failure_message_for_should
- "Expected #{@expected.inspect} to route to #{@actual.inspect}, but it didn't.\n"+
- "In this case, we expected you to get an exception. So this message probably means something weird happened."
- end
-
- def failure_message_for_should_not
- "Expected a routing error, but the route passed instead. \nNote, when expecting routes to fail, you should use 'should_not be_routable' instead."
- end
-
- def description
- "route to #{@expected.inspect}"
- end
-
- private
- attr_reader :expected
- attr_reader :actual
-
- end
-
- # :call-seq:
- # "path".should route_to(expected) # assumes GET
- # { :get => "path" }.should route_to(expected)
- # { :put => "path" }.should route_to(expected)
- #
- # Uses ActionController::Routing::Routes to verify that
- # the path-and-method routes to a given set of options.
- # Also verifies route-generation, so that the expected options
- # do generate a pathname consisten with the indicated path/method.
- #
- # For negative tests, only the route recognition failure can be
- # tested; since route generation via path_to() will always generate
- # a path as requested. Use .should_not be_routable() in this case.
- #
- # == Examples
- # { :get => '/registrations/1/edit' }.
- # should route_to(:controller => 'registrations', :action => 'edit', :id => '1')
- # { :put => "/registrations/1" }.should
- # route_to(:controller => 'registrations', :action => 'update', :id => 1)
- # { :post => "/registrations/" }.should
- # route_to(:controller => 'registrations', :action => 'create')
-
- def route_to(expected)
- RouteTo.new(expected, self)
- end
-
- class BeRoutable
- def initialize(example)
- @example = example
- end
-
- def matches?(path)
- begin
- @actual = path
- method, path = PathDecomposer.decompose_path(path)
- @example.assert_recognizes({}, { :method => method, :path => path }, {} )
- true
- rescue ActionController::RoutingError, ActionController::MethodNotAllowed
- false
- rescue ::Test::Unit::AssertionFailedError => e
- # the second thingy will always be "<{}>" becaues of the way we called assert_recognizes({}...) above.
- e.to_s =~ /<(.*)> did not match <\{\}>/ and @actual_place = $1 or raise
- true
- end
- end
- def failure_message_for_should
- "Expected '#{@actual.keys.first.to_s.upcase} #{@actual.values.first}' to be routable, but it wasn't.\n"+
- "To really test routability, we recommend #{@actual.inspect}.\n"+
- " should route_to( :action => 'action', :controller => 'controller' )\n\n"+
-
- "That way, you'll verify where your route goes to. Plus, we'll verify\n"+
- "the generation of the expected path from the action/controller, as in\n"+
- "the url_for() helper."
- end
-
- def failure_message_for_should_not
- "Expected '#{@actual.keys.first.to_s.upcase} #{@actual.values.first}' to fail, but it routed to #{@actual_place} instead"
- end
-
- end
- # :call-seq:
- # { "path" }.should_not be_routable # assumes GET
- # { :get => "path" }.should_not be_routable
- # { :put => "path" }.should_not be_routable
- #
- # Uses ActionController::Routing::Routes to verify that
- # the path-and-method cannot be routed to a controller.
- # Since url_for() will always generate a path, even if that
- # path is not routable, the negative test only needs to be
- # performed on the route recognition.
- #
- # Don't use this matcher for testing expected routability -
- # use .should route_to( :controller => "controller", :action => "action" ) instead
- #
- # == Examples
- # { :get => '/registrations/1/attendees/3/edit' }.should_not be_routable
- # { :get => '/attendees/3/edit' }.should route_to( ...<controller/action>... )
-
- def be_routable
- BeRoutable.new(self)
- end
-
- alias_method :be_routeable, :be_routable
- end
- end
-end
-
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb b/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb
deleted file mode 100644
index f3436ddd5..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb
+++ /dev/null
@@ -1,135 +0,0 @@
-module Spec
- module Rails
-
- class IllegalDataAccessException < StandardError; end
-
- module Mocks
-
- # Creates a mock object instance for a +model_class+ with common
- # methods stubbed out. Additional methods may be easily stubbed (via
- # add_stubs) if +stubs+ is passed.
- def mock_model(model_class, options_and_stubs = {})
- id = options_and_stubs[:id] || next_id
- options_and_stubs = options_and_stubs.reverse_merge({
- :id => id,
- :to_param => id.to_s,
- :new_record? => false,
- :errors => stub("errors", :count => 0)
- })
- m = mock("#{model_class.name}_#{id}", options_and_stubs)
- m.__send__(:__mock_proxy).instance_eval <<-CODE
- def @target.as_new_record
- self.stub!(:id).and_return nil
- self.stub!(:to_param).and_return nil
- self.stub!(:new_record?).and_return true
- self
- end
- def @target.is_a?(other)
- #{model_class}.ancestors.include?(other)
- end
- def @target.kind_of?(other)
- #{model_class}.ancestors.include?(other)
- end
- def @target.instance_of?(other)
- other == #{model_class}
- end
- def @target.class
- #{model_class}
- end
- CODE
- yield m if block_given?
- m
- end
-
- module ModelStubber
- def connection
- raise Spec::Rails::IllegalDataAccessException.new("stubbed models are not allowed to access the database")
- end
- def new_record?
- id.nil?
- end
- def as_new_record
- self.id = nil
- self
- end
- end
-
- # :call-seq:
- # stub_model(Model)
- # stub_model(Model).as_new_record
- # stub_model(Model, hash_of_stubs)
- # stub_model(Model, instance_variable_name, hash_of_stubs)
- #
- # Creates an instance of +Model+ that is prohibited from accessing the
- # database*. For each key in +hash_of_stubs+, if the model has a
- # matching attribute (determined by asking it) are simply assigned the
- # submitted values. If the model does not have a matching attribute, the
- # key/value pair is assigned as a stub return value using RSpec's
- # mocking/stubbing framework.
- #
- # <tt>new_record?</tt> is overridden to return the result of id.nil?
- # This means that by default new_record? will return false. If you want
- # the object to behave as a new record, sending it +as_new_record+ will
- # set the id to nil. You can also explicitly set :id => nil, in which
- # case new_record? will return true, but using +as_new_record+ makes the
- # example a bit more descriptive.
- #
- # While you can use stub_model in any example (model, view, controller,
- # helper), it is especially useful in view examples, which are
- # inherently more state-based than interaction-based.
- #
- # == Database Independence
- #
- # +stub_model+ does not make your examples entirely
- # database-independent. It does not stop the model class itself from
- # loading up its columns from the database. It just prevents data access
- # from the object itself. To completely decouple from the database, take
- # a look at libraries like unit_record or NullDB.
- #
- # == Examples
- #
- # stub_model(Person)
- # stub_model(Person).as_new_record
- # stub_model(Person, :id => 37)
- # stub_model(Person) do |person|
- # person.first_name = "David"
- # end
- def stub_model(model_class, stubs={})
- stubs = {:id => next_id}.merge(stubs)
- returning model_class.new do |model|
- model.id = stubs.delete(:id)
- model.extend ModelStubber
- stubs.each do |k,v|
- if model.has_attribute?(k)
- model[k] = stubs.delete(k)
- end
- end
- model.stub!(stubs)
- yield model if block_given?
- end
- end
-
- # DEPRECATED - use object.stub!(:method => value, :method2 => value)
- #
- # Stubs methods on +object+ (if +object+ is a symbol or string a new mock
- # with that name will be created). +stubs+ is a Hash of +method=>value+
- def add_stubs(object, stubs = {}) #:nodoc:
- Kernel.warn <<-WARNING
-DEPRECATION NOTICE: add_stubs is deprecated and will be removed
-from a future version of rspec-rails. Use this instead:
-
- object.stub!(:method => value, :method2 => value)
-
-WARNING
- object.stub!(stubs)
- end
-
- private
- @@model_id = 1000
- def next_id
- @@model_id += 1
- end
-
- end
- end
-end
diff --git a/vendor/plugins/rspec-rails/lib/spec/rails/version.rb b/vendor/plugins/rspec-rails/lib/spec/rails/version.rb
deleted file mode 100644
index 4d9e9823e..000000000
--- a/vendor/plugins/rspec-rails/lib/spec/rails/version.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-module Spec # :nodoc:
- module Rails # :nodoc:
- module VERSION # :nodoc:
- unless defined? MAJOR
- MAJOR = 1
- MINOR = 2
- TINY = 9
- PRE = nil
-
- STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
-
- SUMMARY = "rspec-rails #{STRING}"
- end
- end
- end
-end