resto-dhepot/packages/escpos-php/test/unit/Experimental/Unifont/UnifontPrintBufferTest.php

50 lines
1.7 KiB
PHP

<?php
namespace Zelda\EscposPhp\Experimental\Unifont;
use Zelda\EscposPhp\PrintConnectors\DummyPrintConnector;
use Zelda\EscposPhp\Printer;
use PHPUnit\Framework\TestCase;
class UnifontPrintBufferTest extends TestCase
{
protected $printer;
protected $outputConnector;
protected function setUp(): void
{
$this->outputConnector = new DummyPrintConnector();
$this->printer = new Printer($this->outputConnector);
$filename = tempnam(sys_get_temp_dir(), "escpos-php-");
$glyphs = [
"0020:00000000000000000000000000000000", // space is guessed
"0041:0000000018242442427E424242420000" // Letter "A" from Wikipedia
];
file_put_contents($filename, implode("\n", $glyphs));
$printBuffer = new UnifontPrintBuffer($filename);
$this->printer->setPrintBuffer($printBuffer);
}
protected function checkOutput($expected = null)
{
/* Check those output strings */
$outp = $this->outputConnector->getData();
if ($expected === null) {
echo "\nOutput was:\n\"" . friendlyBinary($outp) . "\"\n";
}
$this->assertEquals($expected, $outp);
}
protected function tearDown(): void
{
$this->outputConnector->finalize();
}
public function testString()
{
// Render the text "AA A" rendered via used-defined font.
$this->printer->text("AA A\r\n");
$this->checkOutput("\x1b@\x1b!1\x1b%\x01\x1b&\x03 \x08\x00\x00\x00\x01\xfc\x00\x06@\x00\x08@\x00\x08@\x00\x06@\x00\x01\xfc\x00\x00\x00\x00 \x1b&\x03!!\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00! \x0a");
}
}