mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
84 lines
2.8 KiB
PHP
84 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace SilverStripe\Forms\Tests;
|
|
|
|
use SilverStripe\Dev\SapphireTest;
|
|
use SilverStripe\Forms\DateField_Disabled;
|
|
use SilverStripe\i18n\i18n;
|
|
use SilverStripe\ORM\FieldType\DBDatetime;
|
|
|
|
class DateFieldDisabledTest extends SapphireTest
|
|
{
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
// Set to an explicit locale so project-level locale swapping doesn't affect tests
|
|
i18n::set_locale('en_US');
|
|
DBDatetime::set_mock_now('2011-02-01 8:34:00');
|
|
}
|
|
|
|
public function testFieldToday()
|
|
{
|
|
// Today date with normal local
|
|
$actual = DateField_Disabled::create('Test')
|
|
->setValue('2011-02-01')
|
|
->Field();
|
|
$expected = '<span class="readonly" id="Test">Feb 1, 2011 (today)</span>';
|
|
$this->assertEquals($expected, $actual);
|
|
|
|
// Test today's date with time
|
|
$actual = DateField_Disabled::create('Test')
|
|
->setValue('2011-02-01 10:34:00')
|
|
->Field();
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
|
|
public function testFieldWithDifferentDay()
|
|
{
|
|
// Test past
|
|
$actual = DateField_Disabled::create('Test')
|
|
->setValue('2011-01-27')
|
|
->Field();
|
|
$expected = '<span class="readonly" id="Test">Jan 27, 2011, 5 days ago</span>';
|
|
$this->assertEquals($expected, $actual);
|
|
|
|
// Test future
|
|
$actual = DateField_Disabled::create('Test')
|
|
->setValue('2011-02-06')
|
|
->Field();
|
|
$expected = '<span class="readonly" id="Test">Feb 6, 2011, in 5 days</span>';
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
|
|
public function testFieldWithDifferentLocal()
|
|
{
|
|
// Test different local
|
|
$actual = DateField_Disabled::create('Test')
|
|
->setValue('2011-02-06')
|
|
->setHTML5(false)
|
|
->setLocale('de_DE')
|
|
->Field();
|
|
$expected = '<span class="readonly" id="Test">06.02.2011, in 5 days</span>';
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
|
|
public function testFieldWithNonValue()
|
|
{
|
|
// Test none value
|
|
$actual = DateField_Disabled::create('Test')->Field();
|
|
$expected = '<span class="readonly" id="Test"><i>(not set)</i></span>';
|
|
$this->assertEquals($expected, $actual);
|
|
|
|
$actual = DateField_Disabled::create('Test')->setValue('This is not a date')->Field();
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
|
|
public function testType()
|
|
{
|
|
$field = new DateField_Disabled('Test');
|
|
$result = $field->Type();
|
|
$this->assertStringContainsString('readonly', $result, 'Disabled field should be treated as readonly');
|
|
$this->assertStringContainsString('date_disabled', $result, 'Field should contain date_disabled class');
|
|
}
|
|
}
|