EscapeSequenceELTest.php 2.5 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\EL as EscapeSequenceEL;
  6. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\FinalByte;
  7. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\EL;
  8. class EscapeSequenceELTest extends PHPUnit_Framework_TestCase
  9. {
  10. public function testInstantiation()
  11. {
  12. $es = new EscapeSequenceEL(EL::ALL);
  13. $this->assertInstanceOf('\Bramus\Ansi\ControlSequences\EscapeSequences\EL', $es);
  14. // Final byte must be EL
  15. $this->assertEquals(
  16. $es->getFinalByte(),
  17. FinalByte::EL
  18. );
  19. // Parameter Byte must be EL::ALL
  20. $this->assertEquals(
  21. $es->getParameterBytes(),
  22. EL::ALL
  23. );
  24. }
  25. public function testELRaw()
  26. {
  27. // EL::ALL
  28. $this->assertEquals(
  29. new EscapeSequenceEL(EL::ALL),
  30. C0::ESC.'['.EL::ALL.FinalByte::EL
  31. );
  32. // EL::TO_EOL
  33. $this->assertEquals(
  34. new EscapeSequenceEL(EL::TO_EOL),
  35. C0::ESC.'['.EL::TO_EOL.FinalByte::EL
  36. );
  37. // EL::TO_SOL
  38. $this->assertEquals(
  39. new EscapeSequenceEL(EL::TO_SOL),
  40. C0::ESC.'['.EL::TO_SOL.FinalByte::EL
  41. );
  42. }
  43. public function testAnsiELShorthandsSingle()
  44. {
  45. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  46. $this->assertEquals(
  47. $a->eraseLine()->get(),
  48. new EscapeSequenceEL(EL::ALL)
  49. );
  50. $this->assertEquals(
  51. $a->eraseLineToEol()->get(),
  52. new EscapeSequenceEL(EL::TO_EOL)
  53. );
  54. $this->assertEquals(
  55. $a->eraseLineToSol()->get(),
  56. new EscapeSequenceEL(EL::TO_SOL)
  57. );
  58. }
  59. public function testAnsiELShorthandChained()
  60. {
  61. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  62. $es = new EscapeSequenceEL(EL::ALL);
  63. $this->assertEquals(
  64. $a->el(EL::ALL)->text('test')->get(),
  65. $es.'test'
  66. );
  67. }
  68. public function testAnsiELShorthandsChained()
  69. {
  70. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  71. $this->assertEquals(
  72. $a->eraseLine()->eraseLineToEol()->eraseLineToSol()->text('test')->get(),
  73. (new EscapeSequenceEL(EL::ALL)).(new EscapeSequenceEL(EL::TO_EOL)).(new EscapeSequenceEL(EL::TO_SOL)).'test'
  74. );
  75. }
  76. }
  77. // EOF