<?php use Zelda\EscposPhp\Devices\AuresCustomerDisplay; use Zelda\EscposPhp\PrintConnectors\DummyPrintConnector; use Zelda\EscposPhp\CapabilityProfile; class AuresCustomerDisplayTest extends PHPUnit\Framework\TestCase { protected $printer; protected $outputConnector; protected function setUp(): void { /* Print to nowhere- for testing which inputs are accepted */ $this->outputConnector = new DummyPrintConnector(); $profile = CapabilityProfile::load('OCD-300'); $this->printer = new AuresCustomerDisplay($this->outputConnector, $profile); } 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 testInitializeOutput() { $this->checkOutput("\x02\x05C1\x03\x1b@\x1bt\x00\x1f\x02"); } public function testselectTextScrollMode() { $this->outputConnector->clear(); $this->printer->selectTextScrollMode(AuresCustomerDisplay::TEXT_OVERWRITE); $this->checkOutput("\x1f\x01"); } public function testClear() { $this->outputConnector->clear(); $this->printer->clear(); $this->checkOutput("\x0c"); } public function testShowFirmwareVersion() { $this->outputConnector->clear(); $this->printer->showFirmwareVersion(); $this->checkOutput("\x02\x05V\x01\x03"); } public function testSelfTest() { $this->outputConnector->clear(); $this->printer->selfTest(); $this->checkOutput("\x02\x05D\x08\x03"); } public function testShowLogo() { $this->outputConnector->clear(); $this->printer->showLogo(); $this->checkOutput("\x02\xfcU\xaaU\xaa"); } public function testTest() { $this->outputConnector->clear(); // Handling of line-endings differs to regular printers, need to use \r\n $this->printer->text("Hello\nWorld\n"); $this->checkOutput("Hello\x0d\x0aWorld\x0d\x0a"); } }