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 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe PDF::Core::Page do
let(:doc) do
document_class =
Class.new do
def initialize
@store = PDF::Core::ObjectStore.new
@state = PDF::Core::DocumentState.new({})
@renderer = PDF::Core::Renderer.new(@state)
end
attr_reader :state
def ref(*args)
@renderer.ref(*args)
end
def save_graphics_state; end
def freeze_stamp_graphics; end
end
document_class.new
end
it 'embeds MediaBox' do
page = described_class.new(doc, size: 'A4')
expect(page.dictionary.data[:MediaBox]).to eq [0, 0, 595.28, 841.89]
end
it 'embeds CropBox' do
page = described_class.new(
doc,
size: 'A4',
crops: { left: 10, bottom: 20, right: 30, top: 40 },
)
expect(page.dictionary.data[:CropBox]).to eq [10, 20, 565.28, 801.89]
end
it 'embeds BleedBox' do
page = described_class.new(
doc,
size: 'A4',
bleeds: { left: 10, bottom: 20, right: 30, top: 40 },
)
expect(page.dictionary.data[:BleedBox]).to eq [10, 20, 565.28, 801.89]
end
it 'embeds TrimBox' do
page = described_class.new(
doc,
size: 'A4',
trims: { left: 10, bottom: 20, right: 30, top: 40 },
)
expect(page.dictionary.data[:TrimBox]).to eq [10, 20, 565.28, 801.89]
end
it 'embeds ArtBox' do
page = described_class.new(
doc,
size: 'A4',
art_indents: { left: 10, bottom: 20, right: 30, top: 40 },
)
expect(page.dictionary.data[:ArtBox]).to eq [10, 20, 565.28, 801.89]
end
describe 'stamp_stream' do
it 'is writable' do
page = described_class.new(doc, size: 'A4')
ref = PDF::Core::Reference.new(1, {})
expect {
page.stamp_stream(ref) do
page.content << 'test'
end
}.to_not raise_error
expect(ref.stream.filtered_stream).to eq 'test'
end
end
end
|