Skip to content

Commit

Permalink
MNT Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Sep 30, 2024
1 parent de515d3 commit a815307
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 27 deletions.
9 changes: 5 additions & 4 deletions tests/php/Forms/DateFieldDisabledTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ class DateFieldDisabledTest extends SapphireTest
protected function setUp(): void
{
parent::setUp();
i18n::set_locale('en_NZ');
// 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');
}

Expand All @@ -22,7 +23,7 @@ public function testFieldToday()
$actual = DateField_Disabled::create('Test')
->setValue('2011-02-01')
->Field();
$expected = '<span class="readonly" id="Test">1/02/2011 (today)</span>';
$expected = '<span class="readonly" id="Test">Feb 1, 2011 (today)</span>';
$this->assertEquals($expected, $actual);

// Test today's date with time
Expand All @@ -38,14 +39,14 @@ public function testFieldWithDifferentDay()
$actual = DateField_Disabled::create('Test')
->setValue('2011-01-27')
->Field();
$expected = '<span class="readonly" id="Test">27/01/2011, 5 days ago</span>';
$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">6/02/2011, in 5 days</span>';
$expected = '<span class="readonly" id="Test">Feb 6, 2011, in 5 days</span>';
$this->assertEquals($expected, $actual);
}

Expand Down
2 changes: 1 addition & 1 deletion tests/php/Forms/DatetimeFieldTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ public function testSetValueWithLocalised()

// Some localisation packages exclude the ',' in default medium format
$this->assertMatchesRegularExpression(
'#29/03/2003(,)? 11:00:00 (PM|pm)#',
'#29/03/2003(,)? 11:00:00\h(PM|pm)#u',
$datetimeField->Value(),
'User value is formatted, and in user timezone'
);
Expand Down
35 changes: 18 additions & 17 deletions tests/php/ORM/DBDateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ protected function setUp(): void
$this->oldError = error_reporting();
// Validate setup
assert(date_default_timezone_get() === 'UTC');
i18n::set_locale('en_NZ');
// Set to an explicit locale so project-level locale swapping doesn't affect tests
i18n::set_locale('en_US');
}

protected function tearDown(): void
Expand Down Expand Up @@ -48,42 +49,42 @@ protected function restoreNotices()
public function testNiceDate()
{
$this->assertEquals(
'31/03/2008',
'Mar 31, 2008',
DBField::create_field('Date', 1206968400)->Nice(),
"Date->Nice() works with timestamp integers"
);
$this->assertEquals(
'30/03/2008',
'Mar 30, 2008',
DBField::create_field('Date', 1206882000)->Nice(),
"Date->Nice() works with timestamp integers"
);
$this->assertEquals(
'31/03/2008',
'Mar 31, 2008',
DBField::create_field('Date', '1206968400')->Nice(),
"Date->Nice() works with timestamp strings"
);
$this->assertEquals(
'30/03/2008',
'Mar 30, 2008',
DBField::create_field('Date', '1206882000')->Nice(),
"Date->Nice() works with timestamp strings"
);
$this->assertEquals(
'4/03/2003',
'Mar 4, 2003',
DBField::create_field('Date', '4.3.2003')->Nice(),
"Date->Nice() works with D.M.YYYY format"
);
$this->assertEquals(
'4/03/2003',
'Mar 4, 2003',
DBField::create_field('Date', '04.03.2003')->Nice(),
"Date->Nice() works with DD.MM.YYYY format"
);
$this->assertEquals(
'4/03/2003',
'Mar 4, 2003',
DBField::create_field('Date', '2003-3-4')->Nice(),
"Date->Nice() works with YYYY-M-D format"
);
$this->assertEquals(
'4/03/2003',
'Mar 4, 2003',
DBField::create_field('Date', '2003-03-04')->Nice(),
"Date->Nice() works with YYYY-MM-DD format"
);
Expand All @@ -107,7 +108,7 @@ public function testInvertedYearCorrection()
{
// iso8601 expects year first, but support year last
$this->assertEquals(
'4/03/2003',
'Mar 4, 2003',
DBField::create_field('Date', '04-03-2003')->Nice(),
"Date->Nice() works with DD-MM-YYYY format"
);
Expand Down Expand Up @@ -152,32 +153,32 @@ public function testShortMonth()
public function testLongDate()
{
$this->assertEquals(
'31 March 2008',
'March 31, 2008',
DBField::create_field('Date', 1206968400)->Long(),
"Date->Long() works with numeric timestamp"
);
$this->assertEquals(
'31 March 2008',
'March 31, 2008',
DBField::create_field('Date', '1206968400')->Long(),
"Date->Long() works with string timestamp"
);
$this->assertEquals(
'30 March 2008',
'March 30, 2008',
DBField::create_field('Date', 1206882000)->Long(),
"Date->Long() works with numeric timestamp"
);
$this->assertEquals(
'30 March 2008',
'March 30, 2008',
DBField::create_field('Date', '1206882000')->Long(),
"Date->Long() works with numeric timestamp"
);
$this->assertEquals(
'3 April 2003',
'April 3, 2003',
DBField::create_field('Date', '2003-4-3')->Long(),
"Date->Long() works with YYYY-M-D"
);
$this->assertEquals(
'3 April 2003',
'April 3, 2003',
DBField::create_field('Date', '3.4.2003')->Long(),
"Date->Long() works with D.M.YYYY"
);
Expand All @@ -186,7 +187,7 @@ public function testLongDate()
public function testFull()
{
$this->assertEquals(
'Monday, 31 March 2008',
'Monday, March 31, 2008',
DBField::create_field('Date', 1206968400)->Full(),
"Date->Full() works with timestamp integers"
);
Expand Down
11 changes: 6 additions & 5 deletions tests/php/ORM/DBDatetimeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ class DBDatetimeTest extends SapphireTest
protected function setUp(): void
{
parent::setUp();
i18n::set_locale('en_NZ');
// Set to an explicit locale so project-level locale swapping doesn't affect tests
i18n::set_locale('en_US');
}

public function testNowWithSystemDate()
Expand Down Expand Up @@ -127,22 +128,22 @@ public function testNice()

// note: Some localisation packages exclude the ',' in default medium format
i18n::set_locale('en_NZ');
$this->assertMatchesRegularExpression('#11/12/2001(,)? 10:10 PM#i', $date->Nice());
$this->assertMatchesRegularExpression('#11/12/2001(,)? 10:10\hPM#iu', $date->Nice());

i18n::set_locale('en_US');
$this->assertMatchesRegularExpression('#Dec 11(,)? 2001(,)? 10:10 PM#i', $date->Nice());
$this->assertMatchesRegularExpression('#Dec 11(,)? 2001(,)? 10:10\hPM#iu', $date->Nice());
}

public function testDate()
{
$date = DBDatetime::create_field('Datetime', '2001-12-31 22:10:59');
$this->assertEquals('31/12/2001', $date->Date());
$this->assertEquals('Dec 31, 2001', $date->Date());
}

public function testTime()
{
$date = DBDatetime::create_field('Datetime', '2001-12-31 22:10:59');
$this->assertMatchesRegularExpression('#10:10:59 PM#i', $date->Time());
$this->assertMatchesRegularExpression('#10:10:59\hPM#iu', $date->Time());
}

public function testTime24()
Expand Down

0 comments on commit a815307

Please sign in to comment.