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
|
require "test-setup"
require "lunit"
local Cairo = require "oocairo"
module("test.ps_surface", lunit.testcase, package.seeall)
teardown = clean_up_temp_files
if Cairo.HAS_PS_SURFACE then
function test_ps_levels ()
local levels = Cairo.ps_get_levels()
assert_table(levels)
for k, v in pairs(levels) do
assert_number(k)
assert_string(v)
end
end
local function check_ps_surface (surface)
assert_userdata(surface)
assert_equal("cairo surface object", surface._NAME)
assert_equal("ps", surface:get_type())
end
local function check_file_contains_ps (filename)
local fh = assert(io.open(filename, "rb"))
local data = fh:read("*a")
fh:close()
assert_match("^%%!PS", data)
end
function test_create ()
local filename = tmpname()
local surface = Cairo.ps_surface_create(filename, 300, 200)
check_ps_surface(surface)
draw_arbitrary_stuff(Cairo, surface)
surface:finish()
check_file_contains_ps(filename)
end
function test_create_stream ()
local filename = tmpname()
local fh = assert(io.open(filename, "wb"))
local surface = Cairo.ps_surface_create(fh, 300, 200)
check_ps_surface(surface)
draw_arbitrary_stuff(Cairo, surface)
surface:finish()
fh:close()
check_file_contains_ps(filename)
end
function test_create_bad ()
assert_error("wrong type instead of file/filename",
function () Cairo.ps_surface_create(true, 300, 200) end)
end
function test_set_size ()
local surface = Cairo.ps_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
function test_eps ()
local surface = Cairo.ps_surface_create(tmpname(), 300, 200)
surface:set_eps(true)
assert_true(surface:get_eps())
surface:set_eps(false)
assert_false(surface:get_eps())
end
end
-- vi:ts=4 sw=4 expandtab
|