function TimezoneTest::setUp
Same name in other branches
- 8.9.x core/modules/simpletest/src/Tests/TimeZoneTest.php \Drupal\simpletest\Tests\TimeZoneTest::setUp()
- 8.9.x core/tests/Drupal/KernelTests/Core/Datetime/Element/TimezoneTest.php \Drupal\KernelTests\Core\Datetime\Element\TimezoneTest::setUp()
- 10 core/tests/Drupal/KernelTests/Core/Datetime/Element/TimezoneTest.php \Drupal\KernelTests\Core\Datetime\Element\TimezoneTest::setUp()
- 11.x core/tests/Drupal/KernelTests/Core/Datetime/Element/TimezoneTest.php \Drupal\KernelTests\Core\Datetime\Element\TimezoneTest::setUp()
Overrides EntityKernelTestBase::setUp
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Datetime/ Element/ TimezoneTest.php, line 161
Class
- TimezoneTest
- Tests the timezone handling of datetime and datelist element types.
Namespace
Drupal\KernelTests\Core\Datetime\ElementCode
protected function setUp() : void {
parent::setUp();
$this->installConfig([
'system',
]);
// Setup the background time zones.
$this->timezones['php initial'] = date_default_timezone_get();
$user = $this->createUser();
$user->set('timezone', $this->timezones['user'])
->save();
// This also sets PHP's assumed time.
\Drupal::currentUser()->setAccount($user);
// Set a reference date to use in tests.
$this->date = new DrupalDatetime('2000-01-01 12:00', NULL);
// Create arrays listing the dates and times of $this->date formatted
// according to the various timezones of $this->timezones.
$this->dateFormat = DateFormat::load('html_date')->getPattern();
$this->timeFormat = DateFormat::load('html_time')->getPattern();
$date = clone $this->date;
foreach ($this->timezones as $label => $timezone) {
$date->setTimezone(new \DateTimeZone($timezone));
$this->formattedDates['date'][$label] = $date->format($this->dateFormat);
$this->formattedDates['time'][$label] = $date->format($this->timeFormat);
$this->formattedDates['day'][$label] = $date->format('j');
$this->formattedDates['month'][$label] = $date->format('n');
$this->formattedDates['year'][$label] = $date->format('Y');
$this->formattedDates['hour'][$label] = $date->format('G');
$this->formattedDates['minute'][$label] = $date->format('i');
$this->formattedDates['second'][$label] = $date->format('s');
}
// Validate the timezone setup.
$this->assertEquals($this->timezones['user'], date_default_timezone_get(), 'Subsequent tests assume specific value for date_default_timezone_get().');
$this->assertEquals(date_default_timezone_get(), $this->date
->getTimezone()
->getName(), 'Subsequent tests assume DrupalDateTime objects default to Drupal user time zone if none specified');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.