Sha256: 616a7ffb6eef41cbbc23643f717d9984e16911e48cfe4344a80f40aefb250bd5

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 KB

Contents

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

describe "Clamsy" do

  behaves_like 'has standard files support'

  before do
    @check_processing_yields_content = lambda do |contexts, example|
      generated_pdf = tmp_file('clamsy_pdf').path
      Clamsy.process(contexts, template_odt(example), generated_pdf)
      expected_content = comparable_content(expected_pdf(example))
      generated_content = comparable_content(generated_pdf)
      generated_content.size.should.equal expected_content.size
      (generated_content - expected_content).should.equal []
    end
  end

  after do
    trash_tmp_files
  end

  it 'should do picture replacement for matching <draw:frame draw:name="..." />' do
    @check_processing_yields_content[
      context = {:_pictures => {:to_be_replaced_pic => data_file('clamsy.png')}},
      example = :picture
    ]
  end

  it 'should do #{...} plain text replacement' do
    @check_processing_yields_content[
      context = {:someone => 'Peter', :mood => 'Happy'},
      example = :plain_text
    ]
  end

  it 'should do ${...} escaped (santized) replacement' do
    @check_processing_yields_content[
      context = {:someone => '<Peter>', :mood => '<Happy>'},
      example = :escaped_text
    ]
  end

  it 'should do {? ... ?} embedded ruby statements' do
    @someone = Class.new do
      attr_reader :name, :mood
      def initialize(name, mood)
        @name, @mood = name, mood
      end
    end
    @check_processing_yields_content[
      context = {:everyone => [@someone.new('Peter','Happy'), @someone.new('Jane','Sad')]},
      example = :embedded_ruby
    ]
  end

  it 'should concat multiple contexts processing to a single pdf' do
    @check_processing_yields_content[
      contexts = [{:someone => 'Peter', :mood => 'Happy'}, {:someone => 'Jane', :mood => 'Sad'}],
      example = :multiple_contexts
    ]
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
clamsy-0.0.3 spec/clamsy_spec.rb