Sha256: 151131ac39faea5606aef27c0a6cf5977ca5724632bfcb4b2075eb739b67b224
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
require 'spec_helper' describe Paperclip::Validators::MediaTypeSpoofDetectionValidator do before do rebuild_model @dummy = Dummy.new end def build_validator(options = {}) @validator = Paperclip::Validators::MediaTypeSpoofDetectionValidator.new(options.merge( attributes: :avatar )) end it "is on the attachment without being explicitly added" do assert Dummy.validators_on(:avatar).any?{ |validator| validator.kind == :media_type_spoof_detection } end it "is not on the attachment when explicitly rejected" do rebuild_model validate_media_type: false assert Dummy.validators_on(:avatar).none?{ |validator| validator.kind == :media_type_spoof_detection } end it "returns default error message for spoofed media type" do build_validator file = File.new(fixture_file("5k.png"), "rb") @dummy.avatar.assign(file) detector = mock("detector", :spoofed? => true) Paperclip::MediaTypeSpoofDetector.stubs(:using).returns(detector) @validator.validate(@dummy) assert_equal "has an extension that does not match its contents", @dummy.errors[:avatar].first end it "runs when attachment is dirty" do build_validator file = File.new(fixture_file("5k.png"), "rb") @dummy.avatar.assign(file) Paperclip::MediaTypeSpoofDetector.stubs(:using).returns(stub(:spoofed? => false)) @dummy.valid? assert_received(Paperclip::MediaTypeSpoofDetector, :using){|e| e.once } end it "does not run when attachment is not dirty" do Paperclip::MediaTypeSpoofDetector.stubs(:using).never @dummy.valid? assert_received(Paperclip::MediaTypeSpoofDetector, :using){|e| e.never } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
paperclip-4.2.1 | spec/paperclip/validators/media_type_spoof_detection_validator_spec.rb |