Sha256: 1abcc48fab89d212a990865167a23facd7a4ea3f73c885a8400b324f7a051f82

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

require File.expand_path('../../spec_helper', __FILE__)

describe Mail::Part do
  describe 'integration into Mail::Part' do
    subject { Mail::Part.new }


    it 'responds to +to_postmark+' do
      subject.new.must_respond_to(:to_postmark)
    end
  end


  describe :to_postmark do
    describe 'a text/plain part' do
      let(:content) { "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!" }
      subject do
        Mail::Part.new do
          body         content
          content_type 'text/plain'
        end
      end


      it 'returns body hash' do
        part.to_postmark.must_equal('Name' => nil, 'Content' => content, 'ContentType' => 'text/plain')
      end
    end


    describe 'a text/html part' do
      let(:content) { "<p>Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome.<br /><br />I'm your bro-I'm Broda!</p>" }
      subject do
        Mail::Part.new do
          body         content
          content_type 'text/html'
        end
      end


      it 'returns body hash' do
        part.to_postmark.must_equal('Name' => nil, 'Content' => content, 'ContentType' => 'text/html')
      end
    end


    describe 'a file part' do
      let(:file) { File.join(File.dirname(__FILE__), '..', 'thebrocode.jpg') }
      let(:content) { [File.read(file)].pack('m') }
      subject do
        Mail::Part.new.tap do |mail|
          mail.add_file(file)
        end.attachments.first
      end


      it 'returns base64-encoded file-content hash if part is an attachment' do
        part.to_postmark.must_equal('Name' => 'thebrocode.jpg', 'Content' => content, 'ContentType' => 'image/jpeg')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_postmark-0.4.4 spec/mail_ext/part_spec.rb