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->getMockBuilder('Symfony\Component\HttpFoundation\RequestStack')->getMock();
41 $this->time = new Time($this->requestStack);
45 * Tests the getRequestTime method.
47 * @covers ::getRequestTime
49 public function testGetRequestTime() {
52 $request = Request::createFromGlobals();
53 $request->server->set('REQUEST_TIME', $expected);
55 // Mocks a the request stack getting the current request.
56 $this->requestStack->expects($this->any())
57 ->method('getCurrentRequest')
58 ->willReturn($request);
60 $this->assertEquals($expected, $this->time->getRequestTime());
64 * Tests the getRequestMicroTime method.
66 * @covers ::getRequestMicroTime
68 public function testGetRequestMicroTime() {
69 $expected = 1234567.89;
71 $request = Request::createFromGlobals();
72 $request->server->set('REQUEST_TIME_FLOAT', $expected);
74 // Mocks a the request stack getting the current request.
75 $this->requestStack->expects($this->any())
76 ->method('getCurrentRequest')
77 ->willReturn($request);
79 $this->assertEquals($expected, $this->time->getRequestMicroTime());
83 * Tests the getCurrentTime method.
85 * @covers ::getCurrentTime
87 public function testGetCurrentTime() {
89 $this->assertEquals($expected, $this->time->getCurrentTime());
93 * Tests the getCurrentMicroTime method.
95 * @covers ::getCurrentMicroTime
97 public function testGetCurrentMicroTime() {
98 $expected = 1234567.89;
99 $this->assertEquals($expected, $this->time->getCurrentMicroTime());
104 namespace Drupal\Component\Datetime;
107 * Shadow time() system call.
116 * Shadow microtime system call.
120 function microtime() {