You are here

public function TimezoneResolverTest::testGetTimeZone in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/src/Kernel/TimezoneResolverTest.php \Drupal\Tests\system\Kernel\TimezoneResolverTest::testGetTimeZone()

Tests time zone resolution.

File

core/modules/system/tests/src/Kernel/TimezoneResolverTest.php, line 31

Class

TimezoneResolverTest
@coversDefaultClass \Drupal\system\TimeZoneResolver @group system

Namespace

Drupal\Tests\system\Kernel

Code

public function testGetTimeZone() {
  $this
    ->installEntitySchema('user');
  $this
    ->installSchema('system', [
    'sequences',
  ]);
  $this
    ->installConfig([
    'system',
  ]);

  // Check the default test timezone.
  $this
    ->assertEquals('Australia/Sydney', date_default_timezone_get());

  // Test the configured system timezone.
  $configFactory = $this->container
    ->get('config.factory');
  $timeZoneConfig = $configFactory
    ->getEditable('system.date');
  $timeZoneConfig
    ->set('timezone.default', 'Australia/Adelaide');
  $timeZoneConfig
    ->save();
  $eventDispatcher = $this->container
    ->get('event_dispatcher');
  $kernel = $this->container
    ->get('kernel');
  $eventDispatcher
    ->dispatch(new RequestEvent($kernel, Request::create('http://www.example.com'), HttpKernelInterface::MASTER_REQUEST, KernelEvents::REQUEST));
  $this
    ->assertEquals('Australia/Adelaide', date_default_timezone_get());
  $user = $this
    ->createUser([]);
  $user
    ->set('timezone', 'Australia/Lord_Howe');
  $user
    ->save();
  $this
    ->setCurrentUser($user);
  $this
    ->assertEquals('Australia/Lord_Howe', date_default_timezone_get());
}