mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 00:52:33 -04:00
add test for relative_time()
This commit is contained in:
@@ -268,12 +268,15 @@ function relative_date($posted_date, $format = null) {
|
|||||||
return $abs;
|
return $abs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
function relative_time($timestamp) {
|
* @brief Returns a relative time string like 3 seconds ago.
|
||||||
$timestamp = datetime_convert('UTC', date_default_timezone_get(), $timestamp);
|
* @param string $posted_date (UTC)
|
||||||
|
* @param DateTime $now (optional)
|
||||||
$now = new DateTime();
|
* @return string with relative time
|
||||||
$time = new DateTime($timestamp);
|
*/
|
||||||
|
function relative_time($timestamp, $now = new DateTime()) {
|
||||||
|
$localtime = datetime_convert('UTC', date_default_timezone_get(), $timestamp);
|
||||||
|
$time = new DateTime($localtime);
|
||||||
|
|
||||||
$interval = $now->diff($time);
|
$interval = $now->diff($time);
|
||||||
|
|
||||||
|
|||||||
53
tests/unit/includes/DatetimeTest.php
Normal file
53
tests/unit/includes/DatetimeTest.php
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* tests function from include/datetime.php
|
||||||
|
*
|
||||||
|
* @package test.util
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Zotlabs\Tests\Unit\UnitTestCase;
|
||||||
|
|
||||||
|
class DatetimeTest extends UnitTestCase {
|
||||||
|
|
||||||
|
// Test when the timestamp is in the past
|
||||||
|
public function test_relative_time_past() {
|
||||||
|
$now = new DateTime('2024-12-07 00:00:00');
|
||||||
|
$timestamp = datetime_convert(date_default_timezone_get(), 'UTC', '2023-12-05 10:30:00');
|
||||||
|
$result = relative_time($timestamp, $now);
|
||||||
|
$this->assertEquals('1 year ago', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test when the timestamp is in the future
|
||||||
|
public function test_relative_time_future() {
|
||||||
|
$now = new DateTime('2024-12-07 00:00:00');
|
||||||
|
$timestamp = datetime_convert(date_default_timezone_get(), 'UTC', '2024-12-09 12:00:00');
|
||||||
|
$result = relative_time($timestamp, $now);
|
||||||
|
$this->assertEquals('in 2 days', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test for "now" case (timestamp exactly equal to current time)
|
||||||
|
public function test_relative_time_now() {
|
||||||
|
$now = new DateTime('2024-12-07 00:00:00');
|
||||||
|
$timestamp = datetime_convert(date_default_timezone_get(), 'UTC', '2024-12-07 00:00:00');
|
||||||
|
$result = relative_time($timestamp, $now);
|
||||||
|
$this->assertEquals('now', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test for future time with smaller units (e.g., minutes)
|
||||||
|
public function test_relative_time_future_minutes() {
|
||||||
|
$now = new DateTime('2024-12-07 10:30:00');
|
||||||
|
$timestamp = datetime_convert(date_default_timezone_get(), 'UTC', '2024-12-07 10:35:00');
|
||||||
|
$result = relative_time($timestamp, $now);
|
||||||
|
$this->assertEquals('in 5 minutes', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test for past time with smaller units (e.g., seconds)
|
||||||
|
public function test_relative_time_past_seconds() {
|
||||||
|
$now = new DateTime('2024-12-07 10:30:00');
|
||||||
|
$timestamp = datetime_convert(date_default_timezone_get(), 'UTC', '2024-12-07 10:29:58');
|
||||||
|
$result = relative_time($timestamp, $now);
|
||||||
|
$this->assertEquals('2 seconds ago', $result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
4
vendor/composer/installed.php
vendored
4
vendor/composer/installed.php
vendored
@@ -3,7 +3,7 @@
|
|||||||
'name' => 'zotlabs/hubzilla',
|
'name' => 'zotlabs/hubzilla',
|
||||||
'pretty_version' => 'dev-9.4RC',
|
'pretty_version' => 'dev-9.4RC',
|
||||||
'version' => 'dev-9.4RC',
|
'version' => 'dev-9.4RC',
|
||||||
'reference' => '9fa18a55579bf4eafc4484536ed29335cd98b2a9',
|
'reference' => 'e88ae54bef268e455b6d6028a697e9dbd98a7853',
|
||||||
'type' => 'application',
|
'type' => 'application',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
'zotlabs/hubzilla' => array(
|
'zotlabs/hubzilla' => array(
|
||||||
'pretty_version' => 'dev-9.4RC',
|
'pretty_version' => 'dev-9.4RC',
|
||||||
'version' => 'dev-9.4RC',
|
'version' => 'dev-9.4RC',
|
||||||
'reference' => '9fa18a55579bf4eafc4484536ed29335cd98b2a9',
|
'reference' => 'e88ae54bef268e455b6d6028a697e9dbd98a7853',
|
||||||
'type' => 'application',
|
'type' => 'application',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
|||||||
Reference in New Issue
Block a user