ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
Monolog\Handler\RotatingFileHandlerTest Class Reference

Monolog More...

+ Inheritance diagram for Monolog\Handler\RotatingFileHandlerTest:
+ Collaboration diagram for Monolog\Handler\RotatingFileHandlerTest:

Public Member Functions

 setUp ()
 
 testRotationCreatesNewFile ()
 
 testRotation ($createFile, $dateFormat, $timeCallback)
 rotationTests More...
 
 rotationTests ()
 
 testAllowOnlyFixedDefinedDateFormats ($dateFormat, $valid)
 dateFormatProvider More...
 
 dateFormatProvider ()
 
 testDisallowFilenameFormatsWithoutDate ($filenameFormat, $valid)
 filenameFormatProvider More...
 
 filenameFormatProvider ()
 
 testReuseCurrentFile ()
 
 tearDown ()
 

Data Fields

 $lastError
 This var should be private but then the anonymous function in the setUp method won't be able to set it. More...
 

Private Member Functions

 assertErrorWasTriggered ($code, $message)
 

Additional Inherited Members

- Protected Member Functions inherited from Monolog\TestCase
 getRecord ($level=Logger::WARNING, $message='test', $context=array())
 
 getMultipleRecords ()
 
 getIdentityFormatter ()
 

Detailed Description

Monolog

Definition at line 20 of file RotatingFileHandlerTest.php.

Member Function Documentation

◆ assertErrorWasTriggered()

Monolog\Handler\RotatingFileHandlerTest::assertErrorWasTriggered (   $code,
  $message 
)
private

Definition at line 48 of file RotatingFileHandlerTest.php.

References $code.

Referenced by Monolog\Handler\RotatingFileHandlerTest\testAllowOnlyFixedDefinedDateFormats(), and Monolog\Handler\RotatingFileHandlerTest\testDisallowFilenameFormatsWithoutDate().

49  {
50  if (empty($this->lastError)) {
51  $this->fail(
52  sprintf(
53  'Failed asserting that error with code `%d` and message `%s` was triggered',
54  $code,
55  $message
56  )
57  );
58  }
59  $this->assertEquals($code, $this->lastError['code'], sprintf('Expected an error with code %d to be triggered, got `%s` instead', $code, $this->lastError['code']));
60  $this->assertEquals($message, $this->lastError['message'], sprintf('Expected an error with message `%d` to be triggered, got `%s` instead', $message, $this->lastError['message']));
61  }
$code
Definition: example_050.php:99
+ Here is the caller graph for this function:

◆ dateFormatProvider()

Monolog\Handler\RotatingFileHandlerTest::dateFormatProvider ( )

◆ filenameFormatProvider()

Monolog\Handler\RotatingFileHandlerTest::filenameFormatProvider ( )

Definition at line 181 of file RotatingFileHandlerTest.php.

References array.

182  {
183  return array(
184  array('{filename}', false),
185  array('{filename}-{date}', true),
186  array('{date}', true),
187  array('foobar-{date}', true),
188  array('foo-{date}-bar', true),
189  array('{date}-foobar', true),
190  array('foobar', false),
191  );
192  }
Create styles array
The data for the language used.

◆ rotationTests()

Monolog\Handler\RotatingFileHandlerTest::rotationTests ( )

Definition at line 107 of file RotatingFileHandlerTest.php.

References array, date, Monolog\Handler\RotatingFileHandler\FILE_PER_DAY, Monolog\Handler\RotatingFileHandler\FILE_PER_MONTH, Monolog\Handler\RotatingFileHandler\FILE_PER_YEAR, and time.

108  {
109  $now = time();
110  $dayCallback = function($ago) use ($now) {
111  return $now + 86400 * $ago;
112  };
113  $monthCallback = function($ago) {
114  return gmmktime(0, 0, 0, date('n') + $ago, date('d'), date('Y'));
115  };
116  $yearCallback = function($ago) {
117  return gmmktime(0, 0, 0, date('n'), date('d'), date('Y') + $ago);
118  };
119 
120  return array(
121  'Rotation is triggered when the file of the current day is not present'
122  => array(true, RotatingFileHandler::FILE_PER_DAY, $dayCallback),
123  'Rotation is not triggered when the file of the current day is already present'
124  => array(false, RotatingFileHandler::FILE_PER_DAY, $dayCallback),
125 
126  'Rotation is triggered when the file of the current month is not present'
127  => array(true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback),
128  'Rotation is not triggered when the file of the current month is already present'
129  => array(false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback),
130 
131  'Rotation is triggered when the file of the current year is not present'
132  => array(true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback),
133  'Rotation is not triggered when the file of the current year is already present'
134  => array(false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback),
135  );
136  }
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
Create styles array
The data for the language used.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ setUp()

Monolog\Handler\RotatingFileHandlerTest::setUp ( )

Definition at line 30 of file RotatingFileHandlerTest.php.

References $code, and array.

31  {
32  $dir = __DIR__.'/Fixtures';
33  chmod($dir, 0777);
34  if (!is_writable($dir)) {
35  $this->markTestSkipped($dir.' must be writable to test the RotatingFileHandler.');
36  }
37  $this->lastError = null;
38  $self = $this;
39  // workaround with &$self used for PHP 5.3
40  set_error_handler(function($code, $message) use (&$self) {
41  $self->lastError = array(
42  'code' => $code,
43  'message' => $message,
44  );
45  });
46  }
$code
Definition: example_050.php:99
Create styles array
The data for the language used.

◆ tearDown()

Monolog\Handler\RotatingFileHandlerTest::tearDown ( )

Definition at line 204 of file RotatingFileHandlerTest.php.

References $file.

205  {
206  foreach (glob(__DIR__.'/Fixtures/*.rot') as $file) {
207  unlink($file);
208  }
209  restore_error_handler();
210  }
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file

◆ testAllowOnlyFixedDefinedDateFormats()

Monolog\Handler\RotatingFileHandlerTest::testAllowOnlyFixedDefinedDateFormats (   $dateFormat,
  $valid 
)

dateFormatProvider

Definition at line 141 of file RotatingFileHandlerTest.php.

References $valid, and Monolog\Handler\RotatingFileHandlerTest\assertErrorWasTriggered().

142  {
143  $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);
144  $handler->setFilenameFormat('{filename}-{date}', $dateFormat);
145  if (!$valid) {
147  E_USER_DEPRECATED,
148  'Invalid date format - format must be one of RotatingFileHandler::FILE_PER_DAY ("Y-m-d"), '.
149  'RotatingFileHandler::FILE_PER_MONTH ("Y-m") or RotatingFileHandler::FILE_PER_YEAR ("Y"), '.
150  'or you can set one of the date formats using slashes, underscores and/or dots instead of dashes.'
151  );
152  }
153  }
$valid
+ Here is the call graph for this function:

◆ testDisallowFilenameFormatsWithoutDate()

Monolog\Handler\RotatingFileHandlerTest::testDisallowFilenameFormatsWithoutDate (   $filenameFormat,
  $valid 
)

filenameFormatProvider

Definition at line 169 of file RotatingFileHandlerTest.php.

References $valid, Monolog\Handler\RotatingFileHandlerTest\assertErrorWasTriggered(), and Monolog\Handler\RotatingFileHandler\FILE_PER_DAY.

170  {
171  $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);
172  $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY);
173  if (!$valid) {
175  E_USER_DEPRECATED,
176  'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.'
177  );
178  }
179  }
$valid
+ Here is the call graph for this function:

◆ testReuseCurrentFile()

Monolog\Handler\RotatingFileHandlerTest::testReuseCurrentFile ( )

Definition at line 194 of file RotatingFileHandlerTest.php.

References $log, date, Monolog\TestCase\getIdentityFormatter(), and Monolog\TestCase\getRecord().

195  {
196  $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot';
197  file_put_contents($log, "foo");
198  $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot');
199  $handler->setFormatter($this->getIdentityFormatter());
200  $handler->handle($this->getRecord());
201  $this->assertEquals('footest', file_get_contents($log));
202  }
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
+ Here is the call graph for this function:

◆ testRotation()

Monolog\Handler\RotatingFileHandlerTest::testRotation (   $createFile,
  $dateFormat,
  $timeCallback 
)

rotationTests

Definition at line 79 of file RotatingFileHandlerTest.php.

References $log, date, Monolog\TestCase\getIdentityFormatter(), and Monolog\TestCase\getRecord().

80  {
81  touch($old1 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-1)).'.rot');
82  touch($old2 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-2)).'.rot');
83  touch($old3 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-3)).'.rot');
84  touch($old4 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-4)).'.rot');
85 
86  $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot';
87 
88  if ($createFile) {
89  touch($log);
90  }
91 
92  $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);
93  $handler->setFormatter($this->getIdentityFormatter());
94  $handler->setFilenameFormat('{filename}-{date}', $dateFormat);
95  $handler->handle($this->getRecord());
96 
97  $handler->close();
98 
99  $this->assertTrue(file_exists($log));
100  $this->assertTrue(file_exists($old1));
101  $this->assertEquals($createFile, file_exists($old2));
102  $this->assertEquals($createFile, file_exists($old3));
103  $this->assertEquals($createFile, file_exists($old4));
104  $this->assertEquals('test', file_get_contents($log));
105  }
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
+ Here is the call graph for this function:

◆ testRotationCreatesNewFile()

Monolog\Handler\RotatingFileHandlerTest::testRotationCreatesNewFile ( )

Definition at line 63 of file RotatingFileHandlerTest.php.

References $log, date, Monolog\TestCase\getIdentityFormatter(), Monolog\TestCase\getRecord(), and time.

64  {
65  touch(__DIR__.'/Fixtures/foo-'.date('Y-m-d', time() - 86400).'.rot');
66 
67  $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot');
68  $handler->setFormatter($this->getIdentityFormatter());
69  $handler->handle($this->getRecord());
70 
71  $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot';
72  $this->assertTrue(file_exists($log));
73  $this->assertEquals('test', file_get_contents($log));
74  }
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
+ Here is the call graph for this function:

Field Documentation

◆ $lastError

Monolog\Handler\RotatingFileHandlerTest::$lastError

This var should be private but then the anonymous function in the setUp method won't be able to set it.

$this cant't be used in the anonymous function in setUp because PHP 5.3 does not support it.

Definition at line 28 of file RotatingFileHandlerTest.php.


The documentation for this class was generated from the following file: