require 'test/unit' require 'fox16' include Fox class TC_FXDCPrint < Test::Unit::TestCase private def printJob job = FXPrinter.new job.name = "output.ps" job.firstpage = 1 job.lastpage = 1 job.currentpage = 1 job.frompage = 1 job.topage = 1 job.mediasize = MEDIA_USLETTER job.mediawidth = 612.0 job.mediaheight = 792.0 job.leftmargin = 72.0 job.rightmargin = 72.0 job.topmargin = 72.0 job.bottommargin = 72.0 job.numcopies = 1 job.flags = PRINT_DEST_FILE job end def hexdump(ios) count = 0 ios.each_byte do |byte| print sprintf("%02x ", byte) count = count + 1 if count%8 == 0 print "\n" end end end # Convert DOS line endings (CR+LF) to Unix (LF) def crlf_to_lf(text) text.gsub(/\x0d\x0a/, "\x0a") end def assert_same_file_contents(expected, actual) expected_contents, actual_contents = nil, nil File.open(expected, 'rb') { |f| expected_contents = f.read } File.open(actual, 'rb') { |f| actual_contents = crlf_to_lf(f.read) } assert_equal(expected_contents, actual_contents) end public def setup if FXApp.instance.nil? @app = FXApp.new('TC_FXDCPrint', 'FXRuby') @app.init([]) else @app = FXApp.instance end @dc = FXDCPrint.new(@app) end def test_beginPrint @dc.beginPrint(printJob) @dc.endPrint assert_same_file_contents(File.join(File.dirname(__FILE__), "blankpage.ps"), printJob.name) end def test_beginPrint_with_block @dc.beginPrint(printJob) do |theDC| assert_same(@dc, theDC) end assert_same_file_contents(File.join(File.dirname(__FILE__), "blankpage.ps"), printJob.name) end def test_beginPage @dc.beginPrint(printJob) @dc.beginPage(1) @dc.drawText(100, 100, "Howdy!") @dc.endPage @dc.endPrint # assert_same_file_contents("howdypage.ps", printJob.name) end def test_beginPage_with_block @dc.beginPrint(printJob) do |theDC| assert_same(@dc, theDC) theDC.beginPage(1) do |xDC| assert_same(theDC, xDC) xDC.drawText(100, 100, "Howdy!") end end # assert_same_file_contents("howdypage.ps", printJob.name) end def teardown if File.exists?("output.ps") FileUtils.rm_f("output.ps") end end end