rspec-rails 1.2.4 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.rdoc +12 -0
- data/Manifest.txt +1 -2
- data/Rakefile +2 -2
- data/generators/rspec/templates/rspec.rake +2 -2
- data/generators/rspec_scaffold/templates/controller_spec.rb +6 -6
- data/lib/spec/rails/example/view_example_group.rb +13 -0
- data/lib/spec/rails/matchers/assert_select.rb +45 -11
- data/lib/spec/rails/spec_server.rb +6 -1
- data/lib/spec/rails/version.rb +1 -1
- data/spec/resources/views/view_spec/view_helpers.html.erb +1 -0
- data/spec/spec/rails/example/view_example_group_spec.rb +14 -0
- data/spec/spec/rails/matchers/assert_select_spec.rb +26 -0
- metadata +32 -10
- metadata.gz.sig +1 -0
- data/features/transactions/transactions_should_rollback.feature +0 -16
- data/lib/spec/rails/story_adapter.rb +0 -79
    
        data.tar.gz.sig
    ADDED
    
    | Binary file | 
    
        data/History.rdoc
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
| 1 | 
            +
            === Version 1.2.5 / 2009-04-29
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * enhancements
         | 
| 4 | 
            +
              * support :xml and :strict config options for have_tag matcher (patch from
         | 
| 5 | 
            +
                Peer Allan and Max Murphy). Closes #783.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * bug fixes
         | 
| 8 | 
            +
              * Fixed a small typo that makes rake stats fail (José Valim). Closes #802.
         | 
| 9 | 
            +
              * link_to and friends are available to ViewExampleGroup again
         | 
| 10 | 
            +
                (J.B. Rainsberger). Closes #787.
         | 
| 11 | 
            +
              * spec_server works correctly with rails 2.3 again (Neil Buckley). Closes #759.
         | 
| 12 | 
            +
             | 
| 1 13 | 
             
            === Version 1.2.4 / 2009-03-13
         | 
| 2 14 |  | 
| 3 15 | 
             
            No changes in this release, but aligns with the rspec-1.2.4 release. Someday
         | 
    
        data/Manifest.txt
    CHANGED
    
    | @@ -8,7 +8,6 @@ TODO.txt | |
| 8 8 | 
             
            Upgrade.rdoc
         | 
| 9 9 | 
             
            features/step_definitions/people.rb
         | 
| 10 10 | 
             
            features/support/env.rb
         | 
| 11 | 
            -
            features/transactions/transactions_should_rollback.feature
         | 
| 12 11 | 
             
            generators/rspec/CHANGES
         | 
| 13 12 | 
             
            generators/rspec/rspec_generator.rb
         | 
| 14 13 | 
             
            generators/rspec/templates/previous_failures.txt
         | 
| @@ -71,7 +70,6 @@ lib/spec/rails/matchers/redirect_to.rb | |
| 71 70 | 
             
            lib/spec/rails/matchers/render_template.rb
         | 
| 72 71 | 
             
            lib/spec/rails/mocks.rb
         | 
| 73 72 | 
             
            lib/spec/rails/spec_server.rb
         | 
| 74 | 
            -
            lib/spec/rails/story_adapter.rb
         | 
| 75 73 | 
             
            lib/spec/rails/version.rb
         | 
| 76 74 | 
             
            spec/autotest/mappings_spec.rb
         | 
| 77 75 | 
             
            spec/rails_suite.rb
         | 
| @@ -132,6 +130,7 @@ spec/resources/views/view_spec/should_not_receive.html.erb | |
| 132 130 | 
             
            spec/resources/views/view_spec/template_with_partial.html.erb
         | 
| 133 131 | 
             
            spec/resources/views/view_spec/template_with_partial_using_collection.html.erb
         | 
| 134 132 | 
             
            spec/resources/views/view_spec/template_with_partial_with_array.html.erb
         | 
| 133 | 
            +
            spec/resources/views/view_spec/view_helpers.html.erb
         | 
| 135 134 | 
             
            spec/spec/rails/example/assigns_hash_proxy_spec.rb
         | 
| 136 135 | 
             
            spec/spec/rails/example/configuration_spec.rb
         | 
| 137 136 | 
             
            spec/spec/rails/example/controller_example_group_spec.rb
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -13,7 +13,7 @@ Hoe.new('rspec-rails', Spec::Rails::VERSION::STRING) do |p| | |
| 13 13 | 
             
              p.description = "Behaviour Driven Development for Ruby on Rails."
         | 
| 14 14 | 
             
              p.rubyforge_name = 'rspec'
         | 
| 15 15 | 
             
              p.developer('RSpec Development Team', 'rspec-devel@rubyforge.org')
         | 
| 16 | 
            -
              p.extra_deps = [["rspec","1.2. | 
| 16 | 
            +
              p.extra_deps = [["rspec","1.2.5"],["rack",">=0.4.0"]]
         | 
| 17 17 | 
             
              p.extra_dev_deps = [["cucumber",">= 0.2.2"]]
         | 
| 18 18 | 
             
              p.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}"
         | 
| 19 19 | 
             
              p.history_file = 'History.rdoc'
         | 
| @@ -65,7 +65,7 @@ Cucumber::Rake::Task.new | |
| 65 65 | 
             
            task :default => [:features]
         | 
| 66 66 |  | 
| 67 67 | 
             
            namespace :update do
         | 
| 68 | 
            -
              desc "update the  | 
| 68 | 
            +
              desc "update the manifest"
         | 
| 69 69 | 
             
              task :manifest do
         | 
| 70 70 | 
             
                system %q[touch Manifest.txt; rake check_manifest | grep -v "(in " | patch]
         | 
| 71 71 | 
             
              end
         | 
| @@ -98,7 +98,7 @@ namespace :spec do | |
| 98 98 | 
             
                ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
         | 
| 99 99 | 
             
                ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
         | 
| 100 100 | 
             
                ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
         | 
| 101 | 
            -
                ::STATS_DIRECTORIES << %w(Routing\ specs spec/ | 
| 101 | 
            +
                ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
         | 
| 102 102 | 
             
                ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
         | 
| 103 103 | 
             
                ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
         | 
| 104 104 | 
             
                ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
         | 
| @@ -162,4 +162,4 @@ namespace :spec do | |
| 162 162 | 
             
              end
         | 
| 163 163 | 
             
            end
         | 
| 164 164 |  | 
| 165 | 
            -
            end
         | 
| 165 | 
            +
            end
         | 
| @@ -8,7 +8,7 @@ describe <%= controller_class_name %>Controller do | |
| 8 8 |  | 
| 9 9 | 
             
              describe "GET index" do
         | 
| 10 10 | 
             
                it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do
         | 
| 11 | 
            -
                  <%= class_name %>. | 
| 11 | 
            +
                  <%= class_name %>.stub!(:find).with(:all).and_return([mock_<%= file_name %>])
         | 
| 12 12 | 
             
                  get :index
         | 
| 13 13 | 
             
                  assigns[:<%= table_name %>].should == [mock_<%= file_name %>]
         | 
| 14 14 | 
             
                end
         | 
| @@ -16,7 +16,7 @@ describe <%= controller_class_name %>Controller do | |
| 16 16 |  | 
| 17 17 | 
             
              describe "GET show" do
         | 
| 18 18 | 
             
                it "assigns the requested <%= file_name %> as @<%= file_name %>" do
         | 
| 19 | 
            -
                  <%= class_name %>. | 
| 19 | 
            +
                  <%= class_name %>.stub!(:find).with("37").and_return(mock_<%= file_name %>)
         | 
| 20 20 | 
             
                  get :show, :id => "37"
         | 
| 21 21 | 
             
                  assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
         | 
| 22 22 | 
             
                end
         | 
| @@ -24,7 +24,7 @@ describe <%= controller_class_name %>Controller do | |
| 24 24 |  | 
| 25 25 | 
             
              describe "GET new" do
         | 
| 26 26 | 
             
                it "assigns a new <%= file_name %> as @<%= file_name %>" do
         | 
| 27 | 
            -
                  <%= class_name %>. | 
| 27 | 
            +
                  <%= class_name %>.stub!(:new).and_return(mock_<%= file_name %>)
         | 
| 28 28 | 
             
                  get :new
         | 
| 29 29 | 
             
                  assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
         | 
| 30 30 | 
             
                end
         | 
| @@ -32,7 +32,7 @@ describe <%= controller_class_name %>Controller do | |
| 32 32 |  | 
| 33 33 | 
             
              describe "GET edit" do
         | 
| 34 34 | 
             
                it "assigns the requested <%= file_name %> as @<%= file_name %>" do
         | 
| 35 | 
            -
                  <%= class_name %>. | 
| 35 | 
            +
                  <%= class_name %>.stub!(:find).with("37").and_return(mock_<%= file_name %>)
         | 
| 36 36 | 
             
                  get :edit, :id => "37"
         | 
| 37 37 | 
             
                  assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
         | 
| 38 38 | 
             
                end
         | 
| @@ -42,7 +42,7 @@ describe <%= controller_class_name %>Controller do | |
| 42 42 |  | 
| 43 43 | 
             
                describe "with valid params" do
         | 
| 44 44 | 
             
                  it "assigns a newly created <%= file_name %> as @<%= file_name %>" do
         | 
| 45 | 
            -
                    <%= class_name %>. | 
| 45 | 
            +
                    <%= class_name %>.stub!(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => true))
         | 
| 46 46 | 
             
                    post :create, :<%= file_name %> => {:these => 'params'}
         | 
| 47 47 | 
             
                    assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
         | 
| 48 48 | 
             
                  end
         | 
| @@ -70,7 +70,7 @@ describe <%= controller_class_name %>Controller do | |
| 70 70 |  | 
| 71 71 | 
             
              end
         | 
| 72 72 |  | 
| 73 | 
            -
              describe "PUT  | 
| 73 | 
            +
              describe "PUT update" do
         | 
| 74 74 |  | 
| 75 75 | 
             
                describe "with valid params" do
         | 
| 76 76 | 
             
                  it "updates the requested <%= file_name %>" do
         | 
| @@ -47,6 +47,19 @@ module Spec | |
| 47 47 | 
             
                  #     end
         | 
| 48 48 | 
             
                  #   end
         | 
| 49 49 | 
             
                  class ViewExampleGroup < FunctionalExampleGroup
         | 
| 50 | 
            +
                    if ActionView::Base.respond_to?(:load_helpers) # Rails 2.0.x
         | 
| 51 | 
            +
                      ActionView::Helpers.constants.each do |name|
         | 
| 52 | 
            +
                        const = ActionView::Helpers.const_get(name)
         | 
| 53 | 
            +
                        include const if name.include?("Helper") && Module === const
         | 
| 54 | 
            +
                      end
         | 
| 55 | 
            +
                    elsif ActionView::Base.respond_to?(:helper_modules) # Rails 2.1.x
         | 
| 56 | 
            +
                      ActionView::Base.helper_modules.each do |helper_module|
         | 
| 57 | 
            +
                        include helper_module
         | 
| 58 | 
            +
                      end
         | 
| 59 | 
            +
                    else # Rails 2.2.x
         | 
| 60 | 
            +
                      include ActionView::Helpers
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
             | 
| 50 63 | 
             
                    tests ViewExampleGroupController
         | 
| 51 64 | 
             
                    class << self
         | 
| 52 65 | 
             
                      def inherited(klass) # :nodoc:
         | 
| @@ -5,11 +5,12 @@ module Spec # :nodoc: | |
| 5 5 | 
             
                module Matchers
         | 
| 6 6 |  | 
| 7 7 | 
             
                  class AssertSelect #:nodoc:
         | 
| 8 | 
            -
                    
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 8 | 
            +
                    attr_reader :options
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                    def initialize(selector_assertion, spec_scope, *args, &block)
         | 
| 11 | 
            +
                      @args, @options = args_and_options(args)
         | 
| 11 12 | 
             
                      @spec_scope = spec_scope
         | 
| 12 | 
            -
                      @ | 
| 13 | 
            +
                      @selector_assertion = selector_assertion
         | 
| 13 14 | 
             
                      @block = block
         | 
| 14 15 | 
             
                    end
         | 
| 15 16 |  | 
| @@ -21,7 +22,7 @@ module Spec # :nodoc: | |
| 21 22 | 
             
                      end
         | 
| 22 23 |  | 
| 23 24 | 
             
                      begin
         | 
| 24 | 
            -
                        @spec_scope.__send__(@ | 
| 25 | 
            +
                        @spec_scope.__send__(@selector_assertion, *@args, &@block)
         | 
| 25 26 | 
             
                        true
         | 
| 26 27 | 
             
                      rescue ::Test::Unit::AssertionFailedError => @error
         | 
| 27 28 | 
             
                        false
         | 
| @@ -35,7 +36,7 @@ module Spec # :nodoc: | |
| 35 36 | 
             
                      {
         | 
| 36 37 | 
             
                        :assert_select => "have tag#{format_args(*@args)}",
         | 
| 37 38 | 
             
                        :assert_select_email => "send email#{format_args(*@args)}",
         | 
| 38 | 
            -
                      }[@ | 
| 39 | 
            +
                      }[@selector_assertion]
         | 
| 39 40 | 
             
                    end
         | 
| 40 41 |  | 
| 41 42 | 
             
                  private
         | 
| @@ -54,11 +55,13 @@ module Spec # :nodoc: | |
| 54 55 |  | 
| 55 56 | 
             
                    def doc_from(response_or_text)
         | 
| 56 57 | 
             
                      response_or_text.extend TestResponseOrString
         | 
| 57 | 
            -
                       | 
| 58 | 
            -
             | 
| 59 | 
            -
                       | 
| 58 | 
            +
                      if response_or_text.test_response?
         | 
| 59 | 
            +
                        HTML::Document.new(response_or_text.body, @options[:strict], @options[:xml]).root
         | 
| 60 | 
            +
                      elsif response_or_text.string?
         | 
| 61 | 
            +
                        HTML::Document.new(response_or_text, @options[:strict], @options[:xml]).root
         | 
| 62 | 
            +
                       end
         | 
| 60 63 | 
             
                    end
         | 
| 61 | 
            -
             | 
| 64 | 
            +
             | 
| 62 65 | 
             
                    def format_args(*args)
         | 
| 63 66 | 
             
                      args.empty? ? "" : "(#{arg_list(*args)})"
         | 
| 64 67 | 
             
                    end
         | 
| @@ -69,6 +72,16 @@ module Spec # :nodoc: | |
| 69 72 | 
             
                      end.join(", ")
         | 
| 70 73 | 
             
                    end
         | 
| 71 74 |  | 
| 75 | 
            +
                    def args_and_options(args)
         | 
| 76 | 
            +
                      opts = {:xml => false, :strict => false}
         | 
| 77 | 
            +
                      if args.last.is_a?(::Hash)
         | 
| 78 | 
            +
                        opts[:strict] = args.last.delete(:strict) unless args.last[:strict].nil?
         | 
| 79 | 
            +
                        opts[:xml]    = args.last.delete(:xml)    unless args.last[:xml].nil?
         | 
| 80 | 
            +
                        args.pop if args.last.empty?
         | 
| 81 | 
            +
                      end
         | 
| 82 | 
            +
                      return [args, opts]
         | 
| 83 | 
            +
                    end
         | 
| 84 | 
            +
                    
         | 
| 72 85 | 
             
                  end
         | 
| 73 86 |  | 
| 74 87 | 
             
                  # :call-seq:
         | 
| @@ -78,13 +91,20 @@ module Spec # :nodoc: | |
| 78 91 | 
             
                  # wrapper for assert_select with additional support for using
         | 
| 79 92 | 
             
                  # css selectors to set expectation on Strings. Use this in
         | 
| 80 93 | 
             
                  # helper specs, for example, to set expectations on the results
         | 
| 81 | 
            -
                  # of helper methods.
         | 
| 94 | 
            +
                  # of helper methods. Also allow specification of how the 
         | 
| 95 | 
            +
                  # response is parsed using the options :xml and :strict options.
         | 
| 96 | 
            +
                  # By default, these options are set to false.
         | 
| 82 97 | 
             
                  #
         | 
| 83 98 | 
             
                  # == Examples
         | 
| 84 99 | 
             
                  #
         | 
| 85 100 | 
             
                  #   # in a controller spec
         | 
| 86 101 | 
             
                  #   response.should have_tag("div", "some text")
         | 
| 87 102 | 
             
                  #
         | 
| 103 | 
            +
                  #   # to force xml and/or strict parsing of the response
         | 
| 104 | 
            +
                  #   response.should have_tag("div", "some text", :xml => true)
         | 
| 105 | 
            +
                  #   response.should have_tag("div", "some text", :strict => true)
         | 
| 106 | 
            +
                  #   response.should have_tag("div", "some text", :xml => true, :strict => false)
         | 
| 107 | 
            +
                  #
         | 
| 88 108 | 
             
                  #   # in a helper spec (person_address_tag is a method in the helper)
         | 
| 89 109 | 
             
                  #   person_address_tag.should have_tag("input#person_address")
         | 
| 90 110 | 
             
                  #
         | 
| @@ -101,6 +121,7 @@ module Spec # :nodoc: | |
| 101 121 | 
             
                  #
         | 
| 102 122 | 
             
                  # see documentation for assert_select at http://api.rubyonrails.org/
         | 
| 103 123 | 
             
                  def with_tag(*args, &block)
         | 
| 124 | 
            +
                    args = prepare_args(args, @__current_scope_for_assert_select)
         | 
| 104 125 | 
             
                    @__current_scope_for_assert_select.should have_tag(*args, &block)
         | 
| 105 126 | 
             
                  end
         | 
| 106 127 |  | 
| @@ -112,6 +133,7 @@ module Spec # :nodoc: | |
| 112 133 | 
             
                  #
         | 
| 113 134 | 
             
                  # see documentation for assert_select at http://api.rubyonrails.org/
         | 
| 114 135 | 
             
                  def without_tag(*args, &block)
         | 
| 136 | 
            +
                    args = prepare_args(args, @__current_scope_for_assert_select)
         | 
| 115 137 | 
             
                    @__current_scope_for_assert_select.should_not have_tag(*args, &block)
         | 
| 116 138 | 
             
                  end
         | 
| 117 139 |  | 
| @@ -141,6 +163,18 @@ module Spec # :nodoc: | |
| 141 163 | 
             
                  def with_encoded(*args, &block)
         | 
| 142 164 | 
             
                    should AssertSelect.new(:assert_select_encoded, self, *args, &block)
         | 
| 143 165 | 
             
                  end
         | 
| 166 | 
            +
             | 
| 167 | 
            +
                private
         | 
| 168 | 
            +
                
         | 
| 169 | 
            +
                  def prepare_args(args, current_scope = nil)
         | 
| 170 | 
            +
                    return args if current_scope.nil?
         | 
| 171 | 
            +
                    defaults = current_scope.options || {:strict => false, :xml => false}
         | 
| 172 | 
            +
                    args << {} unless args.last.is_a?(::Hash)
         | 
| 173 | 
            +
                    args.last[:strict] = defaults[:strict] if args.last[:strict].nil?
         | 
| 174 | 
            +
                    args.last[:xml] = defaults[:xml] if args.last[:xml].nil?
         | 
| 175 | 
            +
                    args
         | 
| 176 | 
            +
                  end
         | 
| 177 | 
            +
             | 
| 144 178 | 
             
                end
         | 
| 145 179 | 
             
              end
         | 
| 146 180 | 
             
            end
         | 
| @@ -102,7 +102,12 @@ module Spec | |
| 102 102 | 
             
                      )
         | 
| 103 103 | 
             
                    )
         | 
| 104 104 |  | 
| 105 | 
            -
                     | 
| 105 | 
            +
                    if ::ActionController::Dispatcher.respond_to?(:cleanup_application)
         | 
| 106 | 
            +
                      ::ActionController::Dispatcher.cleanup_application
         | 
| 107 | 
            +
                    else
         | 
| 108 | 
            +
                      dispatcher.cleanup_application
         | 
| 109 | 
            +
                    end
         | 
| 110 | 
            +
                    
         | 
| 106 111 | 
             
                  end
         | 
| 107 112 |  | 
| 108 113 | 
             
                  def in_memory_database?
         | 
    
        data/lib/spec/rails/version.rb
    CHANGED
    
    
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <span><%= link_to "edit", "this_is_the_link" %></span>
         | 
| @@ -333,3 +333,17 @@ describe "bug http://rspec.lighthouseapp.com/projects/5645/tickets/510", :type = | |
| 333 333 | 
             
                end
         | 
| 334 334 | 
             
              end
         | 
| 335 335 | 
             
            end
         | 
| 336 | 
            +
             | 
| 337 | 
            +
            describe "bug https://rspec.lighthouseapp.com/projects/5645/tickets/787", :type => :view do
         | 
| 338 | 
            +
              describe "a view example checking a link" do
         | 
| 339 | 
            +
                it "should have access to link_to" do
         | 
| 340 | 
            +
                  render "view_spec/view_helpers"
         | 
| 341 | 
            +
                  response.body.should include(link_to("edit", "this_is_the_link"))
         | 
| 342 | 
            +
                end
         | 
| 343 | 
            +
             | 
| 344 | 
            +
                it "should use link_to within have_tag" do
         | 
| 345 | 
            +
                  render "view_spec/view_helpers"
         | 
| 346 | 
            +
                  response.body.should have_tag("span", :html => link_to("edit", "this_is_the_link"))
         | 
| 347 | 
            +
                end
         | 
| 348 | 
            +
              end
         | 
| 349 | 
            +
            end
         | 
| @@ -83,6 +83,12 @@ describe "should have_tag", :type => :controller do | |
| 83 83 | 
             
              controller_name :assert_select
         | 
| 84 84 | 
             
              integrate_views
         | 
| 85 85 |  | 
| 86 | 
            +
              it "should not care about the XML setting on HTML with unclosed singletons when using a response" do
         | 
| 87 | 
            +
                render_html %Q{<table id="1"><tr><td><img src="image.png" alt="image">Hello</td></tr><tr><td></td></tr><tr><td>World</td></tr></table>}
         | 
| 88 | 
            +
                response.should have_tag("tr", 3)
         | 
| 89 | 
            +
                response.should have_tag("tr", 3, :xml => true)
         | 
| 90 | 
            +
              end
         | 
| 91 | 
            +
             | 
| 86 92 | 
             
              it "should find specific numbers of elements" do
         | 
| 87 93 | 
             
                render_html %Q{<div id="1"></div><div id="2"></div>}
         | 
| 88 94 | 
             
                response.should have_tag( "div" )
         | 
| @@ -706,6 +712,26 @@ describe "string.should have_tag", :type => :helper do | |
| 706 712 | 
             
                  end
         | 
| 707 713 | 
             
                end.should raise_error(SpecFailed)
         | 
| 708 714 | 
             
              end
         | 
| 715 | 
            +
             | 
| 716 | 
            +
              it "should raise when using an HTML string with unclosed singleton tags when using the XML parsing setting" do
         | 
| 717 | 
            +
                lambda do
         | 
| 718 | 
            +
                  %Q{<table id="1"><tr><td><img src="image.png" alt="image">Hello</td></tr><tr><td></td></tr><tr><td>World</td></tr></table>}.
         | 
| 719 | 
            +
                    should have_tag("tr", 3, :xml => true)
         | 
| 720 | 
            +
                end.should raise_error
         | 
| 721 | 
            +
              end
         | 
| 722 | 
            +
             | 
| 723 | 
            +
              it "should find the specific number of elements regardless of unclosed singletons in a HTML string" do
         | 
| 724 | 
            +
                %Q{<table id="1"><tr><td><img src="image.png" alt="image">Hello</td></tr><tr><td></td></tr><tr><td>World</td></tr></table>}.
         | 
| 725 | 
            +
                  should have_tag("tr", 3)
         | 
| 726 | 
            +
              end
         | 
| 727 | 
            +
             | 
| 728 | 
            +
              it "should find nested tags in an HTML string regardless unclosed singletons" do
         | 
| 729 | 
            +
                %Q{<table id="1"><tr><td><img src="image.png" alt="image">Hello</td></tr><tr><td></td></tr><tr><td>World</td></tr></table>}.
         | 
| 730 | 
            +
                  should have_tag("table") do
         | 
| 731 | 
            +
                    with_tag('tr',3)
         | 
| 732 | 
            +
                end
         | 
| 733 | 
            +
              end
         | 
| 734 | 
            +
             | 
| 709 735 | 
             
            end
         | 
| 710 736 |  | 
| 711 737 | 
             
            describe "have_tag", :type => :controller do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,36 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: rspec-rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - RSpec Development Team
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 | 
            -
            cert_chain:  | 
| 10 | 
            +
            cert_chain: 
         | 
| 11 | 
            +
            - |
         | 
| 12 | 
            +
              -----BEGIN CERTIFICATE-----
         | 
| 13 | 
            +
              MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRQwEgYDVQQDDAtyc3Bl
         | 
| 14 | 
            +
              Yy1kZXZlbDEZMBcGCgmSJomT8ixkARkWCXJ1Ynlmb3JnZTETMBEGCgmSJomT8ixk
         | 
| 15 | 
            +
              ARkWA29yZzAeFw0wOTA0MjgyMDQ5NDVaFw0xMDA0MjgyMDQ5NDVaMEYxFDASBgNV
         | 
| 16 | 
            +
              BAMMC3JzcGVjLWRldmVsMRkwFwYKCZImiZPyLGQBGRYJcnVieWZvcmdlMRMwEQYK
         | 
| 17 | 
            +
              CZImiZPyLGQBGRYDb3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
         | 
| 18 | 
            +
              vFsOmL+2dKD2pskbJlzUvH/NZXL8oFy//5xssQydCbiv4Bx/PSs4JiL12/Rl4OjK
         | 
| 19 | 
            +
              j+da8ml/8QqzoJqQwSo4T/wRamXd20MKgtn9K+MQ30wby6i0Ti/r85f3XW14Of+K
         | 
| 20 | 
            +
              OwCoQvzf/kDNpyKYymkMzSdu6nT8GmgjEUpe8SAhwTuY6J/a/oCM0Eu7bFQs/u2f
         | 
| 21 | 
            +
              B7r6V82E4WrxWy9bPUkUK9gk89HK7H605G6xoKjNiLPTz8v+TdZfNc0Cx94n+GT7
         | 
| 22 | 
            +
              i/aaSs5lhJ0POB2dcbjvx+mCu+Qy7SbLH08wv8Q0oDlQPNkdgDwBRE+S3N44qOYj
         | 
| 23 | 
            +
              AAxpF+EMI7NYzcYNETt5TQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
         | 
| 24 | 
            +
              sDAdBgNVHQ4EFgQUZFSx0Rt8FU0c2CpTa5gKgMDEXl8wDQYJKoZIhvcNAQEFBQAD
         | 
| 25 | 
            +
              ggEBALP3T9ws/3qAEZxbK2ZVvebb76FrZjJSxVD/kJqbrAgfZXe0VcpF3c/nT7V7
         | 
| 26 | 
            +
              983CvtPhIOBR7dZy+vIm+KPhuD2EraJHuPsW3xatVdxSGGHzPjm13X1TKjDCreb1
         | 
| 27 | 
            +
              RZMEV+PAdjHdcPvHjg2HI3yM7SB0LhvS/iTylB2vrqyhd3Cgq6dgE9hA+db2r4h+
         | 
| 28 | 
            +
              du+khTSJ/yAl0IkhpcGNoXI/L5VQXJMgg/lRwmfQl4nqrVN9co3CPciM13L3Kz24
         | 
| 29 | 
            +
              7XHWIHZLt6PzpDxMa4RYOeFx0cgxH3Su/hFc086K0Y3BEWSmg+nF/2eCpu7Not1q
         | 
| 30 | 
            +
              rxjzEkfOKoy3oCfGDf8/ZQyQaJo=
         | 
| 31 | 
            +
              -----END CERTIFICATE-----
         | 
| 11 32 |  | 
| 12 | 
            -
            date: 2009-04- | 
| 33 | 
            +
            date: 2009-04-29 00:00:00 -05:00
         | 
| 13 34 | 
             
            default_executable: 
         | 
| 14 35 | 
             
            dependencies: 
         | 
| 15 36 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -20,7 +41,7 @@ dependencies: | |
| 20 41 | 
             
                requirements: 
         | 
| 21 42 | 
             
                - - "="
         | 
| 22 43 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 23 | 
            -
                    version: 1.2. | 
| 44 | 
            +
                    version: 1.2.5
         | 
| 24 45 | 
             
                version: 
         | 
| 25 46 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 26 47 | 
             
              name: rack
         | 
| @@ -75,7 +96,6 @@ files: | |
| 75 96 | 
             
            - Upgrade.rdoc
         | 
| 76 97 | 
             
            - features/step_definitions/people.rb
         | 
| 77 98 | 
             
            - features/support/env.rb
         | 
| 78 | 
            -
            - features/transactions/transactions_should_rollback.feature
         | 
| 79 99 | 
             
            - generators/rspec/CHANGES
         | 
| 80 100 | 
             
            - generators/rspec/rspec_generator.rb
         | 
| 81 101 | 
             
            - generators/rspec/templates/previous_failures.txt
         | 
| @@ -138,7 +158,6 @@ files: | |
| 138 158 | 
             
            - lib/spec/rails/matchers/render_template.rb
         | 
| 139 159 | 
             
            - lib/spec/rails/mocks.rb
         | 
| 140 160 | 
             
            - lib/spec/rails/spec_server.rb
         | 
| 141 | 
            -
            - lib/spec/rails/story_adapter.rb
         | 
| 142 161 | 
             
            - lib/spec/rails/version.rb
         | 
| 143 162 | 
             
            - spec/autotest/mappings_spec.rb
         | 
| 144 163 | 
             
            - spec/rails_suite.rb
         | 
| @@ -199,6 +218,7 @@ files: | |
| 199 218 | 
             
            - spec/resources/views/view_spec/template_with_partial.html.erb
         | 
| 200 219 | 
             
            - spec/resources/views/view_spec/template_with_partial_using_collection.html.erb
         | 
| 201 220 | 
             
            - spec/resources/views/view_spec/template_with_partial_with_array.html.erb
         | 
| 221 | 
            +
            - spec/resources/views/view_spec/view_helpers.html.erb
         | 
| 202 222 | 
             
            - spec/spec/rails/example/assigns_hash_proxy_spec.rb
         | 
| 203 223 | 
             
            - spec/spec/rails/example/configuration_spec.rb
         | 
| 204 224 | 
             
            - spec/spec/rails/example/controller_example_group_spec.rb
         | 
| @@ -233,10 +253,12 @@ files: | |
| 233 253 | 
             
            - spec/spec_helper.rb
         | 
| 234 254 | 
             
            has_rdoc: true
         | 
| 235 255 | 
             
            homepage: http://rspec.info
         | 
| 256 | 
            +
            licenses: []
         | 
| 257 | 
            +
             | 
| 236 258 | 
             
            post_install_message: |
         | 
| 237 259 | 
             
              **************************************************
         | 
| 238 260 |  | 
| 239 | 
            -
                Thank you for installing rspec-rails-1.2. | 
| 261 | 
            +
                Thank you for installing rspec-rails-1.2.5
         | 
| 240 262 |  | 
| 241 263 | 
             
                If you are upgrading, do this in each of your rails apps
         | 
| 242 264 | 
             
                that you want to upgrade:
         | 
| @@ -268,9 +290,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 268 290 | 
             
            requirements: []
         | 
| 269 291 |  | 
| 270 292 | 
             
            rubyforge_project: rspec
         | 
| 271 | 
            -
            rubygems_version: 1.3. | 
| 293 | 
            +
            rubygems_version: 1.3.2
         | 
| 272 294 | 
             
            signing_key: 
         | 
| 273 | 
            -
            specification_version:  | 
| 274 | 
            -
            summary: rspec-rails 1.2. | 
| 295 | 
            +
            specification_version: 3
         | 
| 296 | 
            +
            summary: rspec-rails 1.2.5
         | 
| 275 297 | 
             
            test_files: []
         | 
| 276 298 |  | 
    
        metadata.gz.sig
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            '�\�e���Fl����ě3U�*��b�Q�v����2�a����1���e��k��G��_Y&���wE�x�Y�6�:Z�͎�vkK��/�C�23�NF;(4�Q�5�d҅gs�q��Ʋ"�3Ԗā1-� Ckf;���r����,�C�k���:���8���U��vG[��^��n�m~�ݾE�5:#g՛��i�G1�b�/i�h3K�f���d�N�N}l����c/W�f�Yie7�����<�TK����
         | 
| @@ -1,16 +0,0 @@ | |
| 1 | 
            -
            Story: transactions should rollback in plain text
         | 
| 2 | 
            -
              As an RSpec/Rails Story author
         | 
| 3 | 
            -
              I want transactions to roll back between scenarios in plain text
         | 
| 4 | 
            -
              So that I can have confidence in the state of the database
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              Scenario: add one Person
         | 
| 7 | 
            -
                When I add a Person
         | 
| 8 | 
            -
                Then there should be one person
         | 
| 9 | 
            -
             | 
| 10 | 
            -
              Scenario: add one Person for the second time
         | 
| 11 | 
            -
                When I add a Person
         | 
| 12 | 
            -
                Then there should be one person
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              Scenario: add yet another person
         | 
| 15 | 
            -
                When I add a Person
         | 
| 16 | 
            -
                Then there should be one person
         | 
| @@ -1,79 +0,0 @@ | |
| 1 | 
            -
            # WARNING - THIS IS PURELY EXPERIMENTAL AT THIS POINT
         | 
| 2 | 
            -
            # Courtesy of Brian Takita and Yurii Rashkovskii
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            $:.unshift File.join(File.dirname(__FILE__), *%w[.. .. .. .. rspec lib])
         | 
| 5 | 
            -
            if defined?(ActiveRecord::Base)
         | 
| 6 | 
            -
              require 'test_help' 
         | 
| 7 | 
            -
            else
         | 
| 8 | 
            -
              require 'action_controller/test_process'
         | 
| 9 | 
            -
              require 'action_controller/integration'
         | 
| 10 | 
            -
            end
         | 
| 11 | 
            -
            require 'test/unit/testresult'
         | 
| 12 | 
            -
            require 'spec'
         | 
| 13 | 
            -
            require 'spec/rails'
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            Test::Unit.run = true
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            ActionController::Integration::Session.__send__ :include, Spec::Matchers
         | 
| 18 | 
            -
            ActionController::Integration::Session.__send__ :include, Spec::Rails::Matchers
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            class RailsStory < ActionController::IntegrationTest
         | 
| 21 | 
            -
              if defined?(ActiveRecord::Base)
         | 
| 22 | 
            -
                self.use_transactional_fixtures = true
         | 
| 23 | 
            -
              else
         | 
| 24 | 
            -
                def self.fixture_table_names; []; end # Workaround for projects that don't use ActiveRecord
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              def initialize #:nodoc:
         | 
| 28 | 
            -
                # TODO - eliminate this hack, which is here to stop
         | 
| 29 | 
            -
                # Rails Stories from dumping the example summary.
         | 
| 30 | 
            -
                Spec::Runner::Options.class_eval do
         | 
| 31 | 
            -
                  def examples_should_be_run?
         | 
| 32 | 
            -
                    false
         | 
| 33 | 
            -
                  end
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
                @_result = Test::Unit::TestResult.new
         | 
| 36 | 
            -
              end
         | 
| 37 | 
            -
            end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            class ActiveRecordSafetyListener
         | 
| 40 | 
            -
              include Singleton
         | 
| 41 | 
            -
              def scenario_started(*args)
         | 
| 42 | 
            -
                if defined?(ActiveRecord::Base)
         | 
| 43 | 
            -
                  if ActiveRecord::Base.connection.respond_to?(:increment_open_transactions)
         | 
| 44 | 
            -
                    ActiveRecord::Base.connection.increment_open_transactions
         | 
| 45 | 
            -
                  else
         | 
| 46 | 
            -
                    ActiveRecord::Base.__send__ :increment_open_transactions
         | 
| 47 | 
            -
                  end
         | 
| 48 | 
            -
                end
         | 
| 49 | 
            -
                ActiveRecord::Base.connection.begin_db_transaction
         | 
| 50 | 
            -
              end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
              def scenario_succeeded(*args)
         | 
| 53 | 
            -
                if defined?(ActiveRecord::Base)
         | 
| 54 | 
            -
                  ActiveRecord::Base.connection.rollback_db_transaction
         | 
| 55 | 
            -
                  if ActiveRecord::Base.connection.respond_to?(:decrement_open_transactions)
         | 
| 56 | 
            -
                    ActiveRecord::Base.connection.decrement_open_transactions
         | 
| 57 | 
            -
                  else
         | 
| 58 | 
            -
                    ActiveRecord::Base.__send__ :decrement_open_transactions
         | 
| 59 | 
            -
                  end
         | 
| 60 | 
            -
                end
         | 
| 61 | 
            -
              end
         | 
| 62 | 
            -
              alias :scenario_pending :scenario_succeeded
         | 
| 63 | 
            -
              alias :scenario_failed :scenario_succeeded
         | 
| 64 | 
            -
            end
         | 
| 65 | 
            -
             | 
| 66 | 
            -
            class Spec::Story::Runner::ScenarioRunner
         | 
| 67 | 
            -
              def initialize
         | 
| 68 | 
            -
                @listeners = [ActiveRecordSafetyListener.instance]
         | 
| 69 | 
            -
              end
         | 
| 70 | 
            -
            end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
            class Spec::Story::GivenScenario
         | 
| 73 | 
            -
              def perform(instance, name = nil)
         | 
| 74 | 
            -
                scenario = Spec::Story::Runner::StoryRunner.scenario_from_current_story @name
         | 
| 75 | 
            -
                runner = Spec::Story::Runner::ScenarioRunner.new
         | 
| 76 | 
            -
                runner.instance_variable_set(:@listeners,[])
         | 
| 77 | 
            -
                runner.run(scenario, instance)
         | 
| 78 | 
            -
              end
         | 
| 79 | 
            -
            end
         |