1<?php 2 3namespace Drupal\Tests\system\Kernel; 4 5use Drupal\KernelTests\KernelTestBase; 6use Drupal\Tests\user\Traits\UserCreationTrait; 7use Symfony\Component\HttpFoundation\Request; 8use Symfony\Component\HttpKernel\Event\RequestEvent; 9use Symfony\Component\HttpKernel\HttpKernelInterface; 10use Symfony\Component\HttpKernel\KernelEvents; 11 12/** 13 * @coversDefaultClass \Drupal\system\TimeZoneResolver 14 * @group system 15 */ 16class TimezoneResolverTest extends KernelTestBase { 17 18 use UserCreationTrait; 19 20 /** 21 * {@inheritdoc} 22 */ 23 protected static $modules = [ 24 'system', 25 'user', 26 ]; 27 28 /** 29 * Tests time zone resolution. 30 */ 31 public function testGetTimeZone() { 32 $this->installEntitySchema('user'); 33 $this->installSchema('system', ['sequences']); 34 $this->installConfig(['system']); 35 36 // Check the default test timezone. 37 $this->assertEquals('Australia/Sydney', date_default_timezone_get()); 38 39 // Test the configured system timezone. 40 $configFactory = $this->container->get('config.factory'); 41 $timeZoneConfig = $configFactory->getEditable('system.date'); 42 $timeZoneConfig->set('timezone.default', 'Australia/Adelaide'); 43 $timeZoneConfig->save(); 44 45 $eventDispatcher = $this->container->get('event_dispatcher'); 46 $kernel = $this->container->get('kernel'); 47 48 $eventDispatcher->dispatch(new RequestEvent($kernel, Request::create('http://www.example.com'), HttpKernelInterface::MASTER_REQUEST, KernelEvents::REQUEST)); 49 50 $this->assertEquals('Australia/Adelaide', date_default_timezone_get()); 51 52 $user = $this->createUser([]); 53 $user->set('timezone', 'Australia/Lord_Howe'); 54 $user->save(); 55 56 $this->setCurrentUser($user); 57 58 $this->assertEquals('Australia/Lord_Howe', date_default_timezone_get()); 59 60 } 61 62} 63