EscapeSequenceSGRTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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\SGR as EscapeSequenceSGR;
  6. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\FinalByte;
  7. use \Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR;
  8. class EscapeSequenceSGRTest extends PHPUnit_Framework_TestCase
  9. {
  10. public function testInstantiation()
  11. {
  12. $es = new EscapeSequenceSGR();
  13. $this->assertInstanceOf('\Bramus\Ansi\ControlSequences\EscapeSequences\SGR', $es);
  14. // Final byte must be SGR
  15. $this->assertEquals(
  16. $es->getFinalByte(),
  17. FinalByte::SGR
  18. );
  19. // Parameter Byte must be SGR::STYLE_NONE
  20. $this->assertEquals(
  21. $es->getParameterBytes(),
  22. SGR::STYLE_NONE
  23. );
  24. }
  25. public function testSgrRaw()
  26. {
  27. // One Parameter
  28. $this->assertEquals(
  29. new EscapeSequenceSGR(SGR::STYLE_NONE),
  30. C0::ESC.'['.SGR::STYLE_NONE.FinalByte::SGR
  31. );
  32. // Multiple Parameters
  33. $this->assertEquals(
  34. new EscapeSequenceSGR(array(SGR::STYLE_NONE, SGR::STYLE_BOLD)),
  35. C0::ESC.'['.SGR::STYLE_NONE.';'.SGR::STYLE_BOLD.FinalByte::SGR
  36. );
  37. }
  38. public function testAnsiSgrShorthandsSingle()
  39. {
  40. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  41. $this->assertEquals(
  42. $a->sgr(SGR::COLOR_FG_RED)->get(),
  43. new EscapeSequenceSGR(SGR::COLOR_FG_RED)
  44. );
  45. $this->assertEquals(
  46. $a->sgr()->get(),
  47. new EscapeSequenceSGR(SGR::STYLE_NONE)
  48. );
  49. }
  50. public function testAnsiSgrShorthandChained()
  51. {
  52. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  53. $this->assertEquals(
  54. $a->sgr(SGR::COLOR_FG_RED)->text('test')->get(),
  55. (new EscapeSequenceSGR(SGR::COLOR_FG_RED)).'test'
  56. );
  57. }
  58. public function testAnsiSgrShorthandsChained()
  59. {
  60. $a = new Ansi(new \Bramus\Ansi\Writers\BufferWriter());
  61. $this->assertEquals(
  62. $a->bold()->underline()->color(SGR::COLOR_FG_RED)->underline()->blink()->text('test')->reset()->get(),
  63. (new EscapeSequenceSGR(SGR::STYLE_BOLD)).(new EscapeSequenceSGR(SGR::STYLE_UNDERLINE)).(new EscapeSequenceSGR(SGR::COLOR_FG_RED)).(new EscapeSequenceSGR(SGR::STYLE_UNDERLINE)).(new EscapeSequenceSGR(SGR::STYLE_BLINK)).'test'.(new EscapeSequenceSGR(SGR::STYLE_NONE))
  64. );
  65. }
  66. }
  67. // EOF