ControlFunctionsTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. use \Bramus\Ansi\Ansi;
  3. use \Bramus\Ansi\Writers\BufferWriter;
  4. use \Bramus\Ansi\ControlFunctions\Enums\C0;
  5. /**
  6. * Test the Control Functions
  7. */
  8. class ControlFunctionsTest extends PHPUnit_Framework_TestCase
  9. {
  10. public function testUsingGet()
  11. {
  12. // Base
  13. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Base(C0::BS))->get(), C0::BS);
  14. // Helper Classes
  15. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Backspace())->get(), C0::BS);
  16. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Backspace())->get(), C0::BACKSPACE);
  17. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Bell())->get(), C0::BEL);
  18. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Bell())->get(), C0::BELL);
  19. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\CarriageReturn())->get(), C0::CR);
  20. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Escape())->get(), C0::ESC);
  21. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\LineFeed())->get(), C0::LF);
  22. $this->assertEquals((new \Bramus\Ansi\ControlFunctions\Tab())->get(), C0::TAB);
  23. }
  24. public function testUsingToString()
  25. {
  26. // Base
  27. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Base(C0::BS), C0::BS);
  28. // Helper Classes
  29. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Backspace(), C0::BS);
  30. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Backspace(), C0::BACKSPACE);
  31. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Bell(), C0::BEL);
  32. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Bell(), C0::BELL);
  33. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\CarriageReturn(), C0::CR);
  34. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Escape(), C0::ESC);
  35. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\LineFeed(), C0::LF);
  36. $this->assertEquals(new \Bramus\Ansi\ControlFunctions\Tab(), C0::TAB);
  37. }
  38. public function testAnsiShorthands()
  39. {
  40. $a = new Ansi(new BufferWriter());
  41. $this->assertEquals($a->backspace()->flush(), C0::BS);
  42. $this->assertEquals($a->backspace()->flush(), C0::BACKSPACE);
  43. $this->assertEquals($a->bell()->flush(), C0::BEL);
  44. $this->assertEquals($a->bell()->flush(), C0::BELL);
  45. $this->assertEquals($a->cr()->flush(), C0::CR);
  46. $this->assertEquals($a->lf()->flush(), C0::LF);
  47. $this->assertEquals($a->tab()->flush(), C0::TAB);
  48. }
  49. public function testAnsiShorthandsChaining()
  50. {
  51. $a = new Ansi(new BufferWriter());
  52. // @note: we are going a round trip (bell is tested twice)
  53. // to make sure the test before it is also working correctly
  54. $this->assertEquals(
  55. $a->bell()->backspace()->cr()->lf()->tab()->bell()->get(),
  56. C0::BELL.C0::BS.C0::CR.C0::LF.C0::TAB.C0::BEL
  57. );
  58. }
  59. }
  60. // EOF