TimezoneResolverTest.php

Same filename in other branches
  1. 8.9.x core/modules/system/tests/src/Kernel/TimezoneResolverTest.php
  2. 10 core/modules/system/tests/src/Kernel/TimezoneResolverTest.php
  3. 11.x core/modules/system/tests/src/Kernel/TimezoneResolverTest.php

Namespace

Drupal\Tests\system\Kernel

File

core/modules/system/tests/src/Kernel/TimezoneResolverTest.php

View source
<?php

namespace Drupal\Tests\system\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\user\Traits\UserCreationTrait;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\KernelEvents;

/**
 * @coversDefaultClass \Drupal\system\TimeZoneResolver
 * @group system
 */
class TimezoneResolverTest extends KernelTestBase {
    use UserCreationTrait;
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'system',
        'user',
    ];
    
    /**
     * Tests time zone resolution.
     */
    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());
    }

}

Classes

Title Deprecated Summary
TimezoneResolverTest @coversDefaultClass \Drupal\system\TimeZoneResolver @group system

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.