test-shell.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. use cli\Shell;
  3. /**
  4. * Class TestShell
  5. */
  6. class TestShell extends PHPUnit_Framework_TestCase {
  7. /**
  8. * Test getting TERM columns.
  9. */
  10. function testColumns() {
  11. // Save.
  12. $env_term = getenv( 'TERM' );
  13. $env_columns = getenv( 'COLUMNS' );
  14. $env_is_windows = getenv( 'WP_CLI_TEST_IS_WINDOWS' );
  15. $env_shell_columns_reset = getenv( 'PHP_CLI_TOOLS_TEST_SHELL_COLUMNS_RESET' );
  16. putenv( 'PHP_CLI_TOOLS_TEST_SHELL_COLUMNS_RESET=1' );
  17. // No TERM should result in default 80.
  18. putenv( 'TERM' );
  19. putenv( 'COLUMNS=80' );
  20. putenv( 'WP_CLI_TEST_IS_WINDOWS=0' );
  21. $columns = cli\Shell::columns();
  22. $this->assertSame( 80, $columns );
  23. putenv( 'WP_CLI_TEST_IS_WINDOWS=1' );
  24. $columns = cli\Shell::columns();
  25. $this->assertSame( 80, $columns );
  26. // TERM and COLUMNS should result in whatever COLUMNS is.
  27. putenv( 'TERM=vt100' );
  28. putenv( 'COLUMNS=100' );
  29. putenv( 'WP_CLI_TEST_IS_WINDOWS=0' );
  30. $columns = cli\Shell::columns();
  31. $this->assertSame( 100, $columns );
  32. putenv( 'WP_CLI_TEST_IS_WINDOWS=1' );
  33. $columns = cli\Shell::columns();
  34. $this->assertSame( 100, $columns );
  35. // Restore.
  36. putenv( false === $env_term ? 'TERM' : "TERM=$env_term" );
  37. putenv( false === $env_columns ? 'COLUMNS' : "COLUMNS=$env_columns" );
  38. putenv( false === $env_is_windows ? 'WP_CLI_TEST_IS_WINDOWS' : "WP_CLI_TEST_IS_WINDOWS=$env_is_windows" );
  39. putenv( false === $env_shell_columns_reset ? 'PHP_CLI_TOOLS_TEST_SHELL_COLUMNS_RESET' : "PHP_CLI_TOOLS_TEST_SHELL_COLUMNS_RESET=$env_shell_columns_reset" );
  40. }
  41. }