function DatetimeFormElementTest::testDatetimeLocalValueCallback

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

Test only applied to 'datetime-local' date element.

@covers ::valueCallback

File

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

Class

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

Namespace

Drupal\KernelTests\Core\Datetime\Element

Code

public function testDatetimeLocalValueCallback() : void {
    $element = [
        '#type' => 'datetime',
        '#date_date_element' => 'datetime-local',
        '#date_time_element' => 'none',
    ];
    $input = [
        'date' => '2025-02-18T12:00',
    ];
    $form_state = new FormState();
    $form_state->setValue('datetime_local_picker', [
        'date' => '2025-02-18T12:00',
    ]);
    $result = Datetime::valueCallback($element, $input, $form_state);
    $this->assertIsArray($result);
    $this->assertArrayHasKey('date', $result);
    $this->assertEquals('2025-02-18', $result['date']);
    $this->assertArrayHasKey('time', $result);
    $this->assertEquals('12:00:00', $result['time']);
    $this->assertArrayHasKey('object', $result);
    $this->assertNotEmpty($result['object']);
    $this->assertInstanceOf(DrupalDateTime::class, $result['object']);
}

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