silverstripe-framework/tests/php/Forms/TimeFieldReadonlyTest.php

47 lines
1.4 KiB
PHP

<?php
namespace SilverStripe\Forms;
use IntlDateFormatter;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Forms\TimeField;
use SilverStripe\Forms\TimeField_Readonly;
use SilverStripe\i18n\i18n;
class TimeFieldReadonlyTest extends SapphireTest
{
protected function setUp(): void
{
parent::setUp();
i18n::set_locale('en_NZ');
}
public function testPerformReadonly()
{
$field = new TimeField('Time', 'Time', '23:00:00');
$roField = $field->performReadonlyTransformation();
$this->assertInstanceOf(TimeField_Readonly::class, $roField);
$this->assertTrue($roField->isReadonly());
$this->assertEquals($roField->dataValue(), '23:00:00');
}
public function testSettingsCarryOver()
{
$field = new TimeField('Time', 'Time');
$field
->setHTML5(false)
->setTimeFormat('KK:mma')
->setTimezone('America/Halifax')
->setLocale('en_US')
->setTimeLength(IntlDateFormatter::SHORT)
->setValue('23:00:00');
$roField = $field->performReadonlyTransformation();
$this->assertFalse($roField->getHTML5());
$this->assertEquals($roField->getTimeFormat(), 'KK:mma');
$this->assertEquals($roField->getTimezone(), 'America/Halifax');
$this->assertEquals($roField->getLocale(), 'en_US');
$this->assertEquals($roField->getTimeLength(), IntlDateFormatter::SHORT);
}
}