Actualización

This commit is contained in:
Xes
2025-04-10 12:24:57 +02:00
parent 8969cc929d
commit 45420b6f0d
39760 changed files with 4303286 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
<?php
/**
* Testing timeago dates
* @author jimmiw
* @since 2016-03-11
*/
class TimeagoTest extends PHPUnit_Framework_TestCase
{
public function testIsAlive()
{
$this->assertTrue(true);
}
public function testInit()
{
$timeAgo = new TimeAgo();
$this->assertNotNull($timeAgo);
}
/**
* Tests the old core functionality, by being in the same timezone and not changing language.
*/
public function testTimeAgoInWords()
{
$timeAgo = new TimeAgo();
// testing "less than a minute"
$this->assertEquals('less than a minute ago', $timeAgo->inWords("now"));
$this->assertEquals('less than a minute ago', $timeAgo->inWords("-1 second"));
$this->assertEquals('less than a minute ago', $timeAgo->inWords("-29 second"));
$this->assertNotEquals('less than a minute ago', $timeAgo->inWords("-30 second"));
// testing "1 minute"
$this->assertEquals('1 minute ago', $timeAgo->inWords("-30 second"));
$this->assertEquals('1 minute ago', $timeAgo->inWords("-60 second"));
$this->assertEquals('1 minute ago', $timeAgo->inWords("-89 second"));
$this->assertNotEquals('1 minute ago', $timeAgo->inWords("-90 second"));
// testing 2..44 minutes
$this->assertContains('minutes ago', $timeAgo->inWords("-2 minute"));
$this->assertContains('minutes ago', $timeAgo->inWords("-44 minute"));
$this->assertContains('minutes ago', $timeAgo->inWords("-44 minute -29 second"));
$this->assertNotContains('minutes ago', $timeAgo->inWords("-44 minute -30 second"));
// testing about 1 hour
$this->assertEquals('about 1 hour ago', $timeAgo->inWords("-44 minute -30 second"));
$this->assertEquals('about 1 hour ago', $timeAgo->inWords("-89 minute -29 second"));
$this->assertNotEquals('about 1 hour ago', $timeAgo->inWords("-90 minute"));
// testing about 2..24 hours
$this->assertContains('hours ago', $timeAgo->inWords("-90 minute"));
$this->assertContains('hours ago', $timeAgo->inWords("-23 hour -59 minute -29 second"));
$this->assertNotContains('hours ago', $timeAgo->inWords("-23 hour -59 minute -30 second"));
$this->assertNotContains('hours ago', $timeAgo->inWords("-24 hour"));
// testing 1 day
$this->assertEquals('1 day ago', $timeAgo->inWords("-23 hour -59 minute -30 second"));
$this->assertEquals('1 day ago', $timeAgo->inWords("-47 hour -59 minute -29 second"));
$this->assertNotEquals('1 day ago', $timeAgo->inWords("-47 hour -59 minute -30 second"));
// testing 2..24 days
$this->assertContains('days ago', $timeAgo->inWords("-47 hour -59 minute -30 second"));
$this->assertContains('days ago', $timeAgo->inWords("-29 day -23 hour -59 minute -29 second"));
$this->assertNotContains('days ago', $timeAgo->inWords("-29 day -23 hour -59 minute -30 second"));
// testing 1 month
$this->assertEquals('about 1 month ago', $timeAgo->inWords("-29 day -23 hour -59 minute -30 second"));
$this->assertEquals('about 1 month ago', $timeAgo->inWords("-59 day -23 hour -59 minute -29 second"));
$this->assertNotEquals('about 1 month ago', $timeAgo->inWords("-59 day -23 hour -59 minute -30 second"));
// testing 2..12 months
$this->assertContains('months ago', $timeAgo->inWords("-59 day -23 hour -59 minute -30 second"));
// seemed to be the easiest way to get 1 year - 1 second, which should be the day before 1 year ago :)
$oneYearAgo = strtotime("-1 year");
// NOTE: this fails around leap years... so... -2 days must be accurate enough
$twoDays = (2*86400); // 2 days in seconds
$this->assertContains('months ago', $timeAgo->inWords(date('c', $oneYearAgo + $twoDays)));
$this->assertNotContains('months ago', $timeAgo->inWords($oneYearAgo));
// testing 1 year
$this->assertContains('1 year ago', $timeAgo->inWords(date('c', $oneYearAgo - $twoDays)));
$twoYearsAgo = strtotime("-2 year");
$this->assertContains('1 year ago', $timeAgo->inWords(date('c', $twoYearsAgo + $twoDays)));
$this->assertNotContains('1 year ago', $timeAgo->inWords($twoYearsAgo));
// testing 2 years or more
$this->assertEquals('over 2 years ago', $timeAgo->inWords("-2 year"));
$this->assertEquals('over 2 years ago', $timeAgo->inWords("-2 year - 59 day"));
$this->assertEquals('over 3 years ago', $timeAgo->inWords("-3 year"));
$this->assertEquals('over 4 years ago', $timeAgo->inWords("-4 year"));
$this->assertEquals('over 5 years ago', $timeAgo->inWords("-5 year"));
$this->assertEquals('over 6 years ago', $timeAgo->inWords("-6 year"));
$this->assertEquals('over 7 years ago', $timeAgo->inWords("-7 year"));
$this->assertEquals('over 8 years ago', $timeAgo->inWords("-8 year"));
$this->assertEquals('over 9 years ago', $timeAgo->inWords("-9 year"));
$this->assertEquals('over 10 years ago', $timeAgo->inWords("-10 year"));
// you get the point right?...
}
}

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
colors="true"
forceCoversAnnotation="false"
codecoverage="true">
<!-- <formatter type="clover" usefile="false" />
<logging>
<log type="coverage-html" target="../build/coverage"/>
<log type="coverage-clover" target="../build/logs/clover.xml"/>
<log type="coverage-crap4j" target="../build/logs/crap4j.xml"/>
<log type="junit" target="../build/logs/junit.xml" logIncompleteSkipped="false"/>
</logging> -->
<testsuite name="php-time-ago">
<directory>./</directory>
</testsuite>
<filter>
<whitelist>
<file>../timeago.inc.php</file>
</whitelist>
</filter>
</phpunit>

View File

@@ -0,0 +1,180 @@
<?php
require('../westsworld.datetime.class.php');
require('../timeago.inc.php');
echo "<h1>TimeAgo class tests!</h1>";
echo "<p>";
echo "<h2>testing TimeAgo class</h2>";
echo "<strong>rule 1</strong> (0 <-> 29 secs # => less than a minute)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:29","2010/4/26 22:03:58");
echo "<br/>";
echo "<br/><strong>rule 2</strong> (30 secs <-> 1 min, 29 secs # => 1 minute)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:30","2010/4/26 22:04:58");
echo "<br/>";
echo "<br/><strong>rule 3</strong> (1 min, 30 secs <-> 44 mins, 29 secs # => [2..44] minutes)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:28","2010/4/26 22:04:58");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:28","2010/4/26 22:15:58");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:28","2010/4/26 22:47:57");
echo "<br/>";
echo "<br/><strong>rule 4</strong> (44 mins, 30 secs <-> 89 mins, 29 secs # => about 1 hour)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:28","2010/4/26 22:47:58");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 22:03:28","2010/4/26 23:32:57");
echo "<br/>";
echo "<br/><strong>rule 5</strong>(89 mins, 29 secs <-> 23 hrs, 59 mins, 29 secs # => about [2..24] hours)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/26 01:30:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/26 13:49:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/26 23:59:29");
echo "<br/>";
echo "<br/><strong>rule 6</strong> (23 hrs, 59 mins, 29 secs <-> 47 hrs, 59 mins, 29 secs # => 1 day)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/26 23:59:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/27 13:10:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/27 23:59:29");
echo "<br/>";
echo "<br/><strong>rule 7</strong> (47 hrs, 59 mins, 30 secs <-> 29 days, 23 hrs, 59 mins, 29 secs # => [2..29] days)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/4/27 23:59:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/5/10 00:00:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/5/25 23:59:29");
echo "<br/>";
echo "<br/><strong>rule 8</strong> (29 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs # => about 1 month)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/5/25 23:59:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/5/28 10:05:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/6/24 23:59:29");
echo "<br/>";
echo "<br/><strong>rule 9</strong> (59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 1 sec # => [2..12] months)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2010/6/24 23:59:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2009/10/01 00:00:00","2010/5/28 10:05:30");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2009/4/26 00:00:00","2010/4/20 00:00:00");
echo "<br/>";
echo "<br/><strong>rule 10</strong> (1 yr <-> 2 yrs minus 1 secs # => about 1 year)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2009/4/26 00:00:00","2010/4/26 00:00:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2009/01/01 00:00:00","2010/5/01 00:00:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2010/4/26 00:00:00","2011/4/26 23:59:59");
echo "<br/>";
echo "<br/><strong>rule 11</strong> (2 yrs <-> max time or date # => over [2..X] years)<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2009/4/26 00:00:00","2011/4/26 00:00:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2005/4/26 00:00:00","2011/4/26 00:00:00");
echo "<br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("1999/4/26 00:00:00","2011/4/26 00:00:00");
echo "<br/>";
echo "</p>";
echo "<h2>TimeAgo class tests (dateDifference)</h2>";
echo "<p>";
$timeAgo = new TimeAgo();
echo "<pre>";
print_r($timeAgo->dateDifference("2010/4/01 00:00:00","2010/5/12 03:05:30"));
echo "</pre>";
echo "</p>";
echo "<h1>WWDateTime class tests!</h1>";
function test_time($timeAgo, $timeAsItShouldBe) {
echo "<p>";
$datetime = new WWDateTime($timeAgo);
echo $datetime->format(DATE_RFC3339);
echo " = ";
echo $datetime->timeAgoInWords();
echo " === ";
echo $timeAsItShouldBe;
echo "</p>";
}
test_time("-2 year", "over 2 years");
timeAgoInWords("-2 year");
test_time("-1 year", "about 1 year");
timeAgoInWords("-1 year");
test_time("-1 month", "about 1 month");
timeAgoInWords("-1 month");
test_time("-2 month", "about 2 months");
timeAgoInWords("-2 month");
test_time("-1 day", "1 day");
timeAgoInWords("-1 day");
test_time("-2 day", "2 days");
timeAgoInWords("-2 day");
test_time("-1 hour", "about 1 hour");
timeAgoInWords("-1 hour");
test_time("-2 hour", "about 2 hours");
timeAgoInWords("-2 hour");
test_time("-1 minute", "about 1 minute");
timeAgoInWords("-1 minute");
test_time("-2 minute", "about 2 minutes");
timeAgoInWords("-2 minute");
test_time("-44 minute", "about 44 minutes");
timeAgoInWords("-44 minute");
test_time("-45 minute", "about 1 hour");
timeAgoInWords("-45 minute");
test_time("-1 second", "less than a minute");
timeAgoInWords("-1 second");
test_time("-31 second", "1 minute");
timeAgoInWords("-31 second");
echo "<h2>Language testing</h2>";
echo "<p>";
echo "<br/><strong>English</strong><br/>";
$timeAgo = new TimeAgo();
echo $timeAgo->inWords("2015/5/26 10:00:10","2015/5/26 10:00:20");
echo "<br/>";
echo "<br/><strong>Danish</strong><br/>";
$timeAgo = new TimeAgo(NULL, 'da');
echo $timeAgo->inWords("2015/5/26 10:00:10","2015/5/26 10:00:20");
echo "<br/>";
echo "</p>";
?>