1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
# coding: utf-8
require File.dirname(__FILE__) + "/spec_helper"
describe PDF::Reader::MetadataStrategy do
include EncodingHelper
it "should send the correct metadata callbacks when processing an PrinceXML PDF" do
receiver = PDF::Reader::RegisterReceiver.new
# process the instructions
filename = pdf_spec_file("prince1")
PDF::Reader.file(filename, receiver)
cb = receiver.first_occurance_of(:metadata)
meta = cb[:args].first
# check the metadata was extracted correctly
meta[:Producer].should eql("YesLogic Prince 5.1")
end
it "should send the correct metadata callbacks when processing an openoffice PDF" do
receiver = PDF::Reader::RegisterReceiver.new
# process the instructions
filename = pdf_spec_file("openoffice-2.2")
PDF::Reader.file(filename, receiver, :pages => false)
cb = receiver.first_occurance_of(:metadata)
meta = cb[:args].first
# check the metadata was extracted correctly
meta[:Creator].should eql("Writer")
meta[:Producer].should eql("OpenOffice.org 2.2")
meta[:CreationDate].should eql("D:20070623021705+10'00'")
end
it "should send the correct xml_metadata callbacks when processing a distiller PDF" do
receiver = PDF::Reader::RegisterReceiver.new
# process the instructions
filename = pdf_spec_file("distiller_unicode")
PDF::Reader.file(filename, receiver, :pages => false)
cb = receiver.first_occurance_of(:xml_metadata)
meta = cb[:args].first
# check the metadata was extracted correctly
meta.include?("<pdf:Title>file://C:\\Data\\website\\i18nguy\\unicode-example.html</pdf:Title>").should be_true
end
it "should send the correct page count callback when processing an openoffice PDF" do
receiver = PDF::Reader::RegisterReceiver.new
# process the instructions
filename = pdf_spec_file("openoffice-2.2")
PDF::Reader.file(filename, receiver, :pages => false)
cb = receiver.first_occurance_of(:page_count)
cb[:args].first.should eql(2)
end
it "should send the correct pdf_version callback when processing an openoffice PDF" do
receiver = PDF::Reader::RegisterReceiver.new
# process the instructions
filename = pdf_spec_file("openoffice-2.2")
PDF::Reader.file(filename, receiver, :pages => false)
cb = receiver.first_occurance_of(:pdf_version)
cb[:args].first.should eql(1.4)
end
end
|