EscapeSequenceEDTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. use \Bramus\Ansi\Ansi;
  3. use \Bramus\Ansi\Writers\StreamWriter;
  4. use \Bramus\Ansi\ControlFunctions\Enums\C0;
  5. use \Bramus\Ansi\ControlSequences\EscapeSequences\ED as EscapeSequenceED;
  6. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\FinalByte;
  7. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\ED;
  8. class EscapeSequenceEDTest extends PHPUnit_Framework_TestCase
  9. {
  10. public function testInstantiation()
  11. {
  12. $es = new EscapeSequenceED(ED::ALL);
  13. $this->assertInstanceOf('\Bramus\Ansi\ControlSequences\EscapeSequences\ED', $es);
  14. // Final byte must be ED
  15. $this->assertEquals(
  16. $es->getFinalByte(),
  17. FinalByte::ED
  18. );
  19. // Parameter Byte must be ED::ALL
  20. $this->assertEquals(
  21. $es->getParameterBytes(),
  22. ED::ALL
  23. );
  24. }
  25. public function testEDRaw()
  26. {
  27. // ED::ALL
  28. $this->assertEquals(
  29. new EscapeSequenceED(ED::ALL),
  30. C0::ESC.'['.ED::ALL.FinalByte::ED
  31. );
  32. // ED::UP
  33. $this->assertEquals(
  34. new EscapeSequenceED(ED::UP),
  35. C0::ESC.'['.ED::UP.FinalByte::ED
  36. );
  37. // ED::DOWN
  38. $this->assertEquals(
  39. new EscapeSequenceED(ED::DOWN),
  40. C0::ESC.'['.ED::DOWN.FinalByte::ED
  41. );
  42. }
  43. public function testAnsiEDShorthandsSingle()
  44. {
  45. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  46. $this->assertEquals(
  47. $a->eraseDisplayUp()->get(),
  48. new EscapeSequenceED(ED::UP)
  49. );
  50. $this->assertEquals(
  51. $a->eraseDisplayDown()->get(),
  52. new EscapeSequenceED(ED::DOWN)
  53. );
  54. $this->assertEquals(
  55. $a->eraseDisplay()->get(),
  56. new EscapeSequenceED(ED::ALL)
  57. );
  58. }
  59. public function testAnsiEDShorthandChained()
  60. {
  61. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  62. $es = new EscapeSequenceED(ED::ALL);
  63. $this->assertEquals(
  64. $a->ed(ED::ALL)->text('test')->get(),
  65. $es.'test'
  66. );
  67. }
  68. public function testAnsiEDShorthandsChained()
  69. {
  70. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  71. $this->assertEquals(
  72. $a->eraseDisplayUp()->eraseDisplayDown()->eraseDisplay()->text('test')->get(),
  73. (new EscapeSequenceED(ED::UP)).(new EscapeSequenceED(ED::DOWN)).(new EscapeSequenceED(ED::ALL)).'test'
  74. );
  75. }
  76. }
  77. // EOF