You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by ws...@apache.org on 2008/12/11 01:34:30 UTC

svn commit: r725524 [3/14] - in /incubator/olio/webapp/rails/trunk: app/controllers/ app/models/ app/views/events/ config/ config/environments/ spec/controllers/ spec/models/ vendor/plugins/attachment_fu/ vendor/plugins/attachment_fu/lib/ vendor/plugin...

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb Wed Dec 10 17:34:18 2008
@@ -8,22 +8,21 @@
   module Rails
 
     module Example
-      class RailsExampleGroup < Test::Unit::TestCase
-        
-        # Rails >= r8570 uses setup/teardown_fixtures explicitly
-        before(:each) do
-          setup_fixtures if self.respond_to?(:setup_fixtures)
+      if ActiveSupport.const_defined?(:TestCase)
+        class RailsExampleGroup < ActiveSupport::TestCase
+          include ActionController::Assertions::SelectorAssertions
         end
-        after(:each) do
-          teardown_fixtures if self.respond_to?(:teardown_fixtures)
+      else
+        class RailsExampleGroup < Test::Unit::TestCase
         end
-        
+      end
+      
+      class RailsExampleGroup
         include Spec::Rails::Matchers
         include Spec::Rails::Mocks
-        
         Spec::Example::ExampleGroupFactory.default(self)
-        
       end
+      
     end
   end
 end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb Wed Dec 10 17:34:18 2008
@@ -3,61 +3,39 @@
 module Spec
   module Rails
     module Example
-      # Provides specialized mock-like behaviour for controller and view examples,
-      # allowing you to mock or stub calls to render with specific arguments while
-      # ignoring all other calls.
+      # 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
 
-        # Similar to mocking +render+ with the exception that calls to +render+ with
-        # any other options are passed on to the receiver (i.e. controller in
-        # controller examples, template in view examples).
-        #
-        # This is necessary because Rails uses the +render+ method on both
-        # controllers and templates as a dispatcher to render different kinds of
-        # things, sometimes resulting in many calls to the render method within one
-        # request. This approach makes it impossible to use a normal mock object, which
-        # is designed to observe all incoming messages with a given name.
-        #
-        # +expect_render+ is auto-verifying, so failures will be reported without
-        # requiring you to explicitly request verification.
-        #
-        # Also, +expect_render+ uses parts of RSpec's mock expectation framework. Because
-        # it wraps only a subset of the framework, using this will create no conflict with
-        # other mock frameworks if you choose to use them. Additionally, the object returned
-        # by expect_render is an RSpec mock object, which means that you can call any of the
-        # chained methods available in RSpec's mocks.
-        #
-        # == Controller Examples
-        #
-        #   controller.expect_render(:partial => 'thing', :object => thing)
-        #   controller.expect_render(:partial => 'thing', :collection => things).once
-        #
-        #   controller.stub_render(:partial => 'thing', :object => thing)
-        #   controller.stub_render(:partial => 'thing', :collection => things).twice
-        #
-        # == View Examples
-        #
-        #   template.expect_render(:partial => 'thing', :object => thing)
-        #   template.expect_render(:partial => 'thing', :collection => things)
-        #
-        #   template.stub_render(:partial => 'thing', :object => thing)
-        #   template.stub_render(:partial => 'thing', :collection => things)
+        # DEPRECATED
         #
+        # Use should_receive(:render).with(opts) instead
         def expect_render(opts={})
+          warn_deprecation("expect_render", "should_receive")
           register_verify_after_each
-          expect_render_mock_proxy.should_receive(:render, :expected_from => caller(1)[0]).with(opts)
+          render_proxy.should_receive(:render, :expected_from => caller(1)[0]).with(opts)
         end
 
-        # This is exactly like expect_render, with the exception that the call to render will not
-        # be verified. Use this if you are trying to isolate your example from a complicated render
-        # operation but don't care whether it is called or not.
+        # DEPRECATED
+        #
+        # Use stub!(:render).with(opts) instead
         def stub_render(opts={})
+          warn_deprecation("stub_render", "stub!")
           register_verify_after_each
-          expect_render_mock_proxy.stub!(:render, :expected_from => caller(1)[0]).with(opts)
+          render_proxy.stub!(:render, :expected_from => caller(1)[0]).with(opts)
+        end
+        
+        def warn_deprecation(deprecated_method, new_method)
+          Kernel.warn <<-WARNING
+#{deprecated_method} is deprecated and will be removed from a future version of rspec-rails.
+
+Please just use object.#{new_method} instead.
+WARNING
         end
   
         def verify_rendered # :nodoc:
-          expect_render_mock_proxy.rspec_verify
+          render_proxy.rspec_verify
         end
   
         def unregister_verify_after_each #:nodoc:
@@ -65,7 +43,32 @@
           Spec::Example::ExampleGroup.remove_after(:each, &proc)
         end
 
-        protected
+        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!(:render, :expected_from => caller(1)[0])
+          else
+            super
+          end
+        end
 
         def verify_rendered_proc #:nodoc:
           template = self
@@ -80,8 +83,8 @@
           Spec::Example::ExampleGroup.after(:each, &proc)
         end
   
-        def expect_render_mock_proxy #:nodoc:
-          @expect_render_mock_proxy ||= Spec::Mocks::Mock.new("expect_render_mock_proxy")
+        def render_proxy #:nodoc:
+          @render_proxy ||= Spec::Mocks::Mock.new("render_proxy")
         end
   
       end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb Wed Dec 10 17:34:18 2008
@@ -32,7 +32,7 @@
           ensure_that_base_view_path_is_not_set_across_example_groups
         end
 
-        def initialize(defined_description, &implementation) #:nodoc:
+        def initialize(defined_description, options={}, &implementation) #:nodoc:
           super
           @controller_class_name = "Spec::Rails::Example::ViewExampleGroupController"
         end
@@ -63,7 +63,7 @@
 
         def derived_action_name(options) #:nodoc:
           parts = subject_of_render(options).split('/').reject { |part| part.empty? }
-          "#{parts.last}"
+          "#{parts.last}".split('.').first
         end
 
         def subject_of_render(options) #:nodoc:
@@ -103,11 +103,11 @@
           add_helpers(options)
 
           assigns[:action_name] = @action_name
-
-          @request.path_parameters = {
-          :controller => derived_controller_name(options),
-          :action => derived_action_name(options)
-          }
+          
+          @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
@@ -150,7 +150,9 @@
 
         protected
         def _assigns_hash_proxy
-          @_assigns_hash_proxy ||= AssignsHashProxy.new @controller
+          @_assigns_hash_proxy ||= AssignsHashProxy.new self do
+            @response.template
+          end
         end
       end
 
@@ -172,6 +174,9 @@
             include helper_module
           end
         end
+        
+        def forget_variables_added_to_assigns
+        end
       end
     end
   end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb Wed Dec 10 17:34:18 2008
@@ -2,6 +2,8 @@
   class Base #:nodoc:
     include Spec::Rails::Example::RenderObserver
     cattr_accessor :base_view_path
+
+    alias_method :orig_render_partial, :render_partial
     def render_partial(partial_path, local_assigns = nil, deprecated_local_assigns = nil) #:nodoc:
       if partial_path.is_a?(String)
         unless partial_path.include?("/")
@@ -10,15 +12,19 @@
           end
         end
       end
-      super(partial_path, local_assigns, deprecated_local_assigns)
+      begin
+        orig_render_partial(partial_path, local_assigns, deprecated_local_assigns)
+      rescue ArgumentError # edge rails > 2.1 changed render_partial to accept only one arg
+        orig_render_partial(partial_path)
+      end
     end
 
     alias_method :orig_render, :render
     def render(options = {}, old_local_assigns = {}, &block)
-      if expect_render_mock_proxy.send(:__mock_proxy).send(:find_matching_expectation, :render, options)
-        expect_render_mock_proxy.render(options)
+      if render_proxy.send(:__mock_proxy).send(:find_matching_expectation, :render, options)
+        render_proxy.render(options)
       else
-        unless expect_render_mock_proxy.send(:__mock_proxy).send(:find_matching_method_stub, :render, options)
+        unless render_proxy.send(:__mock_proxy).send(:find_matching_method_stub, :render, options)
           orig_render(options, old_local_assigns, &block)
         end
       end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb Wed Dec 10 17:34:18 2008
@@ -1,8 +1,13 @@
 require 'spec/example/configuration'
+require 'test_help'
+
 begin
 module Spec
   module Example
     class Configuration
+      
+      TEST_CASE = ActiveSupport.const_defined?(:TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase
+      
       # Rails 1.2.3 does a copy of the @inheritable_attributes to the subclass when the subclass is
       # created. This causes an ordering issue when setting state on Configuration because the data is
       # already copied.
@@ -10,7 +15,7 @@
       # @inheritable_attributes updated.
       # TODO: BT - When we no longer support Rails 1.2.3, we can remove this functionality
       EXAMPLE_GROUP_CLASSES = [
-        ::Test::Unit::TestCase,
+        TEST_CASE,
         ::Spec::Rails::Example::RailsExampleGroup,
         ::Spec::Rails::Example::FunctionalExampleGroup,
         ::Spec::Rails::Example::ControllerExampleGroup,
@@ -26,7 +31,7 @@
         end
 
         def use_transactional_fixtures
-          Test::Unit::TestCase.use_transactional_fixtures
+          TEST_CASE.use_transactional_fixtures
         end
         def use_transactional_fixtures=(value)
           EXAMPLE_GROUP_CLASSES.each do |example_group|
@@ -35,7 +40,7 @@
         end
 
         def use_instantiated_fixtures
-          Test::Unit::TestCase.use_instantiated_fixtures
+          TEST_CASE.use_instantiated_fixtures
         end
         def use_instantiated_fixtures=(value)
           EXAMPLE_GROUP_CLASSES.each do |example_group|
@@ -44,7 +49,7 @@
         end
 
         def fixture_path
-          Test::Unit::TestCase.fixture_path
+          TEST_CASE.fixture_path
         end
         def fixture_path=(path)
           EXAMPLE_GROUP_CLASSES.each do |example_group|
@@ -53,7 +58,7 @@
         end
 
         def global_fixtures
-          ::Test::Unit::TestCase.fixture_table_names
+          TEST_CASE.fixture_table_names
         end
         def global_fixtures=(fixtures)
           EXAMPLE_GROUP_CLASSES.each do |example_group|

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb Wed Dec 10 17:34:18 2008
@@ -5,8 +5,8 @@
     class Have #:nodoc:
       alias_method :__original_failure_message, :failure_message
       def failure_message
-        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 "expected #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}, got #{@given}" if @collection_name == :errors_on
+        return "expected #{relativities[@relativity]}#{@expected} error on :#{@args[0]}, got #{@given}" if @collection_name == :error_on
         return __original_failure_message
       end
       

Added: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb?rev=725524&view=auto
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb (added)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb Wed Dec 10 17:34:18 2008
@@ -0,0 +1,14 @@
+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

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb Wed Dec 10 17:34:18 2008
@@ -1,5 +1,6 @@
 dir = File.dirname(__FILE__)
 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'

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb Wed Dec 10 17:34:18 2008
@@ -16,6 +16,7 @@
         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

Added: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb?rev=725524&view=auto
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb (added)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb Wed Dec 10 17:34:18 2008
@@ -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

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb Wed Dec 10 17:34:18 2008
@@ -10,10 +10,18 @@
         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,22 +35,43 @@
         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
         
-      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(path)
-      #   response.should_not render_template(path)
+      #   response.should render_template(template)
+      #   response.should_not render_template(template)
       #
-      # Passes if the specified template is rendered by the response.
-      # Useful in controller specs (integration or isolation mode).
+      # For use in controller code examples (integration or isolation mode).
       #
-      # <code>path</code> can include the controller path or not. It
-      # can also include an optional extension (no extension assumes .rhtml).
+      # 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.
       #
@@ -52,12 +81,13 @@
       #   response.should render_template('same_controller/list')
       #   response.should render_template('other_controller/list')
       #
-      #   #rjs
+      #   # 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
+      #   # partials
       #   response.should render_template('_a_partial')
       #   response.should render_template('same_controller/_a_partial')
       #   response.should render_template('other_controller/_a_partial')

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb Wed Dec 10 17:34:18 2008
@@ -9,15 +9,21 @@
       # 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 = next_id
-        options_and_stubs.reverse_merge!({
+        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}_#{options_and_stubs[:id]}", options_and_stubs)
+        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
@@ -52,24 +58,33 @@
       #   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, which it answers based
-      # on schema.rb) 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.
-      #
-      # new_record? 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
+      # 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.
+      # 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
       #
-      # 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.
+      # +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
       #
@@ -77,9 +92,9 @@
       #   stub_model(Person).as_new_record
       #   stub_model(Person, :id => 37)
       #   stub_model(Person) do |person|
-      #     model.first_name = "David"
+      #     person.first_name = "David"
       #   end
-      def stub_model(model_class, stubs = {})
+      def stub_model(model_class, stubs={})
         stubs = {:id => next_id}.merge(stubs)
         returning model_class.new do |model|
           model.id = stubs.delete(:id)
@@ -99,7 +114,7 @@
       # - object.stub!(:method => return_value, :method2 => return_value2, :etc => etc)
       #++
       # 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 <tt>method=>value</tt>
+      # with that name will be created). +stubs+ is a Hash of +method=>value+
       def add_stubs(object, stubs = {}) #:nodoc:
         m = [String, Symbol].index(object.class) ? mock(object.to_s) : object
         stubs.each {|k,v| m.stub!(k).and_return(v)}
@@ -114,4 +129,4 @@
 
     end
   end
-end
\ No newline at end of file
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb Wed Dec 10 17:34:18 2008
@@ -40,15 +40,23 @@
   include Singleton
   def scenario_started(*args)
     if defined?(ActiveRecord::Base)
-      ActiveRecord::Base.send :increment_open_transactions unless Rails::VERSION::STRING == "1.1.6"
-      ActiveRecord::Base.connection.begin_db_transaction
+      if ActiveRecord::Base.connection.respond_to?(:increment_open_transactions)
+        ActiveRecord::Base.connection.increment_open_transactions
+      else
+        ActiveRecord::Base.send :increment_open_transactions
+      end
     end
+    ActiveRecord::Base.connection.begin_db_transaction
   end
 
   def scenario_succeeded(*args)
     if defined?(ActiveRecord::Base)
       ActiveRecord::Base.connection.rollback_db_transaction
-      ActiveRecord::Base.send :decrement_open_transactions unless Rails::VERSION::STRING == "1.1.6"
+      if ActiveRecord::Base.connection.respond_to?(:decrement_open_transactions)
+        ActiveRecord::Base.connection.decrement_open_transactions
+      else
+        ActiveRecord::Base.send :decrement_open_transactions
+      end
     end
   end
   alias :scenario_pending :scenario_succeeded

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/version.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/version.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/version.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/lib/spec/rails/version.rb Wed Dec 10 17:34:18 2008
@@ -1,23 +1,16 @@
-module Spec
-  module Rails
-    module VERSION #:nodoc:
-      BUILD_TIME_UTC = 20080615141040
-    end
-  end
-end
-
-# Verify that the plugin has the same revision as RSpec
-if Spec::Rails::VERSION::BUILD_TIME_UTC != Spec::VERSION::BUILD_TIME_UTC
-  raise <<-EOF
-
-############################################################################
-Your RSpec on Rails plugin is incompatible with your installed RSpec.
-
-RSpec          : #{Spec::VERSION::BUILD_TIME_UTC}
-RSpec on Rails : #{Spec::Rails::VERSION::BUILD_TIME_UTC}
-
-Make sure your RSpec on Rails plugin is compatible with your RSpec gem.
-See http://rspec.rubyforge.org/documentation/rails/install.html for details.
-############################################################################
-EOF
-end
+module Spec
+  module Rails
+    module VERSION #:nodoc:
+      unless defined? MAJOR
+        MAJOR  = 1
+        MINOR  = 1
+        TINY   = 11
+        MINESCULE = 1
+
+        STRING = [MAJOR, MINOR, TINY, MINESCULE].join('.')
+
+        SUMMARY = "rspec-rails #{STRING}"
+      end
+    end
+  end
+end
\ No newline at end of file

Added: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/rspec-rails.gemspec
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/rspec-rails.gemspec?rev=725524&view=auto
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/rspec-rails.gemspec (added)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/rspec-rails.gemspec Wed Dec 10 17:34:18 2008
@@ -0,0 +1,35 @@
+# -*- encoding: utf-8 -*-
+
+Gem::Specification.new do |s|
+  s.name = %q{rspec-rails}
+  s.version = "1.1.11.1"
+
+  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+  s.authors = ["RSpec Development Team"]
+  s.date = %q{2008-11-24}
+  s.description = %q{Behaviour Driven Development for Ruby on Rails.}
+  s.email = ["rspec-devel@rubyforge.org"]
+  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "generators/rspec/templates/previous_failures.txt"]
+  s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "UPGRADE", "generators/rspec/CHANGES", "generators/rspec/rspec_generator.rb", "generators/rspec/templates/all_stories.rb", "generators/rspec/templates/previous_failures.txt", "generators/rspec/templates/rcov.opts", "generators/rspec/templates/rspec.rake", "generators/rspec/templates/script/autospec", "generators/rspec/templates/script/spec", "generators/rspec/templates/script/spec_server", "generators/rspec/templates/spec.opts", "generators/rspec/templates/spec_helper.rb", "generators/rspec/templates/stories_helper.rb", "generators/rspec_controller/USAGE", "generators/rspec_controller/rspec_controller_generator.rb", "generators/rspec_controller/templates/controller_spec.rb", "generators/rspec_controller/templates/helper_spec.rb", "generators/rspec_controller/templates/view_spec.rb", "generators/rspec_default_values.rb", "generators/rspec_model/USAGE", "generators/rspec_model/rspec_model_gene
 rator.rb", "generators/rspec_model/templates/model_spec.rb", "generators/rspec_scaffold/rspec_scaffold_generator.rb", "generators/rspec_scaffold/templates/controller_spec.rb", "generators/rspec_scaffold/templates/edit_erb_spec.rb", "generators/rspec_scaffold/templates/helper_spec.rb", "generators/rspec_scaffold/templates/index_erb_spec.rb", "generators/rspec_scaffold/templates/new_erb_spec.rb", "generators/rspec_scaffold/templates/routing_spec.rb", "generators/rspec_scaffold/templates/show_erb_spec.rb", "init.rb", "lib/autotest/discover.rb", "lib/autotest/rails_rspec.rb", "lib/spec/rails.rb", "lib/spec/rails/example.rb", "lib/spec/rails/example/assigns_hash_proxy.rb", "lib/spec/rails/example/controller_example_group.rb", "lib/spec/rails/example/cookies_proxy.rb", "lib/spec/rails/example/functional_example_group.rb", "lib/spec/rails/example/helper_example_group.rb", "lib/spec/rails/example/model_example_group.rb", "lib/spec/rails/example/rails_example_group.rb", "lib/spec/rai
 ls/example/render_observer.rb", "lib/spec/rails/example/view_example_group.rb", "lib/spec/rails/extensions.rb", "lib/spec/rails/extensions/action_controller/base.rb", "lib/spec/rails/extensions/action_controller/rescue.rb", "lib/spec/rails/extensions/action_controller/test_response.rb", "lib/spec/rails/extensions/action_view/base.rb", "lib/spec/rails/extensions/active_record/base.rb", "lib/spec/rails/extensions/object.rb", "lib/spec/rails/extensions/spec/example/configuration.rb", "lib/spec/rails/extensions/spec/matchers/have.rb", "lib/spec/rails/interop/testcase.rb", "lib/spec/rails/matchers.rb", "lib/spec/rails/matchers/assert_select.rb", "lib/spec/rails/matchers/change.rb", "lib/spec/rails/matchers/have_text.rb", "lib/spec/rails/matchers/include_text.rb", "lib/spec/rails/matchers/redirect_to.rb", "lib/spec/rails/matchers/render_template.rb", "lib/spec/rails/mocks.rb", "lib/spec/rails/story_adapter.rb", "lib/spec/rails/version.rb", "rspec-rails.gemspec", "spec/rails/autote
 st/mappings_spec.rb", "spec/rails/example/assigns_hash_proxy_spec.rb", "spec/rails/example/configuration_spec.rb", "spec/rails/example/controller_isolation_spec.rb", "spec/rails/example/controller_spec_spec.rb", "spec/rails/example/cookies_proxy_spec.rb", "spec/rails/example/example_group_factory_spec.rb", "spec/rails/example/helper_spec_spec.rb", "spec/rails/example/model_spec_spec.rb", "spec/rails/example/shared_behaviour_spec.rb", "spec/rails/example/test_unit_assertion_accessibility_spec.rb", "spec/rails/example/view_spec_spec.rb", "spec/rails/extensions/action_controller_rescue_action_spec.rb", "spec/rails/extensions/action_view_base_spec.rb", "spec/rails/extensions/active_record_spec.rb", "spec/rails/interop/testcase_spec.rb", "spec/rails/matchers/assert_select_spec.rb", "spec/rails/matchers/description_generation_spec.rb", "spec/rails/matchers/errors_on_spec.rb", "spec/rails/matchers/have_text_spec.rb", "spec/rails/matchers/include_text_spec.rb", "spec/rails/matchers/
 redirect_to_spec.rb", "spec/rails/matchers/render_template_spec.rb", "spec/rails/matchers/should_change_spec.rb", "spec/rails/mocks/ar_classes.rb", "spec/rails/mocks/mock_model_spec.rb", "spec/rails/mocks/stub_model_spec.rb", "spec/rails/sample_modified_fixture.rb", "spec/rails/sample_spec.rb", "spec/rails/spec_server_spec.rb", "spec/rails/spec_spec.rb", "spec/rails_suite.rb", "spec/resources/controllers/action_view_base_spec_controller.rb", "spec/resources/controllers/controller_spec_controller.rb", "spec/resources/controllers/redirect_spec_controller.rb", "spec/resources/controllers/render_spec_controller.rb", "spec/resources/controllers/rjs_spec_controller.rb", "spec/resources/helpers/addition_helper.rb", "spec/resources/helpers/explicit_helper.rb", "spec/resources/helpers/more_explicit_helper.rb", "spec/resources/helpers/plugin_application_helper.rb", "spec/resources/helpers/view_spec_helper.rb", "spec/resources/views/controller_spec/_partial.rhtml", "spec/resources/view
 s/controller_spec/action_setting_flash_after_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml", "spec/resources/views/controller_spec/action_with_errors_in_template.rhtml", "spec/resources/views/controller_spec/action_with_template.rhtml", "spec/resources/views/layouts/application.rhtml", "spec/resources/views/layouts/simple.rhtml", "spec/resources/views/objects/_object.html.erb", "spec/resources/views/render_spec/_a_partial.rhtml", "spec/resources/views/render_spec/action_with_alternate_layout.rhtml", "spec/resources/views/render_spec/some_action.js.rjs", "spec/resources/views/render_spec/some_action.rhtml", "spec/resources/views/render_spec/some_action.rjs", "spec/resources/views/rjs_spec/_replacement_partial.rhtml", "spec/resources/views/rjs_spec/hide_div.rjs", "spec/resources/views/rjs_spec/hide_page_element.rjs", "spec/resources/views/
 rjs_spec/insert_html.rjs", "spec/resources/views/rjs_spec/replace.rjs", "spec/resources/views/rjs_spec/replace_html.rjs", "spec/resources/views/rjs_spec/replace_html_with_partial.rjs", "spec/resources/views/rjs_spec/visual_effect.rjs", "spec/resources/views/rjs_spec/visual_toggle_effect.rjs", "spec/resources/views/tag_spec/no_tags.rhtml", "spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml", "spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml", "spec/resources/views/view_spec/_partial.rhtml", "spec/resources/views/view_spec/_partial_used_twice.rhtml", "spec/resources/views/view_spec/_partial_with_local_variable.rhtml", "spec/resources/views/view_spec/_partial_with_sub_partial.rhtml", "spec/resources/views/view_spec/_spacer.rhtml", "spec/resources/views/view_spec/accessor.rhtml", "spec/resources/views/view_spec/block_helper.rhtml", "spec/resources/views/view_spec/entry_form.rhtml", "spec/resources/views/view_spec/explicit_helper.rhtml", "spec/res
 ources/views/view_spec/foo/show.rhtml", "spec/resources/views/view_spec/implicit_helper.rhtml", "spec/resources/views/view_spec/multiple_helpers.rhtml", "spec/resources/views/view_spec/should_not_receive.rhtml", "spec/resources/views/view_spec/template_with_partial.rhtml", "spec/resources/views/view_spec/template_with_partial_using_collection.rhtml", "spec/resources/views/view_spec/template_with_partial_with_array.rhtml", "spec/spec_helper.rb", "stories/all.rb", "stories/configuration/stories.rb", "stories/helper.rb", "stories/steps/people.rb", "stories/transactions_should_rollback", "stories/transactions_should_rollback.rb"]
+  s.has_rdoc = true
+  s.homepage = %q{http://rspec.info/}
+  s.rdoc_options = ["--main", "README.txt"]
+  s.require_paths = ["lib"]
+  s.rubyforge_project = %q{rspec}
+  s.rubygems_version = %q{1.3.1}
+  s.summary = %q{rspec-rails 1.1.11.1}
+
+  if s.respond_to? :specification_version then
+    current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
+    s.specification_version = 2
+
+    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
+      s.add_runtime_dependency(%q<rspec>, ["= 1.1.11.1"])
+      s.add_development_dependency(%q<hoe>, [">= 1.8.2"])
+    else
+      s.add_dependency(%q<rspec>, ["= 1.1.11.1"])
+    end
+  else
+    s.add_dependency(%q<rspec>, ["= 1.1.11.1"])
+  end
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb Wed Dec 10 17:34:18 2008
@@ -1,6 +1,6 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require File.join(File.dirname(__FILE__), *%w[.. .. .. lib autotest rails_rspec])
-require File.join(File.dirname(__FILE__), *%w[.. .. .. .. rspec spec autotest_matchers])
+require File.join(File.dirname(__FILE__), *%w[.. .. .. .. rspec spec autotest autotest_matchers])
 
 describe Autotest::RailsRspec, "file mapping" do
   before(:each) do

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb Wed Dec 10 17:34:18 2008
@@ -1,31 +1,51 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe "AssignsHashProxy" do
+  def orig_assigns
+    @object.assigns
+  end
+  
   before(:each) do
-    @object = Object.new
-    @assigns = Hash.new
-    @object.stub!(:assigns).and_return(@assigns)
-    @proxy = Spec::Rails::Example::AssignsHashProxy.new(@object)
+    @object = Class.new do
+      attr_accessor :assigns
+    end.new
+    @object.assigns = Hash.new
+    @proxy = Spec::Rails::Example::AssignsHashProxy.new self do
+      @object
+    end
   end
-
-  it "has [] accessor" do
+  
+  it "should set ivars on object using string" do
     @proxy['foo'] = 'bar'
-    @assigns['foo'].should == 'bar'
+    @object.instance_eval{@foo}.should == 'bar'
+  end
+  
+  it "should set ivars on object using symbol" do
+    @proxy[:foo] = 'bar'
+    @object.instance_eval{@foo}.should == 'bar'
+  end
+  
+  it "should access object's assigns with a string" do
+    @object.assigns['foo'] = 'bar'
     @proxy['foo'].should == 'bar'
   end
-
-  it "works for symbol key" do
-    @assigns[:foo] = 2
-    @proxy[:foo].should == 2
+  
+  it "should access object's assigns with a symbol" do
+    @object.assigns['foo'] = 'bar'
+    @proxy[:foo].should == 'bar'
   end
 
-  it "checks for string key before symbol key" do
-    @assigns['foo'] = false
-    @assigns[:foo] = 2
-    @proxy[:foo].should == false
+  it "should access object's ivars with a string" do
+    @object.instance_variable_set('@foo', 'bar')
+    @proxy['foo'].should == 'bar'
+  end
+  
+  it "should access object's ivars with a symbol" do
+    @object.instance_variable_set('@foo', 'bar')
+    @proxy[:foo].should == 'bar'
   end
 
-  it "each method iterates through each element like a Hash" do
+  it "should iterate through each element like a Hash" do
     values = {
       'foo' => 1,
       'bar' => 2,
@@ -34,27 +54,43 @@
     @proxy['foo'] = values['foo']
     @proxy['bar'] = values['bar']
     @proxy['baz'] = values['baz']
-
+  
     @proxy.each do |key, value|
       key.should == key
       value.should == values[key]
     end
   end
-
-  it "delete method deletes the element of passed in key" do
-    @proxy['foo'] = 'bar'
-    @proxy.delete('foo').should == 'bar'
+  
+  it "should delete the ivar of passed in key" do
+    @object.instance_variable_set('@foo', 'bar')
+    @proxy.delete('foo')
     @proxy['foo'].should be_nil
   end
-
-  it "has_key? detects the presence of a key" do
-    @proxy['foo'] = 'bar'
+  
+  it "should delete the assigned element of passed in key" do
+    @object.assigns['foo'] = 'bar'
+    @proxy.delete('foo')
+    @proxy['foo'].should be_nil
+  end
+  
+  it "should detect the presence of a key in assigns" do
+    @object.assigns['foo'] = 'bar'
     @proxy.has_key?('foo').should == true
     @proxy.has_key?('bar').should == false
   end
   
-  it "should sets an instance var" do
-    @proxy['foo'] = 'bar'
-    @object.instance_eval { @foo }.should == 'bar'
+  it "should expose values set in example back to the example" do
+    @proxy[:foo] = 'bar'
+    @proxy[:foo].should == 'bar'
+  end
+  
+  it "should allow assignment of false via proxy" do
+    @proxy['foo'] = false
+    @proxy['foo'].should be_false
+  end
+  
+  it "should allow assignment of false" do
+    @object.instance_variable_set('@foo',false)
+    @proxy['foo'].should be_false
   end
 end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb Wed Dec 10 17:34:18 2008
@@ -2,82 +2,78 @@
 
 module Spec
   module Example
-    describe Configuration, :shared => true do
-      before(:each) { @config = Configuration.new }
-    end
-
-    describe Configuration, "#use_transactional_fixtures" do
-      it_should_behave_like "Spec::Example::Configuration"
+    describe Configuration do
 
-      it "should return Test::Unit::TestCase.use_transactional_fixtures" do
-        @config.use_transactional_fixtures.should == Test::Unit::TestCase.use_transactional_fixtures
+      def config
+        @config ||= Configuration.new
       end
 
-      it "should set Test::Unit::TestCase.use_transactional_fixtures to false" do
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.should_receive(:use_transactional_fixtures=).with(false)
+      describe "#use_transactional_fixtures" do
+        it "should return #{Spec::Example::Configuration::TEST_CASE}.use_transactional_fixtures" do
+          config.use_transactional_fixtures.should == Spec::Example::Configuration::TEST_CASE.use_transactional_fixtures
         end
-        @config.use_transactional_fixtures = false
-      end
 
-      it "should set Test::Unit::TestCase.use_transactional_fixtures to true" do
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.should_receive(:use_transactional_fixtures=).with(true)
+        it "should set #{Spec::Example::Configuration::TEST_CASE}.use_transactional_fixtures to false" do
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.should_receive(:use_transactional_fixtures=).with(false)
+          end
+          config.use_transactional_fixtures = false
         end
-        @config.use_transactional_fixtures = true
-      end
-    end
-
-    describe Configuration, "#use_instantiated_fixtures" do
-      it_should_behave_like "Spec::Example::Configuration"
-
-      it "should return Test::Unit::TestCase.use_transactional_fixtures" do
-        @config.use_instantiated_fixtures.should == Test::Unit::TestCase.use_instantiated_fixtures
-      end
 
-      it "should set Test::Unit::TestCase.use_instantiated_fixtures to false" do
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.should_receive(:use_instantiated_fixtures=).with(false)
+        it "should set #{Spec::Example::Configuration::TEST_CASE}.use_transactional_fixtures to true" do
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.should_receive(:use_transactional_fixtures=).with(true)
+          end
+          config.use_transactional_fixtures = true
         end
-        @config.use_instantiated_fixtures = false
       end
 
-      it "should set Test::Unit::TestCase.use_instantiated_fixtures to true" do
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.should_receive(:use_instantiated_fixtures=).with(true)
+      describe "#use_instantiated_fixtures" do
+        it "should return #{Spec::Example::Configuration::TEST_CASE}.use_transactional_fixtures" do
+          config.use_instantiated_fixtures.should == Spec::Example::Configuration::TEST_CASE.use_instantiated_fixtures
         end
-        @config.use_instantiated_fixtures = true
-      end
-    end
 
-    describe Configuration, "#fixture_path" do
-      it_should_behave_like "Spec::Example::Configuration"
+        it "should set #{Spec::Example::Configuration::TEST_CASE}.use_instantiated_fixtures to false" do
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.should_receive(:use_instantiated_fixtures=).with(false)
+          end
+          config.use_instantiated_fixtures = false
+        end
 
-      it "should default to RAILS_ROOT + '/spec/fixtures'" do
-        @config.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
+        it "should set #{Spec::Example::Configuration::TEST_CASE}.use_instantiated_fixtures to true" do
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.should_receive(:use_instantiated_fixtures=).with(true)
+          end
+          config.use_instantiated_fixtures = true
         end
       end
 
-      it "should set fixture_path" do
-        @config.fixture_path = "/new/path"
-        @config.fixture_path.should == "/new/path"
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.fixture_path.should == "/new/path"
+      describe "#fixture_path" do
+        it "should default to RAILS_ROOT + '/spec/fixtures'" do
+          config.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
+          end
         end
-      end
-    end
 
-    describe Configuration, "#global_fixtures" do
-      it_should_behave_like "Spec::Example::Configuration"
+        it "should set fixture_path" do
+          config.fixture_path = "/new/path"
+          config.fixture_path.should == "/new/path"
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.fixture_path.should == "/new/path"
+          end
+        end
+      end
 
-      it "should set fixtures on TestCase" do
-        Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
-          example_group.should_receive(:fixtures).with(:blah)
+      describe "#global_fixtures" do
+        it "should set fixtures on TestCase" do
+          Configuration::EXAMPLE_GROUP_CLASSES.each do |example_group|
+            example_group.should_receive(:fixtures).with(:blah)
+          end
+          config.global_fixtures = [:blah]
         end
-        @config.global_fixtures = [:blah]
       end
+      
     end
   end
 end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb Wed Dec 10 17:34:18 2008
@@ -5,7 +5,9 @@
   describe "A controller example running in #{mode} mode", :type => :controller do
     controller_name :controller_spec
     integrate_views if mode == 'integration'
-  
+    
+    specify "this example should be pending, not an error"
+    
     it "should provide controller.session as session" do
       get 'action_with_template'
       session.should equal(controller.session)
@@ -38,24 +40,24 @@
       response.should render_template("_partial")
     end
     
-    it "should allow specifying a partial with expect_render" do
-      controller.expect_render(:partial => "controller_spec/partial")
+    it "should allow specifying a partial with should_receive(:render)" do
+      controller.should_receive(:render).with(:partial => "controller_spec/partial")
       get 'action_with_partial'
     end
     
-    it "should allow specifying a partial with expect_render with object" do
-      controller.expect_render(:partial => "controller_spec/partial", :object => "something")
+    it "should allow specifying a partial with should_receive(:render) with object" do
+      controller.should_receive(:render).with(:partial => "controller_spec/partial", :object => "something")
       get 'action_with_partial_with_object', :thing => "something"
     end
     
-    it "should allow specifying a partial with expect_render with locals" do
-      controller.expect_render(:partial => "controller_spec/partial", :locals => {:thing => "something"})
+    it "should allow specifying a partial with should_receive(:render) with locals" do
+      controller.should_receive(:render).with(:partial => "controller_spec/partial", :locals => {:thing => "something"})
       get 'action_with_partial_with_locals', :thing => "something"
     end
     
     it "should yield to render :update" do
       template = stub("template")
-      controller.expect_render(:update).and_yield(template)
+      controller.should_receive(:render).with(:update).and_yield(template)
       template.should_receive(:replace).with(:bottom, "replace_me", :partial => "non_existent_partial")
       get 'action_with_render_update'
     end
@@ -87,6 +89,71 @@
       end.should_not raise_error
     end
 
+    describe "handling should_receive(:render)" do
+      it "should warn" do
+        controller.should_receive(:render).with(:template => "controller_spec/action_with_template")
+        get :action_with_template
+      end
+    end
+    
+    describe "handling should_not_receive(:render)" do
+      it "should warn" do
+        controller.should_not_receive(:render).with(:template => "the/wrong/template")
+        get :action_with_template
+      end
+    end
+    
+    describe "handling deprecated expect_render" do
+      it "should warn" do
+        Kernel.should_receive(:warn).with(/expect_render is deprecated/)
+        controller.expect_render(:template => "controller_spec/action_with_template")
+        get :action_with_template
+      end
+    end
+    
+    describe "handling deprecated stub_render" do
+      it "should warn" do
+        Kernel.should_receive(:warn).with(/stub_render is deprecated/)
+        controller.stub_render(:template => "controller_spec/action_with_template")
+        get :action_with_template
+      end
+    end
+    
+    describe "setting cookies in the request" do
+    
+      it "should support a String key" do
+        cookies['cookie_key'] = 'cookie value'
+        get 'action_which_gets_cookie', :expected => "cookie value"
+      end
+
+      it "should support a Symbol key" do
+        cookies[:cookie_key] = 'cookie value'
+        get 'action_which_gets_cookie', :expected => "cookie value"
+      end
+      
+      if Rails::VERSION::STRING >= "2.0.0"
+        it "should support a Hash value" do
+          cookies[:cookie_key] = {'value' => 'cookie value', 'path' => '/not/default'}
+          get 'action_which_gets_cookie', :expected => {'value' => 'cookie value', 'path' => '/not/default'}
+        end
+      end
+      
+    end
+  
+    describe "reading cookies from the response" do
+  
+      it "should support a Symbol key" do
+        get 'action_which_sets_cookie', :value => "cookie value"
+        cookies[:cookie_key].value.should == ["cookie value"]
+      end
+
+      it "should support a String key" do
+        get 'action_which_sets_cookie', :value => "cookie value"
+        cookies['cookie_key'].value.should == ["cookie value"]
+      end
+    
+    end
+
     it "should support custom routes" do
       route_for(:controller => "custom_route_spec", :action => "custom_route").should == "/custom_route"
     end
@@ -108,22 +175,9 @@
       assigns[:indirect_assigns_key].should == :indirect_assigns_key_value
     end
     
-    it "should expose the assigns hash directly" do
-      get 'action_setting_the_assigns_hash'
-      assigns[:direct_assigns_key].should == :direct_assigns_key_value
-    end
-    
-    it "should complain when calling should_receive(:render) on the controller" do
-      lambda {
-        controller.should_receive(:render)
-      }.should raise_error(RuntimeError, /should_receive\(:render\) has been disabled/)
-    end
-
-    it "should complain when calling stub!(:render) on the controller" do
-      controller.extend Spec::Mocks::Methods
-      lambda {
-        controller.stub!(:render)
-      }.should raise_error(RuntimeError, /stub!\(:render\) has been disabled/)
+    it "should expose instance vars through the assigns hash that are set to false" do
+      get 'action_that_assigns_false_to_a_variable'
+      assigns[:a_variable].should be_false
     end
     
     it "should NOT complain when calling should_receive with arguments other than :render" do
@@ -132,6 +186,12 @@
         controller.rspec_verify
       }.should raise_error(Exception, /expected :anything_besides_render/)
     end
+    
+    it "should not run a skipped before_filter" do
+      lambda {
+        get 'action_with_skipped_before_filter'
+      }.should_not raise_error
+    end
   end
 
   describe "Given a controller spec for RedirectSpecController running in #{mode} mode", :type => :controller do
@@ -172,6 +232,19 @@
   
 end
 
+['integration', 'isolation'].each do |mode|
+  describe "A controller example running in #{mode} mode", :type => :controller do
+    controller_name :controller_inheriting_from_application_controller
+    integrate_views if mode == 'integration'
+    
+    it "should only have a before filter inherited from ApplicationController run once..." do
+      controller.should_receive(:i_should_only_be_run_once).once
+      get :action_with_inherited_before_filter
+    end
+  end
+end
+
+
 describe ControllerSpecController, :type => :controller do
   it "should not require naming the controller if describe is passed a type" do
   end  

Added: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb?rev=725524&view=auto
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb (added)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/cookies_proxy_spec.rb Wed Dec 10 17:34:18 2008
@@ -0,0 +1,74 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+class CookiesProxyExamplesController < ActionController::Base
+  def index
+    cookies[:key] = cookies[:key]
+  end
+end
+
+module Spec
+  module Rails
+    module Example
+      describe CookiesProxy, :type => :controller do
+        controller_name :cookies_proxy_examples
+      
+        describe "with a String key" do
+        
+          it "should accept a String value" do
+            cookies = CookiesProxy.new(self)
+            cookies['key'] = 'value'
+            get :index
+            cookies['key'].should == ['value']
+          end
+          
+          if Rails::VERSION::STRING >= "2.0.0"
+            it "should accept a Hash value" do
+              cookies = CookiesProxy.new(self)
+              cookies['key'] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
+              get :index
+              cookies['key'].should == ['value']
+              cookies['key'].value.should == ['value']
+              cookies['key'].expires.should == expiration
+              cookies['key'].path.should == path
+            end
+          end
+            
+        end
+      
+        describe "with a Symbol key" do
+        
+          it "should accept a String value" do
+            example_cookies = CookiesProxy.new(self)
+            example_cookies[:key] = 'value'
+            get :index
+            example_cookies[:key].should == ['value']
+          end
+
+          if Rails::VERSION::STRING >= "2.0.0"
+            it "should accept a Hash value" do
+              example_cookies = CookiesProxy.new(self)
+              example_cookies[:key] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
+              get :index
+              example_cookies[:key].should == ['value']
+              example_cookies[:key].value.should == ['value']
+              example_cookies[:key].expires.should == expiration
+              example_cookies[:key].path.should == path
+            end
+          end
+
+        end
+    
+        describe "#delete" do
+          it "should delete from the response cookies" do
+            example_cookies = CookiesProxy.new(self)
+            response_cookies = mock('cookies')
+            response.should_receive(:cookies).and_return(response_cookies)
+            response_cookies.should_receive(:delete).with('key')
+            example_cookies.delete :key
+          end
+        end
+      end
+    
+    end
+  end
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb Wed Dec 10 17:34:18 2008
@@ -130,6 +130,19 @@
           helper.protect_against_forgery?.should be_false
         end
       end
+      
+      describe HelperExampleGroup, "#assigns", :type => :helper do
+        helper_name :addition
+        it "should expose variables to helper" do
+          assigns[:addend] = 3
+          helper.plus(4).should == 7
+        end
+
+        it "should make helper ivars available in example" do
+          assigns[:addend] = 3
+          assigns[:addend].should == 3
+        end
+      end
     end
   end
 end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb Wed Dec 10 17:34:18 2008
@@ -82,14 +82,14 @@
     response.should have_tag('div', "This is text from a method in the ApplicationHelper")
   end
   
-  it "should pass expect_render with the right partial" do
-    template.expect_render(:partial => 'partial')
+  it "should pass should_receive(:render) with the right partial" do
+    template.should_receive(:render).with(:partial => 'partial')
     render!
     template.verify_rendered
   end
   
-  it "should fail expect_render with the wrong partial" do
-    template.expect_render(:partial => 'non_existent')
+  it "should fail should_receive(:render) with the wrong partial" do
+    template.should_receive(:render).with(:partial => 'non_existent')
     render!
     begin
       template.verify_rendered
@@ -99,14 +99,14 @@
     end
   end
   
-  it "should pass expect_render when a partial is expected twice and happens twice" do
-    template.expect_render(:partial => 'partial_used_twice').twice
+  it "should pass should_receive(:render) when a partial is expected twice and happens twice" do
+    template.should_receive(:render).with(:partial => 'partial_used_twice').twice
     render!
     template.verify_rendered
   end
   
-  it "should pass expect_render when a partial is expected once and happens twice" do
-    template.expect_render(:partial => 'partial_used_twice')
+  it "should pass should_receive(:render) when a partial is expected once and happens twice" do
+    template.should_receive(:render).with(:partial => 'partial_used_twice')
     render!
     begin
       template.verify_rendered
@@ -116,17 +116,17 @@
     end
   end
   
-  it "should fail expect_render with the right partial but wrong options" do
-    template.expect_render(:partial => 'partial', :locals => {:thing => Object.new})
+  it "should fail should_receive(:render) with the right partial but wrong options" do
+    template.should_receive(:render).with(:partial => 'partial', :locals => {:thing => Object.new})
     render!
     lambda {template.verify_rendered}.should raise_error(Spec::Mocks::MockExpectationError)
   end
 end
 
 describe "A partial that includes a partial", :type => :view do
-  it "should support expect_render with nested partial" do
+  it "should support should_receive(:render) with nested partial" do
     obj = Object.new
-    template.expect_render(:partial => 'partial', :object => obj)
+    template.should_receive(:render).with(:partial => 'partial', :object => obj)
     render :partial => "view_spec/partial_with_sub_partial", :locals => { :partial => obj }
   end
 end
@@ -141,7 +141,7 @@
   end
 
   it "should render the partial" do
-    template.expect_render(:partial => 'partial',
+    template.should_receive(:render).with(:partial => 'partial',
                :collection => ['Alice', 'Bob'],
                :spacer_template => 'spacer')
     render "view_spec/template_with_partial_using_collection"
@@ -149,37 +149,19 @@
 
 end
 
-describe "A view that includes a partial using an array as partial_path", :type => :view do
-  before(:each) do
-    module ActionView::Partials
-      def render_template_with_partial_with_array_support(partial_path, local_assigns = nil, deprecated_local_assigns = nil)
-        if partial_path.is_a?(Array)
-          "Array Partial"
-        else
-          render_partial_without_array_support(partial_path, local_assigns, deprecated_local_assigns)
-        end
-      end
-
-      alias :render_partial_without_array_support :render_partial
-      alias :render_partial :render_template_with_partial_with_array_support
+if Rails::VERSION::MAJOR >= 2
+  describe "A view that includes a partial using an array as partial_path", :type => :view do
+    before(:each) do
+      renderable_object = Object.new
+      renderable_object.stub!(:name).and_return("Renderable Object")
+      assigns[:array] = [renderable_object]
     end
 
-    @array = ['Alice', 'Bob']
-    assigns[:array] = @array
-  end
-
-  after(:each) do
-    module ActionView::Partials
-      alias :render_template_with_partial_with_array_support :render_partial
-      alias :render_partial :render_partial_without_array_support
-      undef render_template_with_partial_with_array_support
+    it "should render the array passed through to render_partial without modification" do
+      render "view_spec/template_with_partial_with_array" 
+      response.body.should match(/^Renderable Object$/)
     end
   end
-
-  it "should render have the array passed through to render_partial without modification" do
-    render "view_spec/template_with_partial_with_array" 
-    response.body.should match(/^Array Partial$/)
-  end
 end
 
 describe "Different types of renders (not :template)", :type => :view do
@@ -239,6 +221,20 @@
   end
 end
 
+describe "a block helper", :type => :view do
+  it "should not yield when not told to in the example" do
+    template.should_receive(:if_allowed)
+    render "view_spec/block_helper"
+    response.should_not have_tag("div","block helper was rendered")
+  end
+
+  it "should yield when told to in the example" do
+    template.should_receive(:if_allowed).and_yield
+    render "view_spec/block_helper"
+    response.should have_tag("div","block helper was rendered")
+  end
+end
+
 describe "render :inline => ...", :type => :view do
   it "should render ERB right in the spec" do
     render :inline => %|<%= text_field_tag('field_name', 'Value') %>|
@@ -246,6 +242,34 @@
   end
 end
 
+describe "render 'view_spec/foo/show.rhtml'", :type => :view do
+  it "should derive action name using the first part of the template name" do
+    render 'view_spec/foo/show.rhtml'
+    request.path_parameters[:action].should == 'show'
+  end
+end
+
+describe "setting path parameters", :type => :view do
+  describe "(controller)" do
+    it "should supercede the default path parameters" do
+      render "view_spec/entry_form", :path_parameters => {:controller => 'foo'}
+      request.path_parameters[:controller].should == 'foo'
+    end
+  end
+  describe "(action)" do
+    it "should supercede the default path parameters" do
+      render "view_spec/entry_form", :path_parameters => {:action => 'foo'}
+      request.path_parameters[:action].should == 'foo'
+    end
+  end
+  describe "(something arbitrary)" do
+    it "should supercede the default path parameters" do
+      render "view_spec/entry_form", :path_parameters => {:foo => 'bar'}
+      request.path_parameters[:foo].should == 'bar'
+    end
+  end
+end
+
 module Spec
   module Rails
     module Example
@@ -270,3 +294,15 @@
     end
   end
 end
+
+describe "bug http://rspec.lighthouseapp.com/projects/5645/tickets/510", :type => :view do
+  describe "a view example with should_not_receive" do
+    it "should render the view" do
+      obj = mock('model')
+      obj.should_receive(:render_partial?).and_return false
+      assigns[:obj] = obj
+      template.should_not_receive(:render).with(:partial => 'some_partial')
+      render "view_spec/should_not_receive"
+    end
+  end
+end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb Wed Dec 10 17:34:18 2008
@@ -3,44 +3,44 @@
 
 describe ActionView::Base, "with RSpec extensions:", :type => :view do 
   
-  describe "expect_render" do
+  describe "should_receive(:render)" do
     it "should not raise when render has been received" do
-      template.expect_render(:partial => "name")
+      template.should_receive(:render).with(:partial => "name")
       template.render :partial => "name"
     end
   
     it "should raise when render has NOT been received" do
-      template.expect_render(:partial => "name")
+      template.should_receive(:render).with(:partial => "name")
       lambda {
         template.verify_rendered
       }.should raise_error
     end
     
     it "should return something (like a normal mock)" do
-      template.expect_render(:partial => "name").and_return("Little Johnny")
+      template.should_receive(:render).with(:partial => "name").and_return("Little Johnny")
       result = template.render :partial => "name"
       result.should == "Little Johnny"
     end
   end
   
-  describe "stub_render" do
+  describe "stub!(:render)" do
     it "should not raise when stubbing and render has been received" do
-      template.stub_render(:partial => "name")
+      template.stub!(:render).with(:partial => "name")
       template.render :partial => "name"
     end
   
     it "should not raise when stubbing and render has NOT been received" do
-      template.stub_render(:partial => "name")
+      template.stub!(:render).with(:partial => "name")
     end
   
     it "should not raise when stubbing and render has been received with different options" do
-      template.stub_render(:partial => "name")
+      template.stub!(:render).with(:partial => "name")
       template.render :partial => "view_spec/spacer"
     end
 
     it "should not raise when stubbing and expecting and render has been received" do
-      template.stub_render(:partial => "name")
-      template.expect_render(:partial => "name")
+      template.stub!(:render).with(:partial => "name")
+      template.should_receive(:render).with(:partial => "name")
       template.render(:partial => "name")
     end
   end

Added: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb?rev=725524&view=auto
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb (added)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/interop/testcase_spec.rb Wed Dec 10 17:34:18 2008
@@ -0,0 +1,66 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+
+if ActiveSupport.const_defined?(:Callbacks) && Test::Unit::TestCase.include?(ActiveSupport::Callbacks)
+
+  class TestUnitTesting < Test::Unit::TestCase
+    @@setup_callback_count = 0
+    @@setup_method_count = 0
+    @@teardown_callback_count = 0
+    @@teardown_method_count = 0
+    cattr_accessor :setup_callback_count, :setup_method_count, :teardown_callback_count, :teardown_method_count
+    
+    setup :do_some_setup
+    teardown :do_some_teardown
+    
+    @@has_been_run = false
+    def self.run?
+      @@has_been_run
+    end
+    
+    def do_some_setup
+      @@setup_callback_count += 1
+    end
+    
+    def setup
+      @@setup_method_count += 1
+    end
+    
+    def test_something
+      assert_equal true, true
+      @@has_been_run = true
+    end
+    
+    def teardown
+      @@teardown_method_count += 1
+    end
+    
+    def do_some_teardown
+      @@teardown_callback_count += 1
+    end
+  end
+
+  module Test
+    module Unit
+      describe "Running TestCase tests" do
+        before(:all) do
+          TestUnitTesting.run unless TestUnitTesting.run?
+        end
+        
+        it "should call the setup callbacks" do
+          TestUnitTesting.setup_callback_count.should == 1
+        end
+        it "should still only call the normal setup method once" do
+          TestUnitTesting.setup_method_count.should == 1
+        end
+        it "should call the teardown callbacks" do
+          TestUnitTesting.teardown_callback_count.should == 1
+        end
+        it "should still only call the normal teardown method once" do
+          TestUnitTesting.teardown_method_count.should == 1
+        end
+      end
+    end
+  end
+  
+end
\ No newline at end of file

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb Wed Dec 10 17:34:18 2008
@@ -601,9 +601,6 @@
       with_tag("div", 1)
       with_tag("#1")
     end
-    lambda {
-      response.should have_rjs(:insert, :top, "test2")
-    }.should raise_error(SpecFailed)
     response.should have_rjs(:insert, :bottom) {|rjs|
       with_tag("div", 1)
       with_tag("#2")
@@ -629,6 +626,17 @@
       with_tag("#4")
     }
   end
+  
+  it "should find rjs using :insert (positioned)" do
+    pending("await fix for http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/982")
+    render_rjs do |page|
+      page.insert_html :top, "test1", "<div id=\"1\">foo</div>"
+      page.insert_html :bottom, "test2", "<div id=\"2\">bar</div>"
+    end
+    lambda {
+      response.should have_rjs(:insert, :top, "test2")
+    }.should raise_error(SpecFailed)
+  end
 end
 
 describe "send_email behaviour_type", :type => :controller do

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb Wed Dec 10 17:34:18 2008
@@ -1,13 +1,25 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe "error_on" do
-  it "should provide a message including the name of what the error is on" do
+  it "should provide a description including the name of what the error is on" do
     have(1).error_on(:whatever).description.should == "should have 1 error on :whatever"
   end
+  
+  it "should provide a failure message including the number actually given" do
+    lambda {
+      [].should have(1).error_on(:whatever)
+    }.should fail_with("expected 1 error on :whatever, got 0")
+  end
 end
 
 describe "errors_on" do
-  it "should provide a message including the name of what the error is on" do
+  it "should provide a description including the name of what the error is on" do
     have(2).errors_on(:whatever).description.should == "should have 2 errors on :whatever"
   end
-end
+  
+  it "should provide a failure message including the number actually given" do
+    lambda {
+      [1].should have(3).errors_on(:whatever)
+    }.should fail_with("expected 3 errors on :whatever, got 1")
+  end
+end
\ No newline at end of file

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb Wed Dec 10 17:34:18 2008
@@ -40,30 +40,24 @@
         response.should include_text('text for this')
       end
 
-      it "should fail with matching text" do
+      it "should fail with incorrect text" do
         post 'text_action'
         lambda {
-          response.should include_text("this is NOT the text for this action")
-        }.should fail_with("expected to find \"this is NOT the text for this action\" in \"this is the text for this action\"")
-      end
-
-      it "should fail when a template is rendered" do
-        post 'some_action'
-        failure_message = case mode
-        when 'isolation'
-          /expected to find \"this is the text for this action\" in \"render_spec\/some_action\"/
-        when 'integration'
-          /expected to find \"this is the text for this action\" in \"\"/
-        end
-        lambda {
-          response.should include_text("this is the text for this action")
-        }.should fail_with(failure_message)
+          response.should include_text("the accordian guy")
+        }.should fail_with("expected to find \"the accordian guy\" in \"this is the text for this action\"")
       end
 
       it "should pass using should_not with incorrect text" do
         post 'text_action'
         response.should_not include_text("the accordian guy")
       end
+
+      it "should fail when a template is rendered" do
+        get 'some_action'
+        lambda {
+          response.should include_text("this is the text for this action")
+        }.should fail_with(/expected to find \"this is the text for this action\"/)
+      end
     end
   end
 end

Modified: incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb
URL: http://svn.apache.org/viewvc/incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb?rev=725524&r1=725523&r2=725524&view=diff
==============================================================================
--- incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb (original)
+++ incubator/olio/webapp/rails/trunk/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb Wed Dec 10 17:34:18 2008
@@ -6,7 +6,7 @@
       integrate_views
     end
     controller_name :redirect_spec
-  
+    
     it "redirected to another action" do
       get 'action_with_redirect_to_somewhere'
       response.should redirect_to(:action => 'somewhere')