280 lines
8.0 KiB
PHP
280 lines
8.0 KiB
PHP
<?php
|
|
// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
|
|
// +----------------------------------------------------------------------+
|
|
// | PHP Version 4 |
|
|
// +----------------------------------------------------------------------+
|
|
// | Copyright (c) 1997-2003 Marshall Roch |
|
|
// +----------------------------------------------------------------------+
|
|
// | This source file is subject to the New BSD license, That is bundled |
|
|
// | with this package in the file LICENSE, and is available through |
|
|
// | the world-wide-web at |
|
|
// | http://www.opensource.org/licenses/bsd-license.php |
|
|
// | If you did not receive a copy of the new BSDlicense and are unable |
|
|
// | to obtain it through the world-wide-web, please send a note to |
|
|
// | pear-dev@lists.php.net so we can mail you a copy immediately. |
|
|
// +----------------------------------------------------------------------+
|
|
// | Author: Marshall Roch <mroch@php.net> |
|
|
// +----------------------------------------------------------------------+
|
|
//
|
|
// $Id: testunit_date.php,v 1.3 2005/11/15 00:16:40 pajoye Exp $
|
|
//
|
|
|
|
require("../Date.php");
|
|
require_once 'PHPUnit.php';
|
|
|
|
class myDate extends Date {
|
|
function myDate($date)
|
|
{
|
|
$this->Date($date);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Test case for Date
|
|
*
|
|
* @package Date
|
|
* @author Marshall Roch <mroch@php.net>
|
|
*/
|
|
class Date_Test extends PHPUnit_TestCase {
|
|
|
|
var $time;
|
|
|
|
function Date_Test($name)
|
|
{
|
|
$this->PHPUnit_TestCase($name);
|
|
}
|
|
|
|
function setUp()
|
|
{
|
|
$this->time = new Date("2003-10-04 14:03:24");
|
|
}
|
|
|
|
function tearDown()
|
|
{
|
|
unset($this->time);
|
|
}
|
|
|
|
function testDateNull()
|
|
{
|
|
$time = new Date();
|
|
$this->assertEquals(
|
|
date('Y-m-d H:i:s'),
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$time->year, $time->month, $time->day,
|
|
$time->hour, $time->minute, $time->second)
|
|
);
|
|
}
|
|
|
|
function testAbstraction()
|
|
{
|
|
$d = new Date();
|
|
$my = new myDate($d);
|
|
$this->assertEquals($d->getDate(),$my->getDate());
|
|
}
|
|
|
|
function testDateCopy()
|
|
{
|
|
$temp = new Date($this->time);
|
|
$this->assertEquals($temp, $this->time);
|
|
}
|
|
|
|
function testDateISO()
|
|
{
|
|
$temp = new Date("2003-10-04 14:03:24");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$temp->year, $temp->month, $temp->day,
|
|
$temp->hour, $temp->minute, $temp->second)
|
|
);
|
|
}
|
|
|
|
function testDateISOBasic()
|
|
{
|
|
$temp = new Date("20031004T140324");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$temp->year, $temp->month, $temp->day,
|
|
$temp->hour, $temp->minute, $temp->second)
|
|
);
|
|
}
|
|
|
|
function testDateISOExtended()
|
|
{
|
|
$temp = new Date("2003-10-04T14:03:24");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$temp->year, $temp->month, $temp->day,
|
|
$temp->hour, $temp->minute, $temp->second)
|
|
);
|
|
}
|
|
|
|
function testDateISOTimestamp()
|
|
{
|
|
$temp = new Date("20031004140324");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$temp->year, $temp->month, $temp->day,
|
|
$temp->hour, $temp->minute, $temp->second)
|
|
);
|
|
}
|
|
|
|
function testDateUnixtime()
|
|
{
|
|
$temp = new Date(strtotime("2003-10-04 14:03:24"));
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$temp->year, $temp->month, $temp->day,
|
|
$temp->hour, $temp->minute, $temp->second)
|
|
);
|
|
}
|
|
|
|
function testSetDateISO()
|
|
{
|
|
$this->time->setDate("2003-10-04 14:03:24");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$this->time->year, $this->time->month, $this->time->day,
|
|
$this->time->hour, $this->time->minute, $this->time->second)
|
|
);
|
|
}
|
|
|
|
function testSetDateISOBasic()
|
|
{
|
|
$this->time->setDate("20031004T140324");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$this->time->year, $this->time->month, $this->time->day,
|
|
$this->time->hour, $this->time->minute, $this->time->second)
|
|
);
|
|
}
|
|
|
|
function testSetDateISOExtended()
|
|
{
|
|
$this->time->setDate("2003-10-04T14:03:24");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$this->time->year, $this->time->month, $this->time->day,
|
|
$this->time->hour, $this->time->minute, $this->time->second)
|
|
);
|
|
}
|
|
|
|
function testSetDateTimestamp()
|
|
{
|
|
$this->time->setDate("20031004140324");
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$this->time->year, $this->time->month, $this->time->day,
|
|
$this->time->hour, $this->time->minute, $this->time->second)
|
|
);
|
|
}
|
|
|
|
function testSetDateUnixtime()
|
|
{
|
|
$this->time->setDate(strtotime("2003-10-04 14:03:24"));
|
|
$this->assertEquals(
|
|
'2003-10-04 14:03:24',
|
|
sprintf('%04d-%02d-%02d %02d:%02d:%02d',
|
|
$this->time->year, $this->time->month, $this->time->day,
|
|
$this->time->hour, $this->time->minute, $this->time->second)
|
|
);
|
|
}
|
|
|
|
function testGetDateISO()
|
|
{
|
|
$date = $this->time->getDate(DATE_FORMAT_ISO);
|
|
$this->assertEquals('2003-10-04 14:03:24', $date);
|
|
}
|
|
|
|
function testGetDateISOBasic()
|
|
{
|
|
$date = $this->time->getDate(DATE_FORMAT_ISO_BASIC);
|
|
$this->assertEquals('20031004T140324Z', $date);
|
|
}
|
|
|
|
function testGetDateISOExtended()
|
|
{
|
|
$date = $this->time->getDate(DATE_FORMAT_ISO_EXTENDED);
|
|
$this->assertEquals('2003-10-04T14:03:24Z', $date);
|
|
}
|
|
|
|
function testGetDateTimestamp()
|
|
{
|
|
$date = $this->time->getDate(DATE_FORMAT_TIMESTAMP);
|
|
$this->assertEquals('20031004140324', $date);
|
|
}
|
|
|
|
function testGetDateUnixtime()
|
|
{
|
|
$date = $this->time->getDate(DATE_FORMAT_UNIXTIME);
|
|
$this->assertEquals(strtotime('2003-10-04 14:03:24'), $date);
|
|
}
|
|
|
|
function testFormat()
|
|
{
|
|
$codes = array(
|
|
'a' => 'Sat',
|
|
'A' => 'Saturday',
|
|
'b' => 'Oct',
|
|
'B' => 'October',
|
|
'C' => '20',
|
|
'd' => '04',
|
|
'D' => '10/04/2003',
|
|
'e' => '4',
|
|
'H' => '14',
|
|
'I' => '02',
|
|
'j' => '277',
|
|
'm' => '10',
|
|
'M' => '03',
|
|
'n' => "\n",
|
|
'O' => '+00:00',
|
|
'o' => '+00:00',
|
|
'p' => 'pm',
|
|
'P' => 'PM',
|
|
'r' => '02:03:24 PM',
|
|
'R' => '14:03',
|
|
'S' => '24',
|
|
't' => "\t",
|
|
'T' => '14:03:24',
|
|
'w' => '6',
|
|
'U' => '40',
|
|
'y' => '03',
|
|
'Y' => '2003',
|
|
'%' => '%'
|
|
);
|
|
|
|
foreach ($codes as $code => $expected) {
|
|
$this->assertEquals(
|
|
"$code: $expected", $this->time->format("$code: %$code")
|
|
);
|
|
}
|
|
}
|
|
|
|
function testToUTCbyOffset()
|
|
{
|
|
$this->time->setTZbyID('EST');
|
|
$this->time->toUTC();
|
|
$temp = new Date("2003-10-04 14:03:24");
|
|
$temp->toUTCbyOffset("-05:00");
|
|
|
|
$this->assertEquals($temp, $this->time);
|
|
}
|
|
|
|
}
|
|
|
|
// runs the tests
|
|
$suite = new PHPUnit_TestSuite("Date_Test");
|
|
$result = PHPUnit::run($suite);
|
|
// prints the tests
|
|
echo $result->toString();
|
|
|
|
?>
|