LogTargetTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace yiiunit\debug;
  3. use Yii;
  4. use yii\debug\LogTarget;
  5. use yii\debug\Module;
  6. use yii\log\Logger;
  7. class LogTargetTest extends TestCase
  8. {
  9. public function testGetRequestTime()
  10. {
  11. Yii::$app->getRequest()->setUrl('dummy');
  12. $module = new Module('debug');
  13. $module->bootstrap(Yii::$app);
  14. $logTarget = new LogTarget($module);
  15. $data = $this->invoke($logTarget, 'collectSummary');
  16. self::assertSame($_SERVER['REQUEST_TIME_FLOAT'], $data['time']);
  17. }
  18. public function testLogPanelClosures()
  19. {
  20. Yii::$app->getRequest()->setUrl('dummy');
  21. $module = new Module('debug');
  22. $module->bootstrap(Yii::$app);
  23. $logTarget = $module->logTarget;
  24. // Logs to test
  25. Yii::debug("qwe");
  26. Yii::warning("asd");
  27. Yii::info(['test_callback' => function($cbArg) {
  28. return $cbArg . 'cbResult';
  29. }]);
  30. Yii::$app->log->getLogger()->flush(true);
  31. $manifest = $logTarget->loadManifest();
  32. $lastLogEntry = reset($manifest);
  33. $this->assertNotEmpty($lastLogEntry);
  34. $logTarget->loadTagToPanels($lastLogEntry['tag']);
  35. $panelData = $module->panels['log']->data;
  36. // Actual tests
  37. $this->assertArrayHasKey('messages', $panelData);
  38. $this->assertEquals('qwe', $panelData['messages'][0][0]);
  39. $this->assertEquals(Logger::LEVEL_TRACE, $panelData['messages'][0][1]);
  40. $this->assertEquals('asd', $panelData['messages'][1][0]);
  41. $this->assertEquals(Logger::LEVEL_WARNING, $panelData['messages'][1][1]);
  42. $this->assertContains('test_callback', $panelData['messages'][2][0]);
  43. $this->assertContains('function($cbArg)', $panelData['messages'][2][0]);
  44. $this->assertContains("return \$cbArg . 'cbResult'", $panelData['messages'][2][0]);
  45. $this->assertEquals(Logger::LEVEL_INFO, $panelData['messages'][2][1]);
  46. }
  47. protected function setUp()
  48. {
  49. parent::setUp();
  50. $this->mockWebApplication();
  51. }
  52. }