UseInDockerTest.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace Nekonomokochan\Tests;
  3. use Nekonomokochan\PhpJsonLogger\LoggerBuilder;
  4. use Nekonomokochan\PhpJsonLogger\SlackHandlerBuilder;
  5. use PHPUnit\Framework\TestCase;
  6. /**
  7. * Class UseInDockerTest
  8. * @package Nekonomokochan\Tests
  9. */
  10. class UseInDockerTest extends TestCase
  11. {
  12. /**
  13. * @var string
  14. */
  15. private $outputFileBaseName;
  16. /**
  17. * @var string
  18. */
  19. private $outputFileName;
  20. /**
  21. * Delete the log file used last time to test the contents of the log file
  22. */
  23. public function setUp()
  24. {
  25. parent::setUp();
  26. $this->outputFileBaseName = '/tmp/docker-log-test.log';
  27. $this->outputFileName = '/tmp/docker-log-test-' . date('Y-m-d') . '.log';
  28. if (file_exists($this->outputFileName)) {
  29. unlink($this->outputFileName);
  30. }
  31. }
  32. /**
  33. * @test
  34. * @throws \Monolog\Handler\MissingExtensionException
  35. */
  36. public function outputStdLogWithSetFileName()
  37. {
  38. $exception = new \Exception('testOutputStdLogWithSetFileName', 500);
  39. $context = [
  40. 'name' => 'keitakn',
  41. 'email' => 'dummy@email.com',
  42. 'message' => 'testOutputStdLogWithSetFileName',
  43. ];
  44. $slackToken = getenv('PHP_JSON_LOGGER_SLACK_TOKEN', true) ?: getenv('PHP_JSON_LOGGER_SLACK_TOKEN');
  45. $slackChannel = getenv('PHP_JSON_LOGGER_SLACK_CHANNEL', true) ?: getenv('PHP_JSON_LOGGER_SLACK_CHANNEL');
  46. $slackHandlerBuilder = new SlackHandlerBuilder($slackToken, $slackChannel);
  47. $slackHandlerBuilder->setLevel(LoggerBuilder::CRITICAL);
  48. $_SERVER['REQUEST_URI'] = '/tests/notifications';
  49. $_SERVER['REMOTE_ADDR'] = '192.168.10.10';
  50. $_SERVER['REQUEST_METHOD'] = 'POST';
  51. $_SERVER['SERVER_NAME'] = 'cat-moko.localhost';
  52. $_SERVER['HTTP_REFERER'] = 'https://github.com/nekonomokochan/php-json-logger/issues/50';
  53. $_SERVER['SERVER_ADDR'] = '10.0.0.11';
  54. $_SERVER['HTTP_USER_AGENT'] = 'Chrome';
  55. $loggerBuilder = new LoggerBuilder();
  56. $loggerBuilder->setFileName($this->outputFileBaseName);
  57. $loggerBuilder->setSlackHandler($slackHandlerBuilder->build());
  58. $loggerBuilder->setUseInDocker(true);
  59. $logger = $loggerBuilder->build();
  60. $logger->critical($exception, $context);
  61. unset($_SERVER['REQUEST_URI']);
  62. unset($_SERVER['REMOTE_ADDR']);
  63. unset($_SERVER['REQUEST_METHOD']);
  64. unset($_SERVER['SERVER_NAME']);
  65. unset($_SERVER['HTTP_REFERER']);
  66. unset($_SERVER['SERVER_ADDR']);
  67. unset($_SERVER['HTTP_USER_AGENT']);
  68. $this->assertFalse(file_exists($this->outputFileName));
  69. }
  70. /**
  71. * @test
  72. * @throws \Monolog\Handler\MissingExtensionException
  73. */
  74. public function outputStdLogWithNoSetFileName()
  75. {
  76. $exception = new \Exception('testOutputStdLogWithNoSetFileName', 500);
  77. $context = [
  78. 'name' => 'keitakn',
  79. 'email' => 'dummy@email.com',
  80. 'message' => 'testOutputStdLogWithNoSetFileName',
  81. ];
  82. $slackToken = getenv('PHP_JSON_LOGGER_SLACK_TOKEN', true) ?: getenv('PHP_JSON_LOGGER_SLACK_TOKEN');
  83. $slackChannel = getenv('PHP_JSON_LOGGER_SLACK_CHANNEL', true) ?: getenv('PHP_JSON_LOGGER_SLACK_CHANNEL');
  84. $slackHandlerBuilder = new SlackHandlerBuilder($slackToken, $slackChannel);
  85. $slackHandlerBuilder->setLevel(LoggerBuilder::CRITICAL);
  86. $_SERVER['REQUEST_URI'] = '/tests/notifications';
  87. $_SERVER['REMOTE_ADDR'] = '192.168.10.10';
  88. $_SERVER['REQUEST_METHOD'] = 'POST';
  89. $_SERVER['SERVER_NAME'] = 'cat-moko.localhost';
  90. $_SERVER['HTTP_REFERER'] = 'https://github.com/nekonomokochan/php-json-logger/issues/50';
  91. $_SERVER['SERVER_ADDR'] = '10.0.0.11';
  92. $_SERVER['HTTP_USER_AGENT'] = 'Chrome';
  93. $loggerBuilder = new LoggerBuilder();
  94. $loggerBuilder->setSlackHandler($slackHandlerBuilder->build());
  95. $loggerBuilder->setUseInDocker(true);
  96. $logger = $loggerBuilder->build();
  97. $logger->critical($exception, $context);
  98. unset($_SERVER['REQUEST_URI']);
  99. unset($_SERVER['REMOTE_ADDR']);
  100. unset($_SERVER['REQUEST_METHOD']);
  101. unset($_SERVER['SERVER_NAME']);
  102. unset($_SERVER['HTTP_REFERER']);
  103. unset($_SERVER['SERVER_ADDR']);
  104. unset($_SERVER['HTTP_USER_AGENT']);
  105. $this->assertFalse(file_exists($this->outputFileName));
  106. }
  107. }