3 namespace Drupal\Tests\Component\Datetime;
5 use Drupal\Component\Datetime\Time;
6 use PHPUnit\Framework\TestCase;
7 use Symfony\Component\HttpFoundation\Request;
10 * @coversDefaultClass \Drupal\Component\Datetime\Time
13 * Isolate the tests to prevent side effects from altering system time.
15 * @runTestsInSeparateProcesses
16 * @preserveGlobalState disabled
18 class TimeTest extends TestCase {
21 * The mocked request stack.
23 * @var \Symfony\Component\HttpFoundation\RequestStack|\PHPUnit_Framework_MockObject_MockObject
25 protected $requestStack;
28 * The mocked time class.
30 * @var \Drupal\Component\Datetime\Time
37 protected function setUp() {
40 $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
42 $this->time = new Time($this->requestStack);
46 * Tests the getRequestTime method.
48 * @covers ::getRequestTime
50 public function testGetRequestTime() {
53 $request = Request::createFromGlobals();
54 $request->server->set('REQUEST_TIME', $expected);
56 // Mocks a the request stack getting the current request.
57 $this->requestStack->expects($this->any())
58 ->method('getCurrentRequest')
59 ->willReturn($request);
61 $this->assertEquals($expected, $this->time->getRequestTime());
65 * Tests the getRequestMicroTime method.
67 * @covers ::getRequestMicroTime
69 public function testGetRequestMicroTime() {
70 $expected = 1234567.89;
72 $request = Request::createFromGlobals();
73 $request->server->set('REQUEST_TIME_FLOAT', $expected);
75 // Mocks a the request stack getting the current request.
76 $this->requestStack->expects($this->any())
77 ->method('getCurrentRequest')
78 ->willReturn($request);
80 $this->assertEquals($expected, $this->time->getRequestMicroTime());
84 * Tests the getCurrentTime method.
86 * @covers ::getCurrentTime
88 public function testGetCurrentTime() {
90 $this->assertEquals($expected, $this->time->getCurrentTime());
94 * Tests the getCurrentMicroTime method.
96 * @covers ::getCurrentMicroTime
98 public function testGetCurrentMicroTime() {
99 $expected = 1234567.89;
100 $this->assertEquals($expected, $this->time->getCurrentMicroTime());
105 namespace Drupal\Component\Datetime;
108 * Shadow time() system call.
117 * Shadow microtime system call.
121 function microtime() {