function DatetimeFormElementTest::testDatetimeTimeOnlyValueCallback

Checks expected values are returned by ::valueCallback().

Test only applied to time-only datetime element.

@legacy-covers ::valueCallback

File

core/tests/Drupal/KernelTests/Core/Datetime/Element/DatetimeFormElementTest.php, line 194

Class

DatetimeFormElementTest
Tests static callbacks returns and form submission with datetime elements.

Namespace

Drupal\KernelTests\Core\Datetime\Element

Code

public function testDatetimeTimeOnlyValueCallback() : void {
  $element = [
    '#type' => 'datetime',
    '#date_date_element' => 'none',
    '#date_time_element' => 'time',
    '#date_time_format' => 'H:i:s',
  ];
  $input = [
    'time' => '14:30:00',
  ];
  $form_state = new FormState();
  $form_state->setValue('datetime_time_only', [
    'time' => '14:30',
  ]);
  $result = Datetime::valueCallback($element, $input, $form_state);
  $this->assertIsArray($result);
  $this->assertArrayHasKey('time', $result);
  $this->assertEquals('14:30:00', $result['time']);
  $this->assertArrayHasKey('object', $result);
  $this->assertInstanceOf(DrupalDateTime::class, $result['object']);
  $this->assertEquals('14:30:00', $result['object']->format('H:i:s'));
}

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