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
|
require "test-setup"
require "lunit"
local Cairo = require "oocairo"
module("test.pdf_surface", lunit.testcase, package.seeall)
teardown = clean_up_temp_files
if Cairo.HAS_PDF_SURFACE then
local function check_pdf_surface (surface)
assert_userdata(surface)
assert_equal("cairo surface object", surface._NAME)
assert_equal("pdf", surface:get_type())
if surface.has_show_text_glyphs then
assert_true(surface:has_show_text_glyphs())
end
end
local function check_file_contains_pdf (filename)
local fh = assert(io.open(filename, "rb"))
local data = fh:read("*a")
fh:close()
assert_match("^%%PDF", data)
end
function test_create ()
local filename = tmpname()
local surface = Cairo.pdf_surface_create(filename, 300, 200)
check_pdf_surface(surface)
draw_arbitrary_stuff(Cairo, surface)
surface:finish()
check_file_contains_pdf(filename)
end
function test_create_stream ()
local filename = tmpname()
local fh = assert(io.open(filename, "wb"))
local surface = Cairo.pdf_surface_create(fh, 300, 200)
check_pdf_surface(surface)
draw_arbitrary_stuff(Cairo, surface)
surface:finish()
fh:close()
check_file_contains_pdf(filename)
end
function test_create_bad ()
assert_error("wrong type instead of file/filename",
function () Cairo.pdf_surface_create(true, 300, 200) end)
end
function test_set_size ()
local surface = Cairo.pdf_surface_create(tmpname(), 300, 200)
surface:set_size(300, 400)
draw_arbitrary_stuff(Cairo, surface)
surface:set_size(500, 600)
draw_arbitrary_stuff(Cairo, surface)
surface:finish()
end
if Cairo.check_version(1, 10, 0) then
function test_restrict ()
local surface = Cairo.pdf_surface_create(tmpname(), 300, 200)
surface:restrict_to_version("1.4")
surface:restrict_to_version("1.5")
end
end
end
-- vi:ts=4 sw=4 expandtab
|