Sha256: fca051dabcf9792b3f9d656840c63a0cc9a509e276450c0616213f568ec2b24b

Contents?: true

Size: 1.75 KB

Versions: 10

Compression:

Stored size: 1.75 KB

Contents

require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')

class AllowMassAssignmentOfMatcherTest < Test::Unit::TestCase # :nodoc:

  context "an attribute that is blacklisted from mass-assignment" do
    setup do
      define_model :example, :attr => :string do
        attr_protected :attr
      end
      @model = Example.new
    end

    should "reject being mass-assignable" do
      assert_rejects allow_mass_assignment_of(:attr), @model
    end
  end

  context "an attribute that is not whitelisted for mass-assignment" do
    setup do
      define_model :example, :attr => :string, :other => :string do
        attr_accessible :other
      end
      @model = Example.new
    end

    should "reject being mass-assignable" do
      assert_rejects allow_mass_assignment_of(:attr), @model
    end
  end

  context "an attribute that is whitelisted for mass-assignment" do
    setup do
      define_model :example, :attr => :string do
        attr_accessible :attr
      end
      @model = Example.new
    end

    should "accept being mass-assignable" do
      assert_accepts allow_mass_assignment_of(:attr), @model
    end
  end

  context "an attribute not included in the mass-assignment blacklist" do
    setup do
      define_model :example, :attr => :string, :other => :string do
        attr_protected :other
      end
      @model = Example.new
    end

    should "accept being mass-assignable" do
      assert_accepts allow_mass_assignment_of(:attr), @model
    end
  end

  context "an attribute on a class with no protected attributes" do
    setup do
      define_model :example, :attr => :string
      @model = Example.new
    end

    should "accept being mass-assignable" do
      assert_accepts allow_mass_assignment_of(:attr), @model
    end
  end

end

Version data entries

10 entries across 10 versions & 5 rubygems

Version Path
Flamefork-shoulda-2.10.1 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
Flamefork-shoulda-2.10.2 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
francois-shoulda-2.10.1 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
technicalpickles-shoulda-2.10.0 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
thoughtbot-shoulda-2.10.0 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
thoughtbot-shoulda-2.10.1 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
thoughtbot-shoulda-2.9.2 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
shoulda-2.9.2 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
shoulda-2.10.0 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb
shoulda-2.10.1 test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb