Sha256: c0d7766414944b84c7534ca32d543142e77ffdc75613bdcc3dfa4a14b9057b1e

Contents?: true

Size: 1.79 KB

Versions: 16

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'

describe Paperclip::StringioAdapter do
  context "a new instance" do
    before do
      @contents = "abc123"
      @stringio = StringIO.new(@contents)
      @subject = Paperclip.io_adapters.for(@stringio)
    end

    it "returns a file name" do
      assert_equal "data", @subject.original_filename
    end

    it "returns a content type" do
      assert_equal "text/plain", @subject.content_type
    end

    it "returns the size of the data" do
      assert_equal 6, @subject.size
    end

    it "returns the length of the data" do
      assert_equal 6, @subject.length
    end

    it "generates an MD5 hash of the contents" do
      assert_equal Digest::MD5.hexdigest(@contents), @subject.fingerprint
    end

    it "generates correct fingerprint after read" do
      fingerprint = Digest::MD5.hexdigest(@subject.read)
      assert_equal fingerprint, @subject.fingerprint
    end

    it "generates same fingerprint" do
      assert_equal @subject.fingerprint, @subject.fingerprint
    end

    it "returns the data contained in the StringIO" do
      assert_equal "abc123", @subject.read
    end

    it 'accepts a content_type' do
      @subject.content_type = 'image/png'
      assert_equal 'image/png', @subject.content_type
    end

    it 'accepts an original_filename' do
      @subject.original_filename = 'image.png'
      assert_equal 'image.png', @subject.original_filename
    end

    it "does not generate filenames that include restricted characters" do
      @subject.original_filename = 'image:restricted.png'
      assert_equal 'image_restricted.png', @subject.original_filename
    end

    it "does not generate paths that include restricted characters" do
      @subject.original_filename = 'image:restricted.png'
      expect(@subject.path).to_not match(/:/)
    end
  end
end

Version data entries

16 entries across 16 versions & 5 rubygems

Version Path
kt-paperclip-4.4.0 spec/paperclip/io_adapters/stringio_adapter_spec.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paperclip-5.1.0/spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-5.1.0 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-5.0.0 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.7 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip_jk-5.0.0.beta2 spec/paperclip/io_adapters/stringio_adapter_spec.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/paperclip-4.3.6/spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-5.0.0.beta2 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-5.0.0.beta1 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.6 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.5 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.4 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.3 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.2 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.1 spec/paperclip/io_adapters/stringio_adapter_spec.rb
paperclip-4.3.0 spec/paperclip/io_adapters/stringio_adapter_spec.rb