function DateTimePlusTest::testDateTimestamp

Test creating dates from timestamps.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Datetime/DateTimePlusTest.php, line 129
Definition of Drupal\system\Tests\Datetime\DateTimePlusTest.

Class

DateTimePlusTest

Namespace

Drupal\system\Tests\Datetime

Code

function testDateTimestamp() {

  // Create date object from a unix timestamp and display it in
  // local time.
  $input = 0;
  $timezone = 'UTC';
  $date = new DateTimePlus($input, $timezone);
  $value = $date
    ->format('c');
  $expected = '1970-01-01T00:00:00+00:00';
  $this
    ->assertEqual($expected, $value, "Test new DateTimePlus({$input}, {$timezone}): should be {$expected}, found {$value}.");
  $expected = 'UTC';
  $value = $date
    ->getTimeZone()
    ->getName();
  $this
    ->assertEqual($expected, $value, "The current timezone is {$value}: should be {$expected}.");
  $expected = 0;
  $value = $date
    ->getOffset();
  $this
    ->assertEqual($expected, $value, "The current offset is {$value}: should be {$expected}.");
  $timezone = 'America/Los_Angeles';
  $date
    ->setTimezone(new DateTimeZone($timezone));
  $value = $date
    ->format('c');
  $expected = '1969-12-31T16:00:00-08:00';
  $this
    ->assertEqual($expected, $value, "Test \$date->setTimezone(new DateTimeZone({$timezone})): should be {$expected}, found {$value}.");
  $expected = 'America/Los_Angeles';
  $value = $date
    ->getTimeZone()
    ->getName();
  $this
    ->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
  $expected = '-28800';
  $value = $date
    ->getOffset();
  $this
    ->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");

  // Create a date using the timestamp of zero, then display its
  // value both in UTC and the local timezone.
  $input = 0;
  $timezone = 'America/Los_Angeles';
  $date = new DateTimePlus($input, $timezone);
  $offset = $date
    ->getOffset();
  $value = $date
    ->format('c');
  $expected = '1969-12-31T16:00:00-08:00';
  $this
    ->assertEqual($expected, $value, "Test new DateTimePlus({$input}, {$timezone}):  should be {$expected}, found {$value}.");
  $expected = 'America/Los_Angeles';
  $value = $date
    ->getTimeZone()
    ->getName();
  $this
    ->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
  $expected = '-28800';
  $value = $date
    ->getOffset();
  $this
    ->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");
  $timezone = 'UTC';
  $date
    ->setTimezone(new DateTimeZone($timezone));
  $value = $date
    ->format('c');
  $expected = '1970-01-01T00:00:00+00:00';
  $this
    ->assertEqual($expected, $value, "Test \$date->setTimezone(new DateTimeZone({$timezone})): should be {$expected}, found {$value}.");
  $expected = 'UTC';
  $value = $date
    ->getTimeZone()
    ->getName();
  $this
    ->assertEqual($expected, $value, "The current timezone should be {$expected}, found {$value}.");
  $expected = '0';
  $value = $date
    ->getOffset();
  $this
    ->assertEqual($expected, $value, "The current offset should be {$expected}, found {$value}.");
}